Интерпретация выходных данных 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, количество выходных столбцов всегда равно количеству y -1.


Добро пожаловать в CrossValidated. Вы видели мой ответ ниже? Если это решило ваш вопрос, пометьте его как правильный ответ. В противном случае, дайте мне знать, чего не хватает, и я постараюсь выяснить это для вас.
Бен

Ответы:


5

Посмотрите на y_train. Это array([0, 0, 1]). Это означает, что ваш сплит не взял выборку, где у = 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.