机器学习之算法决策树(分类)——通过例子说明信息熵的计算方法

本文介绍了决策树算法中信息熵的计算方法及其在分类过程中的作用。通过鸢尾花数据集的例子,展示了如何寻找最大信息增益的阈值来构建决策树,解释了决策树的优点和缺点,如易于理解、处理不同类型数据以及易过拟合等问题。
摘要由CSDN通过智能技术生成

决策树采用的是信息熵或者Gini系数来作为分类标准。
信息熵公式:在这里插入图片描述
Gini系数公式:在这里插入图片描述
一般构造一个分类器(sklearn.tree.DecisionTreeClassifier),默认参数criterion有{“gini”, “entropy”}, 其中default=”gini”。这两个计算公式不一样而已。

我在这里计算的是信息熵的公式,另外的一个也都一样,换一个公式而已。

我们在提到概率问题的时候都会有一个前提假设,假设这些变量或者特征都是相互之间没有关系的,就不会存在组合的情况,不然就没办法计算概率了
信息熵它是用来描述信息的紊乱程度,也就是不确定度。当所有数据都是一种类别的时候,他的紊乱度为0,也就是信息熵为0.信息熵可以大于1,通过公式可以看出,这里的log是以2为底。

比如有一组数据(1,1,1,1,0,0,0,0),四个1四个0,他的信息熵是多少?
通过公式我们先计算1出现概率为1/2,那么有  -1/2*(log(1/2)),
再计算0出现概率为1/2,那么有  -1/2*(log(1/2))。接着把他们求和就是-1.这就是这组数的信息熵。
如果是[1,1,1,1,2,2,2,2,3,3,3,3]也是一样的计算方法:
-1/3 * log(1/3) -1/3 * log(1/3) -1/3 * log(1/3)
有几个种类就计算几次,求和即可。

当我们用决策树对数据进行分类的时候,因为他基于CART算法,所以是一个二叉树。

CART(分类树和回归树)与C4.5非常相似,但是区别在于它支持数字目标变量(回归)并且不计算规则集。CART使用在每个节点处产生最大信息增益的特征和阈值构造二叉树。

可以看出我们分类的时候就是找到这个能够有最大信息增益的阈值,最大信息增益就是上一次的信息熵减去分类后的信息熵,也就是找出分类后信息熵最小化的那个阈值。那么怎么找到这个值呢?当然要一个一个试。因为就算是人都不会一眼就看出来,更别说计算机了。

我们一鸢尾花的数据为例,因为这个我们很熟悉

import numpy as np
from sklearn.tree import DecisionTreeClassifier
import sklearn.datasets as datasets
iris = datasets.load_iris()
# 我们使用全部的数据进行计算。因为我们主要不是为了做预测
X = iris["data"]
y = iris["target"]
# 构造分类器,使用entropy,也就是信息熵计算分类
clf = DecisionTreeClassifier(criterion="entropy")
clf.fit(X,y)

这时候其实决策树已经分好了。因为决策树是可以被看见的。我们把他到处到PDF文件。

from sklearn import tree
# graphviz要pip 另外还得去官网下载一个安装文件配一下环境变量
import graphviz

g = tree.export_graphviz(clf,out_file=None,filled=True)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值