Machine-Learning

調整 sklearn 的邏輯回歸模型的概率閾值

  • December 29, 2018

我是一名 10 年級學生,正在研究二元分類問題,我決定使用 Scikit-Learn 的邏輯回歸模型。我希望根據一天中的時間、一周中的一天或兩者來預測患者的依從性。我已經模擬了數據,並且已經使某些時間段有更多的 0(意味著患者沒有服藥)來模擬趨勢,但我的模型仍然為每個輸入預測“1”。我相信我的數據非常不平衡,並且沒有任何類權重,模型將每個輸入都放入“1”類。顯然,這會導致可怕的準確性、AUC 以及介於兩者之間的所有內容。Sklearn 確實有一個 class_weight 參數,但由於這是二分法並且只給出“平衡”選項,它確實沒有幫助,並且在某些情況下使準確性比假設所有內容都在 1 類中要差得多。鑑於我從數據中看到的情況,我認為將閾值更改為 0.75 會起作用,但我在任何文檔中都找不到有關調整閾值的任何信息。

無論如何調整這個閾值?或者任何其他方式來處理我的不平衡數據?

如果您希望我詳細說明我的數據的細節,請告訴我。

**幾乎沒有充分的理由這樣做!**正如 Kjetil 上面所說,請參見此處。

你應該能夠從’predict_proba’得到概率輸出,然後你可以寫

decisions = (model.predict_proba() >= mythreshold).astype(int)

請注意,邏輯回歸本身沒有閾值。然而,不幸的是,sklearn 確實有一個“決策函數”,它直接在“預測”函數中實現閾值。因此,不幸的是,他們認為邏輯回歸是一個分類器。

引用自:https://stats.stackexchange.com/questions/384833

comments powered by Disqus