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

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

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


 

塔吉塔   2020-04-11 19:25



   2个回答 
4

这个问题是因为,学习一个最优决策树是一个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
2

一个很类似的问题和解答

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

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

wxw_pku   2020-04-12 17:19



  相关主题

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

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

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

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

lightgbm.LGBMModel和lightgbm.LGBMClassifier该用哪个?   1回答

sklearn里的RandomForestClassifier怎么选样本的数量   1回答

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

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

可视化sklearn决策树的结构   2回答

对sklearn的决策树进行剪枝   3回答

CatBoostClassifier里的rsm参量是什么意思?   1回答

sklearn里的LabelEncoder什么用?   3回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!