决策树
4.1.介绍
定义:
决策树:是一种树形结构,其中每个内部节点表示一个属性上的判断,
每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,
本质是一颗由多个判断节点组成的树。
4.2决策树分类与案例
1.熵
物理学上,熵 Entropy 是“混乱”程度的量度。系统越有序,熵值越低;系统越混乱或者分散,熵值越高。
2.信息熵
1、从信息的完整性上进行的描述:
当系统的有序状态一致时,**数据越集中的地方熵值越小,数据越分散的地方熵值越大。
2、从信息的有序性上进行的描述:
当数据量一致时,系统越有序,熵值越低;系统越混乱或者分散,熵值越高。
4.3决策树分类原理
1.信息增益 = entroy(前) - entroy(后)
注意:信息增益越大,我们优先选择这个属性进行计算
信息增益优先选择属性,总类别比较多的进行划分
2.信息增益率
维持一个分离信息,通过这个分离信息度量当分母,进行限制
3.基尼增益
基尼值:
从数据集D中随机抽取两个样板,其类别表计不一致的概率
Gini(D)值越小,数据集D的纯度越高
基尼指数:
选择使划分后基尼系数最小的属性作为最优化分属性。
基尼增益:
选择基尼增益最大的点,进行优化划分
基尼增益构造过程:
1.开始将所有记录看作一个节点
2.遍历每个变量的每一种分割方式,找到最好的分割点
3.分割成两个节点N1和N2
4.对N1和N2分别继续执行2-3步,直到每个节点足够“纯”为止。
决策树的变量可以有两种:
1.数字型(Numeric):通过数据提取两个数字之间的值
2.名称型(Nominal):通过对样本的属性类别进行划分
如何评估分割点的好坏?
主要分割的是否纯
三种算法对比:
ID3算法:
采用信息增益作为评价标准
只能对描述属性为离散属性的数据
机构造决策树
缺点是倾向与选择取值较多的属性
C4.5算法:
用信息增益率来选择属性
可以处理连续数值型属性
对于缺失值处理
CART算法
是c4.5不一定是二叉树,但CART一定是二叉树
是信息增益的简化版
4.4CART剪枝
1.剪枝原因:
噪声、样本冲突,即错误的样本数据。
特征即属性不能完全作为分类标准。
巧合的规律性,数据量不够大。
2.常用剪枝方法
预剪枝:
在构建树的过程中,同时剪枝
eg:
限制节点最小样本数
指定数据的高度
指定数值的最小值
后剪枝:
把一棵树构建完成后,从下往上
4.5特征工程—特征提取
1.特征提取
将任意数据(如文本或图像)转换为可用于机器学习的数字特征
2.特征提取分类:
- 字典特征提取(特征离散化)
- 文本特征提取
- 图像特征提取(深度学习将介绍)
-
3.api
sklearn.feature_extraction
4.字典特征提取
就是对类型进行转换
api:sklearn.feature_extraction import DictVectorizer
aparse矩阵
1.节省内存
2.提高读取效率
属性:
DictVectorizer()
sparse=False
one-hot编码
5.文本特征提取(英文)
1.api
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
stop_words -- 停用词
注意没有sparse这个参数
单个字母标点符号不做标记
6.文本特征提取(中文)
注意:
在中文特征提取之前,需要对句子或文章进行分词(jieba)
里边依然可以使用停用词,进行词语限制
7.tfidf
1.主要思想:如果某个词或短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
2.tfidf
tf -- 词频
idf--逆向文档频率
3.api
from sklearn.feature_extraction.text import TfidfVectorizer
分类机器学习算法进行文章分类中前期数据处理方式
4.5决策树api
class sklearn.tree.DecisionTreeClassifier(criterion=’gini’, max_depth=None,random_state=None)
- criterion
- 特征选择标准
- min_samples_leaf
- 叶子节点最少样本数
- max_depth
- 决策树最大深度
- random_state
- 随机数种子
-
4.6流程分析
1.流程分析
1..获取数据
2.数据基本处理
2.1 确定特征值,目标值
2.2 缺失值处理
2.3 数据集划分
3.特征工程(字典特征抽取)
4.机器学习(决策树)
5.模型评估
2.小结
- 优点:
- 简单的理解和解释,树木可视化。
- 缺点:
- 决策树学习者可以创建不能很好地推广数据的过于复杂的树,容易发生过拟合。
- 改进:
- 减枝cart算法
- 随机森林(集成学习的一种)