[英]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
返回該模型的准確性每個cutoff
於pred_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.