用Python实现的RandomForestClassifier不起作用

时间:2018-10-01 20:18:01

标签: python machine-learning random-forest

我有这个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 :(得分:0)

第一件事是,如果此数据集是您所拥有的,那么它太小了,无法实现Random Forest Classifier(数据饥渴)甚至任何机器学习。接下来,您遇到了一个极不平衡的类问题,“机器”不知道除class之外是否还有其他0。这就是为什么所有预测都为零的原因。