首先先看Iris数据集
Sepal.Length——花萼长度Sepal.Width——花萼宽度
Petal.Length——花瓣长度Petal.Width——花瓣宽度
通过上述4中属性可以预测花卉属于Setosa,Versicolour,Virginica 三个种类中的哪一类
决策树 by CART
决策树有挺多种,这里讲下CART
CART的执行过程是这样的:
用特征值k和下限tk二分子集
不断二分,直到到达最大深度或者划分不能再减少不纯度为止
这一下sklearn都会自动帮我们完成,我们调用就行了
如何避免过拟合问题
减小最大深度等等
一个tip:
min_* 的调大
max_*的调小
就是DecisionTreeClassifier里面的参数,具体看文档_(:з」∠)_
损失函数的比较
sklearn提供了两种损失函数gini和entropy
gini是通过计算每个节点的不纯度,具体公式如下↓
\(J(k,t_k) = \frac{m_{left}}{m}G_{left} + \frac{m_{right}}{m}G_{right}\)
entropy在这里就不再赘述了
sklearn默认的是调用gini,因为gini的速度会快点,而且两者最后的效果是差不多的,真要比的话entropy产生的决策树会更平衡点
接下来我们来看代码
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeC

本文介绍了使用决策树(CART)解决Iris数据集的分类问题。通过对Iris数据集中花萼和花瓣长度、宽度的分析,利用sklearn库构建并训练决策树模型。讨论了如何避免过拟合,包括调整决策树的最大深度,并比较了gini和entropy两种损失函数。同时,展示了决策树的预测过程和可视化决策树的结构。
最低0.47元/天 解锁文章

396

被折叠的 条评论
为什么被折叠?



