我印象中决策树里没有采样的步骤,为什么sklearn的DecisionTreeRegressor中还有随机因子random_state?
2个回答
这个问题是因为,学习一个最优决策树是一个NP问题。 所以实际应用中,生成决策树是基于启发式算法的,比如贪婪算法,贪婪算法可以在每个节点进行局部最优点求解,但它无法保证返回全局最优解。不论是random forest还是decision tree,贪婪算法会随机且多次抽取部分特征和样本,这个随机抽取过程可以通过random_state来决定。
顺便提一嘴,挺有名的教程《Hands-On Machine Learning with Scikit-Learn and TensorFlow》总是使用random_state=42, 当然实际中random_state可以选择任何一个数值。
Reference:
SofaSofa数据科学社区DS面试题库 DS面经
谢谢大牛解惑!
-
塔吉塔
2020-04-11 23:20