2020-07-17
阅读量:
967
python:为什么代码一致,生成的树模型不同?
问题:为什么代码一致,生成的树模型不同?
解答:
sklearn的决策树,在树生长的过程当中,为了防止局部最优,引入了随机性
为什么呢?因为可能会由于噪音的问题,切分数据集的问题,有可能会导致某一个不重要的特征恰好在计算的过程当中变成了最重要的特征
导致训练出来的树,是局部最优的,有偏。而且每一次训练出来的树都是一样
sklearn引入了随机性,在特征选取的过程当中,通过gini计算,信息增益,选出最好的n个特征
在这n个最好的特征里面,随机的选一个
这个随机性大小是通过splitter进行控制的
splitter = 'best'情况下,如果计算出来的值越大的话,就更加有可能去选这个特征
splitter = 'random'情况下,均匀的选取特征, 随机性变得特别的大
选取最好的n个特征,n是由max_features这个参数控制的
如果选best,并且数据量少,特征少,模型非常稳定,如果数据量很大,特征很多的,即使在best的情况下,随机性就比明显了






评论(0)


暂无数据
推荐帖子
2条评论
0条评论
2条评论