Python
Scikit predict_proba 輸出解釋
我正在使用 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 存在。您需要更多樣本才能返回有意義的內容。
另請查看文檔以了解如何解釋輸出。