【发布时间】:2018-04-04 17:13:01
【问题描述】:
sklearn 中是否有一个参数可以调整以多次运行随机森林(或其他估计器)以消除运行之间的变化?最简单的方法是什么?
【问题讨论】:
标签: scikit-learn random-forest
sklearn 中是否有一个参数可以调整以多次运行随机森林(或其他估计器)以消除运行之间的变化?最简单的方法是什么?
【问题讨论】:
标签: scikit-learn random-forest
您不能只是简单地手动消除运行之间的差异。您可以做的是使用GridSearchCV 执行超参数调整(或者您也可以查看其他类似方法at this link。您还可以查看对您的数据集执行Cross-validation 以获得更好的估计器性能。您可以看看Sklearn for cross-validation中的方法。
还请提供更多有关您的问题的信息,例如您要解决的问题类型、数据集等,以便我们更好地为您提供帮助。
【讨论】:
VotingClassifier 与软投票可能是您正在寻找的。一般来说,给定两组预测,你可以取预测的几何平均值来平滑它。
from scipy.stats.mstats import gmean
df = pd.DataFrame()
#prediction renamed in 1.csv,2.csv... for convenience
for i in range(1,4):
data = pd.read_csv('{}.csv'.format(i),index_col='id')
data = data.rename(columns={'proba':i})
df = pd.concat([df,data],axis=1)
df['proba'] = gmean(df.iloc[:,1:4],axis=1)
output = pd.DataFrame(data={'id':df.index,'proba':df.proba})
output.to_csv('submissions.csv',index=False)
【讨论】: