2017-05-03 162 views
2

當使用我的sklearn分類器的預測函數時,我想看看它用於預測的概率分佈,以估計置信度量度。python sklearn分類器使用的概率分佈是什麼

我用下面這個簡單的識別器配置:

clf = SGDClassifier(loss='log',penalty='l2',alpha=1e-3, n_iter=5, random_state=42).fit(X, Y) 

而對於預測我使用:

predicted = clf.predict(X_test) 
    proba = clf.predict_proba(X_test)[0] 

但看的概率分佈「PROBA」的時候,我意識到類最大可能性值並不總是與'預測'變量中的類相同。這是爲什麼?我怎樣才能得到預測函數中使用的相同概率分佈?

+0

你能重現一個工作的例子嗎? –

回答

2

SGDClassifier.predict_proba()文檔:

loss=」modified_huber」二進制概率估計由(clip(decision_function(X), -1, 1) + 1)/2給出。對於其他損失函數,需要通過用sklearn.calibration.CalibratedClassifierCV來代替分類器來執行適當的概率校準。

在你的示例代碼,您正在使用loss="log",但作爲指導,這可能是爲什麼你看到predict()predict_proba()之間的差異不換你的分類。