RandomForestClassifier, реализованный в Python, не работает - PullRequest
0 голосов
/ 01 октября 2018

У меня есть этот CSV-файл:

name,likes,trabels,rapn,aps,class
0,name1,22,0.3,0.893818566,2,0
1,name2,2,0.3,0.910212895,2,0
2,zendym.,6,1,0.195939375,1,0
3,smok,16,0.3,0.56267631,2,0
4,d,3,0.3,0.01069298,1,0

, и я хочу классифицировать имена в соответствии с остальными их атрибутами.Я использую этот код:

import pandas as pd 
from sklearn import datasets

df=pd.read_csv('book4.csv')

from sklearn.model_selection import train_test_split

X=df[['likes', 'trables', 'rapn', 'aps']]
y=df['class']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.7)

from sklearn.ensemble import RandomForestClassifier

clf=RandomForestClassifier()

clf.fit(X_train,y_train)

y_pred=clf.predict(X_test)

from sklearn import metrics

print("Accuracy:",metrics.accuracy_score(y_test, y_pred))

Это моя первая программа машинного обучения.Проблема в том, что при запуске я получаю [0 0 0 ..., 0 0 0] и Accuracy=1 (!!!!!!).Кроме того, когда я проверяю важность каждой функции, я также получаю 0.0 за каждую.Я не могу понять, что я делаю неправильно.Может ли кто-нибудь помочь мне?

1 Ответ

0 голосов
/ 02 октября 2018

Во-первых, если этот набор данных - это все, что у вас есть, он слишком мал для реализации Классификатора случайных лесов (который требует данных) или даже для любого машинного обучения.Затем у вас возникла проблема с классом дисбаланса, «машина» не знает, есть ли другие class, кроме 0.Вот почему все прогнозы равны нулю.

...