Інтерпретація вихідного прогнозу Scikit


12

Я працюю з бібліотекою scikit-learn в python. У наведеному нижче коді я прогнозую ймовірність, але не знаю, як прочитати вихід.

Тестування даних

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 -1.


Ласкаво просимо до CrossValidated. Ви бачили мою відповідь нижче? Якщо це вирішило ваше питання, продовжуйте і позначте його як правильну відповідь. В іншому випадку дайте мені знати, чого не вистачає, і я спробую це зрозуміти.
Бен

Відповіді:


5

Погляньте y_train. Це так array([0, 0, 1]). Це означає, що ваш розкол не взяв вибірку, де y = 2. Отже, ваша модель не має уявлення про те, що клас y = 2 існує.

Для цього вам потрібно більше зразків, щоб повернути щось значиме.

Також перегляньте документи, щоб зрозуміти, як інтерпретувати вихід.


1
Це правильно. Якщо ви встановите, y = np.array([0,2,1,0,1,2])і random_state=2тепер ви побачите 3 стовпці виводу
tdc

Відповідь вирішила моє запитання. Велике спасибі. І в якому порядку стовпці, будь ласка? Його завжди висхідне?
HonzaB

Біжи clf.classes_. Стовпці будуть у такому порядку.
Бен

Просто так clf.fit(X_train,y_train).classes_:?
HonzaB

1
Я думаю, що це спрацює, але ти можеш просто запуститись clf.classes_ після запускуclf.fit(X_train,y_train)
Бен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.