在Python中实现的RandomForestClassifier不起作用
我有这个csv文件:在Python中实现的RandomForestClassifier不起作用,python,machine-learning,random-forest,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
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]
和精度=1
(!!!!!!!!!)。此外,当我检查每个功能的重要性时,我也会得到每个功能的0.0
。我不明白我做错了什么。有人能帮我吗 第一件事是,如果这个数据集是您所有的,那么它太小了,无法实现随机森林分类器(这是数据饥饿)甚至任何机器学习。接下来,您有一个极其不平衡的类问题,“机器”不知道除了0
之外是否还有其他类。这就是为什么所有预测都是零。你有一个不平衡的班级问题。所有类都只映射到0
。提供的示例是整个数据集吗?它不包含类为1
否的任何行,这是数据集的一部分。但是对于整个数据集,class
是0
。@mad_u我知道了。我应该映射这些类。问题是,我希望算法能够找到类——在这种情况下,我是否使用了错误的技术?在做出预测之前,实际上是在允许算法从类中学习。如果它只包含0
类,则表示它没有看到任何其他类类型。因此,无论发生什么情况,它都会预测结果有利于0
。如果有意义的话,您实际上是在数据集中引入了偏差。