我有这个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
。我不明白我在做什么错。有人可以帮我吗?
答案 0 :(得分:0)
第一件事是,如果此数据集是您所拥有的,那么它太小了,无法实现Random Forest Classifier(数据饥渴)甚至任何机器学习。接下来,您遇到了一个极不平衡的类问题,“机器”不知道除class
之外是否还有其他0
。这就是为什么所有预测都为零的原因。