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

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

我用sklearn里的DecisionTreeClassifier,发现每次结果(预测结果和score)都有稍微不同,模型参数和数据每次都是一样的。这是bug么?源代码不稳定?

 

机器小白   2017-04-11 12:18



   1个回答 
5

sklearn.tree.DecisionTreeClassifier(criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_split=1e-07, class_weight=None, presort=False)

这个是sklearn.tree.DecisionTreeClassifier的全部参数,其中有一项是random_state,如果你没有特地设定这个数值的话,决策树是有随机性的。


-------------------------来个分界线--------------------------


在sklearn的记录文档里是这么写的,考虑到数值特征的存在,训练一个最优的决策树是NP-complete。因此比较实际的做法是努力去找一个比较优的,而不是最优的。比如用贪婪算法,随机地从一些特征开始建立次优化的决策树,再从这些树中选择最好的,这样的树能达到较优。


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

起个好名字   2017-04-12 09:16



  相关主题

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

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

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

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

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

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

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

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

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

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

sklearn中的Randomizedlogisticregression是什么算法?和SGDClassifier一样吗?   2回答

sklearn.linear_model.SGDClassifier能做小批量学习(mini-batch)吗?   2回答



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

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

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

我们谢绝答非所问。

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

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