首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不知道应该如何做决策?不如让这棵“树”来帮你

这一篇我们继续来看监督学习中的几种算法。

决策树

决策树(Decision Tree)既可以用作分类,又可以用作回归。这里我们主要介绍其分类算法。

决策树,顾名思义,它的形状很像一棵倒过来的树。通过将数据的各个特征不断细分,最后使划分出的数据只含有一种类别,不含其它类别。

举个例子来说明,假设你要出去骑车,限制你出门的条件分别是温度和湿度,如下表所示:

用决策树可以表示为

决策树中,我们把最上面的一点叫做根节点,不能继续往下细分的叫做叶节点。

实战

首先,还是加载决策树模型

接着,加载我们的乳腺癌数据集,并将其分为训练集和测试集

然后,训练我们的决策树模型

最后,我们分别来看下模型在训练集和测试集的精度

可以看到,模型在训练集上的精度达到了100%,完美的将所有数据进行了分类。但在数据量很大时,非常容易产生过拟合现象。

为了防止过拟合,通常有两种方法。

一种方法叫做预剪枝,就是提前终止决策树的生长。

另一种方法叫做后剪枝,指的是在决策树构造完成后,删除掉那些信息量小的节点,减少决策树的复杂度。

在Scikit-learn中,我们使用的是前者——预剪枝的方法。

查看特征

此外,我们还可以查看在数据集中,哪些特征对分类起到了比较重要的作用。

每个特征对应一个0到1之间的数字,0表示这个特征没什么用,越靠近1表示这个特征所起的作用越大。

我们还可以将特征的重要性进行可视化。

模型的重要参数

决策树有三个重要的参数,都是有关预剪枝的,用来控制模型的复杂度。

1.max_depth

该参数控制树的最大深度,深度越深,模型越复杂。一般来说,深度一般不超过10.

2.max_leaf_nodes

该参数限制所有叶节点的最大数量,叶节点越多,模型越复杂。

3.min_samples_leaf

该参数控制一个节点中样本数量的最小值,样本数越小,模型就越复杂。

模型的优缺点

决策树的优点之一就在于其数据不用进行预处理,因为它是根据每一个特征来进行划分,即使特征之间的尺度不同,也无需进行数据规范化处理;第二个优点就是它的模型和特征都可以进行可视化,具有较强的解释性。

决策树的缺点就是即使已经做了预剪枝的处理,但依然容易发生过拟合。

为了解决这个问题,我们经常用很多棵树来代替单棵树,这就是下一篇将要介绍的集成学习方法。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190827A04DAW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券