混淆矩陣
我們以體檢為例,介紹混淆矩陣(confusion matrix)這個概念。
假設體檢有一項指標,結果可能是陰性(-),也可能是陽性(+),換句話說,體檢的這項指標可以看作一個二元分類(binary classification)問題。
那麼,根據報告的結果和實際情況,共有4種組合:
如果我們對一批人進行體檢,並透過進一步複查,得到真實情況(ground truth),那麼,統計下上面4種情況一共出現了多少次,就得到了混淆矩陣。
使用Python來繪製混淆矩陣和視覺化?
用Python視覺化混淆矩陣很方便。
首先,sklearn的metrics模組提供了confusion_matrix. 可以透過以下方式呼叫:
confusion_matrix(y_test, y_pred)
返回一個混淆矩陣。得到混淆矩陣後,只需用matplotlib畫一下就可以了。
由於悟空問答不支援縮排,所以我這裡就不給出具體的繪圖程式碼了。可以參考sklearn官方文件中的例子:scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html
另外,其實seaborn的heatmap也可以用來畫混淆矩陣:
import seaborn as sn
sn.heatmap(cm, annot=True)
其中,`cm`為混淆矩陣。
混淆矩陣
我們以體檢為例,介紹混淆矩陣(confusion matrix)這個概念。
假設體檢有一項指標,結果可能是陰性(-),也可能是陽性(+),換句話說,體檢的這項指標可以看作一個二元分類(binary classification)問題。
那麼,根據報告的結果和實際情況,共有4種組合:
真陰性(True Negative)。體檢報告上為陰性(-),實際上也是陰性(-)。恭喜,你很健康。假陰性(False Negative)。你實際上是陽性(+),但是,很不巧,體檢沒有查出來,報告上是陰性(-)。真陽性(True Positive)。體檢報告上是陽性(+),實際上也是陽性(+)。很不幸,你得病了。不過,不幸之中的萬幸,體檢查出來了,早發現,早治療,也算一件好事。假陽性(False Positive)。體檢報告上是陽性(+),但其實你是陰性(-)。也就是說,虛驚一場。如果我們對一批人進行體檢,並透過進一步複查,得到真實情況(ground truth),那麼,統計下上面4種情況一共出現了多少次,就得到了混淆矩陣。
視覺化混淆矩陣使用Python來繪製混淆矩陣和視覺化?
用Python視覺化混淆矩陣很方便。
首先,sklearn的metrics模組提供了confusion_matrix. 可以透過以下方式呼叫:
confusion_matrix(y_test, y_pred)
返回一個混淆矩陣。得到混淆矩陣後,只需用matplotlib畫一下就可以了。
由於悟空問答不支援縮排,所以我這裡就不給出具體的繪圖程式碼了。可以參考sklearn官方文件中的例子:scikit-learn.org/stable/auto_examples/model_selection/plot_confusion_matrix.html
另外,其實seaborn的heatmap也可以用來畫混淆矩陣:
import seaborn as sn
sn.heatmap(cm, annot=True)
其中,`cm`為混淆矩陣。