主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

confusionmat

分類問題用の混同行列の計算

説明

C= confusionmat (集团grouphatは,既知のグループ集团と予測されたグループgrouphatによって決定される混同行列Cを返します。

C= confusionmat (集团grouphat“秩序”grouporderは,grouporderを使用してCの行と列の順序を設定します。

C订单) = confusionmat (___は,前の構文の入力引数のいずれかを使用して,変数订单Cの行と列の順序も返します。

すべて折りたたむ

2つの誤分類と1つの欠損分類が含まれているデータについて混同行列を表示します。

既知のグループと予測されたグループについてベクトルを作成します。

G1 = [3 2 2 3 1 1]';%被组g2 = [4 2 3 NaN 1 1]';%预测组

混同行列を取得します。

C = confusionmat (g1, g2)
C =4×42 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0

混同行列Cの行と列のインデックスは同一であり,既定では(g1, g2)の並べ替え順序で編成されます。つまり,(1、2、3、4)になります。

この混同行列は,グループ1に属することがわかっている2つのデータ点が正しく分類されたことを示しています。グループ2については,1つのデータ点がグループ3として誤分類されています。また,グループ3に属することがわかっているデータ点の1つがグループ4として誤分類されています。confusionmatは,グループ化変数g2内の値を欠損値として処理し,Cの行と列には含めません。

confusionchartを使用して,混同行列を混同行列チャートとしてプロットします。

confusionchart (C)

プロットする前に混同行列を計算する必要はありません。代わりに,confusionchartを使用して,真のラベルと予測ラベルから混同行列チャートを直接プロットします。

厘米= confusionchart (g1, g2)

cm = ConfusionMatrixChart with properties: NormalizedValues: [4x4 double] ClassLabels: [4x1 double]显示所有属性

ConfusionMatrixChartオブジェクトでは,数値混同行列がNormalizedValuesプロパティに,クラスがClassLabelsプロパティに格納されます。ドット表記を使用して,これらのプロパティを表示します。

厘米。NormalizedValues
ans =4×42 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0
厘米。ClassLabels
ans =4×11 2 3 4

2つの誤分類と1つの欠損分類が含まれているデータについて混同行列を表示し,グループの順序を指定します。

既知のグループと予測されたグループについてベクトルを作成します。

G1 = [3 2 2 3 1 1]';%被组g2 = [4 2 3 NaN 1 1]';%预测组

グループの順序を指定し,混同行列を取得します。

C = confusionmat (g1, g2,“秩序”,[4 3 2 1])
C =4×40 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 2 2

混同行列Cの行と列のインデックスは同じであり,グループの順序で指定された順序で編成されます。つまり,(4、3、2、1)になります。

混同行列Cの2行目は,グループ3に属することがわかっているデータ点の1つがグループ4として誤分類されたことを示しています。Cの3行目は,グループ2に属しているデータ点の1つがグループ3として誤分類されたことを示し,4行目は,グループ1に属することがわかっている2つのデータ点が正しく分類されたことを示しています。confusionmatは,グループ化変数g2内の値を欠損値として処理し,Cの行と列には含めません。

fisheririsデータセットの標本に対して分類を実行し,生成された結果について混同行列を表示します。

フィッシャーのアヤメのデータセットを読み込みます。

负载fisheriris

データ内の測定値とグループをランダム化します。

rng (0,“旋风”);%的再现性numObs =长度(物种);p = randperm (numObs);量=量(p:);物种=物种(p);

データの最初の半分に含まれている測定値を使用して,判別分析分類器に学習をさせます。

一半=地板(numObs / 2);培训=量(1:一半,:);trainingSpecies =物种(1:一半);Mdl = fitcdiscr(培训、trainingSpecies);

学習済みの分類器を使用して,データの後半部分の測定値についてラベルを予測します。

示例=量(5 + 1:最终,);grouphat =预测(Mdl、样本);

グループの順序を指定し,生成された分類について混同行列を表示します。

组=物种(5 + 1:结束);[C,顺序]= confusionmat(组、grouphat“秩序”,{“setosa”“多色的”“virginica”})
C =3×329 0 0 22 2 0 0 22
订单=3 x1细胞{'setosa'} {'versicolor'} {'virginica'}

この混同行列は,setosaおよびvirginicaに属している測定値が正しく分類され,杂色的に属している測定値の2つがvirginicaとして誤分類されたことを示しています。出力订单には,グループ順序{“setosa”、“癣”、“virginica '}で指定された順序で混同行列の行と列の順序が格納されます。

fisheririsデータセットの高配列に対して分類を実行し,関数confusionmatを使用して既知および予測高ラベルについて混同行列を計算し,関数confusionchartを使用して混同行列をプロットします。

高配列に対する計算を実行する場合,MATLAB®は並列プール(并行计算工具箱™がある場合は既定)またはローカルのMATLABセッションを使用します。并行计算工具箱がある場合でもローカルのMATLABセッションを使用して例を実行するには,関数mapreduceを使用してグローバルな実行環境を変更できます。

フィッシャーのアヤメのデータセットを読み込みます。

负载fisheriris

インメモリ配列および物种を高配列に変換します。

tx =高(量);
使用“local”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:6)。
泰=高(物种);

高配列内の観測値の個数を求めます。

numObs =收集(长度(ty));% gather将高数组收集到内存中

再現性を得るためにrngtallrngを使用して乱数発生器のシードを設定し,学習標本を無作為に選択します。高配列の場合、ワーカーの個数と実行環境によって結果が異なる可能性があります。詳細については、コードの実行場所の制御を参照してください。

rng (“默认”) tallrng (“默认”) numTrain = floor(nummob /2);[txTrain, trIdx] = datasample (tx numTrain,“替换”、假);tyTrain =泰(trIdx);

決定木分類器モデルを学習標本にあてはめます。

mdl = fitctree (txTrain tyTrain);
评估高表达式使用并行池“当地”:——通过1 2:在3.9秒完成,通过2 2:在1.5秒完成评估在7.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.88秒完成,通过2 4:在1.6秒完成,通过3 4:在4秒完成,通过4 4:在2.7秒完成评估在11秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.54秒完成,通过2 4:在1.2秒完成,通过3 4:完成在3秒-通过4 4:在2秒完成评估在7.6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.51秒完成,通过2 4:在1.3秒完成,通过3 4:在3.1秒完成,通过4 4:在2.5秒完成评估在8.5秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.42秒完成,通过2 4:在1.2秒完成,通过3 4:3秒内完成-通过4道中的第4道:2.1秒内完成评估7.6秒内完成

学習済みのモデルを使用して,検定標本のラベルを予測します。

txt = tx (~ trIdx:);标签=预测(mdl, txt);

生成された分類について混同行列を計算します。

tyTest =泰(~ trIdx);[C,顺序]= confusionmat (tyTest、标签)
C = M×N×……高大的数组???...???...? ? ? ... : : : : : : Preview deferred. Learn more. order = M×N×... tall array ? ? ? ... ? ? ? ... ? ? ? ... : : : : : : Preview deferred. Learn more.

関数收集を使用して遅延計算を実行し,confusionmatの結果をメモリに返します。

收集(C)
使用Parallel Pool 'local'计算tall表达式
ans =3×320 0 0 1 30 20 0 22
收集(顺序)
使用Parallel Pool 'local'计算tall表达式:计算在0.032秒内完成
ans =3×1细胞{'setosa'} {'versicolor'} {'virginica'}

この混同行列は,杂色的クラスの測定値の3つが誤分類されたことを示しています。setosaおよびvirginicaに属している測定は,すべて正しく分類されています。

混同行列の計算とプロットを行うため,代わりにconfusionchartを使用します。

厘米= confusionchart (tyTest标签)
using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.34 sec Evaluation in 0.6 sec using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.48 sec Evaluation in 0.67 sec

cm = ConfusionMatrixChart with properties: NormalizedValues: [3×3 double] ClassLabels: {3×1 cell}显示所有属性

入力引数

すべて折りたたむ

観測値を分類するための既知のグループ。数値ベクトル、logical ベクトル、文字配列、string 配列、文字ベクトルの cell 配列、または categorical ベクトルを指定します。

集团は,grouphatと同じ型のグループ化変数です。グループ化変数で説明されているように,引数集团にはgrouphatと同じ個数の観測値が含まれていなければなりません。関数confusionmatは,文字配列および字符串配列を文字ベクトルの细胞配列として処理します。さらにconfusionmatは,集团内の,空および“定义”値を欠損値として処理し,個別のグループまたはカテゴリとしてはカウントしません。

例:{'男','女','女','男','女'}

データ型:||逻辑|字符|字符串|细胞|分类

観測値を分類するための予測されたグループ。数値ベクトル、logical ベクトル、文字配列、string 配列、文字ベクトルの cell 配列、または categorical ベクトルを指定します。

grouphatは,集团と同じ型のグループ化変数です。グループ化変数で説明されているように,引数grouphatには集团と同じ個数の観測値が含まれていなければなりません。関数confusionmatは,文字配列および字符串配列を文字ベクトルの细胞配列として処理します。さらにconfusionmatは,grouphat内の,空および“定义”値を欠損値として処理し,個別のグループまたはカテゴリとしてはカウントしません。

例:[1 0 0 1 0]

データ型:||逻辑|字符|字符串|细胞|分类

グループの順序。数値ベクトル、logical ベクトル、文字配列、string 配列、文字ベクトルの cell 配列、または categorical ベクトルを指定します。

grouporderは,集团およびgrouphat内の異なる要素がすべて含まれているグループ化変数です。Cの行と列の順序を定義するには,grouporderを指定します。集团にもgrouphatにもない要素がgrouporderに含まれている場合,Cの対応するエントリは0になります。

既定では,グループの順序はs =[集团;grouphat]のデータ型によって変化します。

  • 数値および逻辑ベクトルの場合,年代の並べ替え順序になります。

  • 直言ベクトルの場合,类别(年代)によって返される順序になります。

  • 他のデータ型の場合,年代に最初に現れた順序になります。

例:“秩序”,{“setosa”、“癣”,“virginica”}

データ型:||逻辑|字符|字符串|细胞|分类

出力引数

すべて折りたたむ

混同行列。引数集团およびgrouphat内の異なる要素の総数に等しいサイズをもつ正方行列として返されます。C (i, j)は,グループに属することがわかっているがグループjに属すると予測された観測値の個数です。

Cの行と列は,同じグループインデックスについて同じ順序になります。既定では,グループの順序はs =[集团;grouphat]のデータ型によって変化します。

  • 数値および逻辑ベクトルの場合,年代の並べ替え順序になります。

  • 直言ベクトルの場合,类别(年代)によって返される順序になります。

  • 他のデータ型の場合,年代に最初に現れた順序になります。

順序を変更するには,grouporderを指定します。

関数confusionmatは,グループ化変数内の,空および“定义”値を欠損値として処理し,Cの行と列には含めません。

Cの行と列の順序。数値ベクトル、logical ベクトル、categorical ベクトル、または文字ベクトルの cell 配列として返されます。集团およびgrouphatが文字配列,弦配列,または文字ベクトルの细胞配列である場合,変数订单は文字ベクトルの细胞配列になります。それ以外の場合,订单集团およびgrouphatと同じ型になります。

代替機能

  • 混同行列の計算とプロットを行うには,confusionchartを使用します。さらにconfusionchartは,データに関する要約統計を表示し,クラス単位の精度(陽性の予測値),クラス単位の再現率(真陽性率),または正しく分類された観測値の総数に従って混同行列のクラスを並べ替えます。

拡張機能

R2008bで導入