Ошибка классификатора случайного леса, точность со всеми 0,00 - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть данные как pandas датафрейм с x столбцами. Я хочу предсказать (по случайному лесу), что элемент является наиболее значимым.

сначала, я пробовал только с одним столбцом как X (1008 чисел. Dtype float64) y - 1008 чисел, dtype float64, я также пробовал как int64.

  X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.33, random_state=42)
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
print(confusion_matrix(y_test,y_pred))
print(classification_report(y_test,y_pred))
print(accuracy_score(y_test,y_pred))

все, что я получаю, это: точный вызов f1-счет со всеми 0,00

Я пробовал также простой случай: y = [0,1,2,3,4, 5, .., 1000] x = [1,2,3,4,5,6, .., 1001] и снова все 0,00 и ошибка: UndefinedMetricWarning: Точность и F-оценка плохо определены и устанавливаются на 0,0 в этикетках без предсказанных образцов. Используйте параметр zero_division для управления этим поведением.

, поэтому я сделал:

import warnings
warnings.filterwarnings('always')
print(classification_report(y_test,y_pred, labels=np.unique(y_pred)))

ничего не меняется (все 0,00)

что я делаю неправильно?

...