sklearn DecisionTreeRegressor模型中为什么会有随机种子random_state?

  统计/机器学习 监督式学习 Python    浏览次数:3114        分享
1

我印象中决策树里没有采样的步骤,为什么sklearn的DecisionTreeRegressor中还有随机因子random_state?


 

塔吉塔   2020-04-11 19:25



   2个回答 
5

这个问题是因为,学习一个最优决策树是一个NP问题。 所以实际应用中,生成决策树是基于启发式算法的,比如贪婪算法,贪婪算法可以在每个节点进行局部最优点求解,但它无法保证返回全局最优解。不论是random forest还是decision tree,贪婪算法会随机且多次抽取部分特征和样本,这个随机抽取过程可以通过random_state来决定。

顺便提一嘴,挺有名的教程《Hands-On Machine Learning with Scikit-Learn and TensorFlow总是使用random_state=42, 当然实际中random_state可以选择任何一个数值。

Reference: 

1. stackoverflow 

2. scikit-learn decision tree

SofaSofa数据科学社区DS面试题库 DS面经

QuinnWei   2020-04-11 23:13

谢谢大牛解惑! - 塔吉塔   2020-04-11 23:20
3

一个很类似的问题和解答

sklearn模块里的DecisionTreeClassifier为什么每次结果不同

SofaSofa数据科学社区DS面试题库 DS面经

wxw_pku   2020-04-12 17:19



  相关讨论

sklearn模块里的DecisionTreeClassifier为什么每次结果不同(数据相同的情况下)

怎么得到sklearn里的RandomForestClassifier训练好之后每棵树的叶节点的个数?

sklearn里怎么获得adaboost中每棵树的权重?

sklearn里的RandomForestClassifier和ExtraTreesClassifier有什么区别吗?

sklearn里的RandomForestClassifier怎么选样本的数量

怎么获得sklearn里决策树的实际深度?

对sklearn的决策树进行剪枝

sklearn随机森林设置每棵树的权重

lightgbm.LGBMModel和lightgbm.LGBMClassifier该用哪个?

可视化sklearn决策树的结构

  随便看看

pytorch里view(-1, 1)什么意思?

训练神经网络中经常提到的epoch是什么意思

怎么对2维的numpy array取整?

K-means怎么选K?

凸函数、凸集分别是什么意思?