2017年9月28日 星期四

機器學習_ML_confusion_matrix(混淆矩陣)

機器學習_ML_confusion_matrix(混淆矩陣)

原文連結
Compute confusion matrix to evaluate the accuracy of a classification
計算混淆矩陣來評估準確性!
這個矩陣代表著{真真、假假、真假、假真}
透過這四個預估也計算著不同準確評估的數值。

IMPORT

from sklearn.metrics import confusion_matrix

範例

from sklearn.metrics import confusion_matrix
y_true = [1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0 ,1]
y_pred = [0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1 ,1]
confusion_matrix(y_true=y_true, y_pred=y_pred)
結果
array([[3, 2],
       [3, 5]], dtype=int64)
這樣…似乎有點不能理解這個矩陣到底是什麼意思!!
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
y_true = [1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0 ,1]
y_pred = [0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1 ,1]
confmat = confusion_matrix(y_true=y_true, y_pred=y_pred)
fig, ax = plt.subplots(figsize=(2.5, 2.5))
ax.matshow(confmat, cmap=plt.cm.Blues, alpha=0.3)
for i in range(confmat.shape[0]):
    for j in range(confmat.shape[1]):
        ax.text(x=j, y=i, s=confmat[i,j], va='center', ha='center')
plt.xlabel('predicted label')        
plt.ylabel('true label')
plt.show()
把圖表列印出來,就清楚多了。

原文範例有一個多類別的矩陣function,可以參考一下。
原文範例連結

延伸說明

那為什麼說可以利用這個矩陣來評估模型呢?
請看下圖(取自維基百科)

上圖說明著,我們常在scikit-learn用的score的模型評估來源!

最常見的accuracy準確率,就是(真真加上真假)/總數
所以,一定要認識一下這個圖。

沒有留言:

張貼留言