也许,坚持才是程序员最大的修养
今天跟大家分享决策树与随机森林算法与实践
1、决策树算法:
简单理解,决策树就是不断的根据判断条件下分分支,直到正确的或者规定的分类结果。
分类的得分效果很好,我们需要关注的参数就是max_depth=
类似于节点层数,1代表1层节点,分成两类,2代表2层节点,分成四类,依次类推。
想要看清楚决策树的每一层做了什么事情,我们需要借助graphviz库,会帮助我们画出一个决策树的图,感兴趣的可以去自行查看资料,这里不深究。
基于可视化的库,决策树的一大优势就在于很容易的进行结果可视化,另外决策树不需要对数据进行预处理(几乎不需要,还记得贝叶斯算法是需要进行预处理的)
但是决策树因为需要max_depth参数的调节,因此不可避免出现过拟合现象,但是随机森林算法则能解决这个弊端。
2、随机森林
决策树是一棵树,随机森林就是决策树的森林,简单而言它将数据集分成若干个,分别进行决策树类似的算法,再取均值的结果。
我们发现随机森林的得分相对于决策树的得分更加高,通常情况下,随机森林的分类都会更加细腻。
我们考虑重要的参数:n_estimators=6,这个参数控制决策树的数量,就是将数据集划分成多个数据集,进行多少个决策树算法,如果是回归,则最后取决策树的预测均值,如果是分类,则会内部对概率投票。
随机森林是应用最广泛的算法之一,十分强大,其不需要对数据进行预处理,就像决策树一样。但是对于大型数据集,决策树会显得较慢,因为需要分成大量的决策树进行运算。
截止目前,无论是K最近邻算法,线性算法,贝叶斯算法,还是决策树算法,对于随机森林算法而言都显得有些渺小。
,