每次我运行RandomForestRegressor都会得到不同的结果

时间:2018-07-16 18:16:49

标签: python numpy scikit-learn random-forest non-deterministic

我使用此代码希望实现确定性:

from sklearn.ensemble import RandomForestRegressor
np.random.seed(0)
import random
random.seed(0)

rf = RandomForestRegressor(n_estimators=1000, criterion='mse', min_samples_leaf=4)

但是我的结果并不确定。为什么会这样,我该如何解决?

1 个答案:

答案 0 :(得分:3)

random_state中使用RandomForestRegressor参数:

from sklearn.ensemble import RandomForestRegressor

rf = RandomForestRegressor(n_estimators=1000, criterion='mse', min_samples_leaf=4, 
                           random_state= 0)

这应该每次都返回相同的结果。


  

Scikit-learn不使用自己的全局随机状态;每当一个   没有提供RandomState实例或整数随机种子作为   参数,它依赖于可以设置的numpy全局随机状态   使用numpy.random.seed


话虽如此,添加 np.random.seed() 之前 导入 RandomForestRegressor 也应该可以解决问题

来源:http://scikit-learn.org/stable/faq.html#how-do-i-set-a-random-state-for-an-entire-execution