簡體   English   中英

在使用 scikit 的線性回歸模型中,混淆矩陣如何知道哪個是正類?

[英]In a linear regressio model using scikit, how does the confusion matrix know which is the positive class?

我正在執行癌症預測任務(其中 1 是癌症病例,0 是對照)。 我看過的教程似乎從來沒有向邏輯回歸模型表明哪個是最終產生混淆矩陣的正類。

默認情況下,真陽性會顯示正確預測的“1”,反之亦然嗎?

sklearn.metrics.confusion_matrix ,我們有一個名為labels的參數,默認值為None labels文檔告訴我們:

索引矩陣的標簽列表。 這可用於重新排序或選擇標簽的子集。 如果None給出,那些在 y_true 或 y_pred 中至少出現一次的將按排序順序使用。

因此,要為您的類分配適當的索引,請將它們按順序傳遞給labels ,例如 positive = 1, negative = 0

from sklearn.metrics import confusion_matrix as cm
>>> y_test = [1, 0, 0]
>>> y_pred = [1, 0, 0]
>>> cm(y_test, y_pred, labels=[1,0])
array([[1, 0],
       [0, 2]])

              Pred
          |   1   |   0  |
         ___________________
Actual  1 |  TP=1 | FN=0 |
        0 |  FP=0 | TN=2 |

如果我們不向labels傳遞任何值,則 y_true 和 y_pred 值將按排序順序使用。

>>> y_test = [1, 0, 0]
>>> y_pred = [1, 0, 0]
>>> cm(y_test, y_pred)
array([[2, 0],
       [0, 1]])

如果我們使用 2 個以上的標簽,這將變得更加清晰。 Cat=1, Dog=2, Mouse=3 如果您希望順序為 Cat、Mouse 和 Dog,則 labels=[1,3,2]

>>> y_test = [1, 2, 3]
>>> y_pred = [1, 3, 2]
>>> cm(y_test, y_pred, labels=[1,3,2])
array([[1, 0, 0],
       [0, 0, 1],
       [0, 1, 0]])

                Pred
          |  1  |  3  |  2 |
          __________________
Actual  1 |   1 |  0  |  0 |
        3 |   0 |  0  |  1 |
        2 |   0 |  1  |  0 |

如果你想要一些其他的順序,比如狗、老鼠和貓,那么 labels=[2,3,1]

>>> cm(y_test, y_pred, labels=[2,3,1])
array([[0, 1, 0],
       [1, 0, 0],
       [0, 0, 1]])
 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM