makecdiscr
パラメーターから判別分析分類器を構築する
説明
例
コンパクトな線形判別分析分類器の構築
フィッシャーのアヤメのデータの平均と共分散からコンパクトな線形判別分析分類器を構築します。
load fisheriris mu(1,:) = mean(meas(1:50,:)); mu(2,:) = mean(meas(51:100,:)); mu(3,:) = mean(meas(101:150,:)); mm1 = repmat(mu(1,:),50,1); mm2 = repmat(mu(2,:),50,1); mm3 = repmat(mu(3,:),50,1); cc = meas; cc(1:50,:) = cc(1:50,:) - mm1; cc(51:100,:) = cc(51:100,:) - mm2; cc(101:150,:) = cc(101:150,:) - mm3; sigstar = cc' * cc / 147; % unbiased estimator of sigma cpct = makecdiscr(mu,sigstar,... 'ClassNames',{'setosa','versicolor','virginica'})
cpct = CompactClassificationDiscriminant PredictorNames: {'x1' 'x2' 'x3' 'x4'} ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' DiscrimType: 'linear' Mu: [3x4 double] Coeffs: [3x3 struct] Properties, Methods
入力引数
Mu
— クラス平均
スカラー値の行列
クラス平均。サイズのスカラー値クラス平均の K
行 p
列の行列として指定されます。K
はクラス数で、p
は予測子の数です。Mu
の各行は、対応するクラスの多変量正規分布の平均を表します。クラス インデックスは、ClassNames
属性にあります。
データ型: single
| double
Sigma
— クラス内共分散
スカラー値の行列
クラス内共分散。スカラー値の行列として指定します。
線形判別の場合、
Sigma
はサイズp
行p
列の対称な半正定値行列で、p
は予測子の数です。2 次判別の場合、
Sigma
はサイズp
xp
xK
の配列で、K
はクラスの数です。各i
で、Sigma(:,:,i)
は対称な半正定値行列です。
データ型: single
| double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'ClassNames',{'setosa' 'versicolor' 'virginica'}
は、'setosa'
、'versicolor'
、'virginica'
をグループ化変数として使用する判別分析分類器を指定します。
ClassNames
— クラス名
数値ベクトル | categorical ベクトル | logical ベクトル | 文字配列 | string 配列 | 文字ベクトルの cell 配列
Mu
の順のクラス名。'ClassNames'
とグループ化変数を含む配列で構成される、コンマ区切りのペアとして指定します。数値ベクトル、categorical ベクトル、logical ベクトル、文字配列、string 配列、文字ベクトルの cell 配列など、グループ化変数用のデータ型のいずれかを使用します。
既定値は 1:K
です。ここで K
はクラスの数 (Mu
の行の数) です。
例: 'ClassNames',{'setosa' 'versicolor' 'virginica'}
データ型: single
| double
| logical
| char
| string
| cell
Cost
— 誤分類のコスト
正方行列 | 構造体
誤分類のコスト。'Cost'
と正方行列で構成されるコンマ区切りのペアとして指定します。ここで、Cost(i,j)
は、真のクラスが i
である場合に点をクラス j
に分類するコストです。または、Cost
は 次の 2 つのフィールドをもつ構造体 S
の場合もあります。2 つのフィールドは、y
と同じ型のグループ名を表す変数が格納されている S.ClassNames
と、コスト行列が格納されている S.ClassificationCosts
です。
既定値は、i~=j
の場合は Cost(i,j)=1
、i=j
の場合は Cost(i,j)=0
です。
データ型: single
| double
| struct
PredictorNames
— 予測子変数名
{'X1','X2',...}
(既定値) | string 配列 | 文字ベクトルの cell 配列
予測子変数名。'PredictorNames'
と文字ベクトルの cell 配列または string 配列から構成されるコンマ区切りのペアとして指定します。この配列には、X
と同じ順序で予測子変数名を格納します。
データ型: string
| cell
Prior
— 事前確率
'uniform'
(既定値) | スカラー値のベクトル | 構造体
各クラスの事前確率。'Prior'
と以下のいずれかで構成されるコンマ区切りのペアとして指定します。
すべてのクラスの事前確率が等しいことを意味する文字ベクトル
'uniform'
クラスごとに 1 つのスカラー値が格納されているベクトル
構造体
S
には 2 つのフィールドがあります。ClassNames
と同じ型の変数としてクラス名を含むS.ClassNames
対応する確率のベクトルを含む
S.ClassProbs
。
データ型: char
| string
| single
| double
| struct
ResponseName
— 応答変数名
'Y'
(既定値) | 文字ベクトル | string スカラー
応答変数名。'ResponseName'
と、応答変数 y
の名前が格納されている文字ベクトルまたは string スカラーから構成されるコンマ区切りのペアとして指定します。
例: 'ResponseName','Response'
データ型: char
| string
出力引数
cobj
— 判別分析分類器
判別分析分類器オブジェクト
判別分析分類器。クラス CompactClassificationDiscriminant
の判別分析分類器オブジェクトとして返されます。predict
メソッドを使用すると、新しいデータの分類ラベルを予測できます。
ヒント
cobj
を構築した後で、ドット表記を使用して判別タイプを変更できます。cobj.DiscrimType = 'discrimType'
ここで、
discrimType
は、関数'linear'
、'quadratic'
、'diagLinear'
、'diagQuadratic'
、'pseudoLinear'
、'pseudoQuadratic'
のいずれかです。線形タイプ間または 2 次タイプ間での変更は可能ですが、線形タイプと 2 次タイプの間の変更はできません。cobj
はSigma
が行列である場合の線形分類器です。cobj
はSigma
が 3 次元配列である場合の 2 次分類器です。
バージョン履歴
R2014a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)