簡體   English   中英

二元分類問題中每個概率臨界值的准確度(python sklearn 准確度)

[英]Accuracy for each probability cutoff in a binary classification problem (python sklearn accuracy)

想象一個二元分類問題。 假設我在pred_test存儲了 800,000 個預測概率。 我將cutoff值定義為pred_test任何值,這樣大於或等於cutoff值的值被分配值 1,小於cutoff值的值被分配值 0。

是否有一個函數sklearn返回該模型的准確性每個cutoffpred_train 我想看到模型的准確性作為每個截止點的函數,以系統地選擇一個截止點。

我嘗試了以下方法:

_list = []
for cutoff in np.unique(np.sort(pred_test)):
    binary_prediction = np.where(pred_test >= cutoff, 1, 0)
    _list.append( (cutoff, binary_prediction == y_test).sum() / len(pred_test) )

在這里, y_test是基本事實(一個數組,其中包含 800,000 行中每一行的觀察結果)。 此代碼返回一個列表,其中每個值都包含截止值及其相應的准確度分數。

對象pred_test有大約 600,000 個不同的值,所以我迭代了 600,000 次左右。 上面的代碼正在運行,但需要很長時間才能完成。 有沒有更有效的方法來做到這一點? 我敢打賭sklearn已經有一個功能可以做到這一點。

這里有一些類似的線程來檢查它: 在 scikit-learn 中獲得二元概率分類器的最大精度

scikit-learn 中沒有內置函數。 我認為未實施的原因是您將有機會過度擬合,您基本上會將您的訓練集調整為對測試集有風險的基線。

暫無
暫無

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

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