Python

Scikit predict_proba 輸出解釋

  • November 3, 2015

我正在使用 python 中的 scikit-learn 庫。在下面的代碼中,我在預測概率,但我不知道如何讀取輸出。

測試數據

from sklearn.ensemble import RandomForestClassifier as RF
from sklearn import cross_validation

X = np.array([[5,5,5,5],[10,10,10,10],[1,1,1,1],[6,6,6,6],[13,13,13,13],[2,2,2,2]])
y = np.array([0,1,1,0,1,2])

拆分數據集

X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.5, random_state=0) 

計算概率

clf = RF()
clf.fit(X_train,y_train)
pred_pro = clf.predict_proba(X_test)
print pred_pro

輸出

[[ 1.  0.]
[ 1.  0.]
[ 0.  1.]]

X_test 列表包含 3 個數組(我有 6 個樣本和 test_size=0,5),所以輸出也有 3 個。

但我預測 3 個值 (0,1,2) 那麼為什麼我在每個數組中只得到 2 個元素呢?

我應該如何閱讀輸出?

我還注意到,當我修改 y 中不同值的數量時,輸出中的列數始終是 y -1 的不同計數。

看看y_train。它是array([0, 0, 1])。這意味著您的拆分沒有選擇 y=2 的樣本。因此,您的模型不知道類 y=2 存在。

您需要更多樣本才能返回有意義的內容。

另請查看文檔以了解如何解釋輸出。

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

comments powered by Disqus