回覆列表
  • 1 # 論智

    混淆矩陣

    我們以體檢為例,介紹混淆矩陣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`為混淆矩陣。

  • 中秋節和大豐收的關聯?
  • 沒有安全感是感情的絕症嗎?