如何取n次随机森林迭代的平均值?

时间:2017-10-24 02:57:15

标签: scikit-learn random-forest

sklearn中是否有一个参数可以调整以多次运行随机森林(或其他估算器)以平滑运行之间的变化?最简单的方法是什么?

2 个答案:

答案 0 :(得分:1)

您不能简单地手动平滑运行之间的差异。您可以做的是使用GridSearchCV执行超参数调整(或者您也可以查看其他类似方法at this link。此外,您还可以查看数据集的Cross-validation以获得更好的性能您的估算工具。您可以查看Sklearn for cross-validation中的方法。

另外,请提供有关您的问题的更多信息,例如您要解决的问题类型,数据集等,以便我们为您提供更好的帮助。

答案 1 :(得分:0)

软投票的{p> 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)