决策树:一种有监督的机器学习分类算法,可以训练已知数据,做出对未知数据的预测。
机器学习中的分类任务殊途同归,都是要根据已知的数据特征获得最佳的分类方法。对于一个有多个特征的数据,我们需要知道根据哪些特征、怎么使用这些特征来分类能达到最好的分类效果。决策树能够形成一棵分类树,每个分叉处都是根据已知特征选取的局部最优的分类办法,最后得到一套完整的分类方法,也就是一棵决策树。那么如何获得每个分叉处的局部最优解?就要引入信息熵、条件熵的概念。具体公式网络上已有充分的资料可供学习:https://blog.csdn.net/am290333566/article/details/81187124
抽象而言,
信息熵就是衡量信息不确定性的指标。
条件熵是已知一些信息后,目标信息的不确定性。
信息增益=信息熵-条件熵。也就是知道了某个新信息后,目标的不确定性减小了多少。
在一个分类树中,一个父节点根据某些条件分成了多个子节点。而父节点和子节点各自都有出现的概率(可以用熵来表示),决策树的目标,是使得每次分叉信息增益最大。
实例:根据糖尿病数据做出预测
数据集:Pima Indians Diabetes Database,数据都是女性,包含多个特征:年龄、血压、怀孕次数、BMI指数、皮肤厚度等。https://www.kaggle.com/uciml/pima-indians-diabetes-database#diabetes.csvwww.kaggle.com
# 导入数据包
import pandas as pd
from sklearn.tree import DecisionTreeClassifier