マシューズ相関係数()は、バイナリ分類の品質を測定する測定値です([Wikipedia] [1])。定式化は、真陽性()、偽陽性()、偽陰性()、および真陰性()の値を利用して、以下のようにバイナリ分類を行います。 T P F P F N T N
、、 3つの異なるクラスを分類する必要がある場合があります。上記の定式化を適用して、以下に示すように各クラスの、、、および値を計算した後、マルチクラスケースのを計算できますか?
マシューズ相関係数()は、バイナリ分類の品質を測定する測定値です([Wikipedia] [1])。定式化は、真陽性()、偽陽性()、偽陰性()、および真陰性()の値を利用して、以下のようにバイナリ分類を行います。 T P F P F N T N
、、 3つの異なるクラスを分類する必要がある場合があります。上記の定式化を適用して、以下に示すように各クラスの、、、および値を計算した後、マルチクラスケースのを計算できますか?
回答:
はい、一般的には可能です。使用したいこのアプローチは、「マイクロ平均化」と呼ばれることもあります。最初に、各クラスのすべての、などを合計してからTN
、対象FP
の統計を計算します。
個々のクラスの統計を組み合わせる別の方法は、いわゆる「マクロ平均」を使用することです。ここでは、最初に個々のクラスの統計を計算し(A対Aではなく、B対Bではないなど)、次に平均を計算します。それら。
追加の詳細については、こちらをご覧ください。このページでは、精度と再現率について説明していますが、マシューの係数だけでなく、分割表に基づく他の統計にも当てはまると思います。
マクロ平均化手法は、精度、感度、および特異性に適しています。しかし、クライアントセンターで試したところ、適切な結果が得られませんでした。マルチクラスMCC計算の詳細については、以下を参照してください。
次のコードは私のために働きました:
% the confusion matrix at input is given by matrix cm_svm_array
mcc_numerator=0;count=1;
% limits klm=1 TO n SUM(ckk.cml - clk.ckm)
for k = 1:1:length(cm_svm_array)
for l=1:1:length(cm_svm_array)
for m=1:1:length(cm_svm_array)
mcc_numerator1(count) = (cm_svm_array(k,k) *cm_svm_array(m,l))-
(cm_svm_array(l,k)*cm_svm_array(k,m))
mcc_numerator=mcc_numerator+mcc_numerator1(count)
count=count+1;
end
end
end
mcc_denominator_1=0 ; count=1;
for k=1:1:length(cm_svm_array)
mcc_den_1_part1=0;
for l=1:1:length(cm_svm_array)
mcc_den_1_part1= mcc_den_1_part1+cm_svm_array(l,k);
end
mcc_den_1_part2=0;
for f=1:1:length(cm_svm_array)
if f ~=k
for g=1:1:length(cm_svm_array)
mcc_den_1_part2= mcc_den_1_part2+cm_svm_array(g,f);
end
end
end
mcc_denominator_1=(mcc_denominator_1+(mcc_den_1_part1*mcc_den_1_part2));
end
mcc_denominator_2=0; count=1;
for k=1:1:length(cm_svm_array)
mcc_den_2_part1=0;
for l=1:1:length(cm_svm_array)
mcc_den_2_part1= mcc_den_2_part1+cm_svm_array(k,l);
end
mcc_den_2_part2=0;
for f=1:1:length(cm_svm_array)
if f ~=k
for g=1:1:length(cm_svm_array)
mcc_den_2_part2= mcc_den_2_part2+cm_svm_array(f,g);
end
end
end
mcc_denominator_2=(mcc_denominator_2+(mcc_den_2_part1*mcc_den_2_part2));
end
mcc = (mcc_numerator)/((mcc_denominator_1^0.5)*(mcc_denominator_2^0.5))
MCCは、バイナリおよびマルチクラス分類ウィキペディアに使用でき、バイナリおよびマルチクラスラベルのsci-kit学習に実装されています。