首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机森林分类器

随机森林分类器
EN

Stack Overflow用户
提问于 2017-09-10 06:36:16
回答 1查看 2.6K关注 0票数 2

我试着建立一个二项分布分类的随机森林分类器。有人能解释为什么每次我运行这个程序时,我的准确度分数都会变化吗?分数在68% - 74%之间。此外,我试图调整参数,但我无法获得超过74的准确性。对此提出任何建议也将不胜感激。我试着使用GridSearchCV,但我只成功地提高了3个百分点。

代码语言:javascript
复制
#import libraries
import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn import preprocessing

#read data into pandas dataframe
df = pd.read_csv("data.csv")

#handle missing values
df = df.dropna(axis = 0, how = 'any')

#handle string-type data
le = preprocessing.LabelEncoder()
le.fit(['Male','Female'])
df.loc[:,'Sex'] = le.transform(df['Sex'])

#split into train and test data
df['is_train'] = np.random.uniform(0, 1, len(df)) <= 0.8
train, test = df[df['is_train'] == True], df[df['is_train'] == False]

#make an array of columns
features = df.columns[:10]

#build the classifier
clf = RandomForestClassifier()

#train the classifier
y = train['Selector']
clf.fit(train[features], train['Selector'])

#test the classifier
clf.predict(test[features])

#calculate accuracy
accuracy_score(test['Selector'], clf.predict(test[features]))
accuracy_score(train['Selector'], clf.predict(train[features]))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-10 08:17:00

每次运行程序时,您的准确性都会发生变化,因为创建的模型是不同的。而且模型是不同的,因为在创建它时没有修复随机状态。查看来自random_state科学知识-学习文档参数。

对于你的第二个问题,为了提高模型的准确性,你可以尝试很多东西。按重要性排列:

  • 获取更多的培训数据
  • 改进您的培训数据(即摆脱低质量的特征或样本,创建新的功能.)
  • 调整学习算法的参数(RandomForest有一些可玩的)
  • 尝试另一种学习模式。
  • 尝试结合不同的模型
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46137945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档