我使用以下代码希望实现确定性:
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)
但是我的结果不是确定性的。为什么会这样,我该如何解决?
最佳答案
在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