机器学习总结(一):决策树
1、基本概念
基本概念︰训练集,测试集,特征值,监督学习,非监督学习,半监督学习,分类,回归
1.1训练集(training set/data)/训练样例(training examples):用来进行训练,也就是产生模型或者算法的数据集。
1.2测试集(testing set/data)/测试样例(testing examples):用来专门进行测试已经学习好的模型或者算法的数据集。
一个运来训练,一个用来学习二者不冲突。
1.3特征向量(features/feature vector) :属性的集合,通常用一个向量来表示, 附属于一个实例,例子中的天气,温度,湿度,风力,水温为属性。
1.4标记(label): C(x)实例类别的标记,即最后预测的结果y,例子中为,最后是否运动,1为是,0为否。
同时:1为是也叫正例;0为否也叫返例。
1.5分类(classification):目标标记为类别型数据(category);结果为是否,结果只有是或否
1.6回归(regression):目标标记为连续性数值(continuous numeric value);例如房价预测,价格是数值型。
例:研究肿瘤良性还是恶性取决于尺寸和颜色的关系。这是一个分类问题。
特征值:肿瘤尺寸,颜色
标记:良性/恶性
1.7三个学习
有监督学习(supervised learning):训练集有类别标记(class label);训练集都知道最后得结果,例训练集里面的例子都知道肿瘤是良性还是恶性。
无监智学习(unsupervised learning):无类别标记(class label);训练集不知道最后结果,即不知道肿瘤是什么性质。
半监督学习(semi-supervised learning):有类别标记的训练集+无标记的训练集。
1.8机器学习步骤框架
把数据拆分为训练集和测试集
用训|练集和训练集的特征向量来训练算法
用学习来的算法运用在测试集上来评估算法(可能要设计到调整参数(parametertuning))用来验证集(validation set)
例:总共110天,100天是训练,10天用来验证。
机器学习中分类和预测算法的评估∶
准确率;速度;强壮性(有一些噪音或数值缺失时能否继续运行);可规模性(数据变成打的数据集时能否继续运行);可解释性
2、决策树
2.1什么是决策树
决策树是一个类似于流程图的树结构∶
其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布。树的最顶层是根结点。如下图
构造决策树的基本算法
如下图:判断是否会买电脑
列出决策树
2.2信息熵(information entropy):
一条信息的信息量大小和它的不确定性有直接的关系,要搞清楚一件非常非常不确定的事情,或者是我们一无所知的事情,需要了解大量信息==>信息量的度量就等于不确定性的多少。
用比特(bit)来衡量信息的多少,计算信息熵公式如下:
P(x)为事件发生的概率,变量的不确定性越大,熵的值越大。
2.3决策树归纳算法(ID3)
重点:选择属性判断的节点:即该把那个属性放到根节点。
信息增益量(Information Gain) : Gain(A) = Info(D) - lnfor_A(D),通过A来作为节点分类获取了多少信息,Gain(A)为A属性的增益量=没有A属性的原始增益量-加上A属性后的增益量。D为数据集。
信息增益量越大,节点纯度越高,越适合做根节点。
例
总共有14个例子,NO是5个,9个是yes,
计算原始数据集D的信息熵:根据上面信息熵计算公式,买电脑占比例9\14,不买电脑占比例5\14,两个情况带入公式相加的:
以年龄为例,计算加上年龄的信息熵:
14人中按年龄分为三类:youth有5个,senior有5个,middle_aged有4个,所以先计算他们各自在14人中所占比例,再乘以他们的信息熵(这里的信息熵是三个年龄段的信息上计算)
信息量Gain(age)计算:
依次计算其他的信息量:
因为年龄的信息增益量最大,所以选择age作为根节点。
下一个节点依旧重复计算
总结:
数是以代表训练样本的单个节点开始的(步骤1)。
如果样本都在同一个类,则该结点成为树叶,并用该类标号(步骤2和3),此类少见。
否则,算法使用称为信息增益的基于熵的度量作为后发信息,选择能够最好地将样本分类的属性(步骤6) 。该属性成为该结点的“测试”或"判定"属性(步骤7) 。
所有属性都是分类的,是离散的,若是连续属性必须进行离散化。
对测试属性的每个已知的值,创建一个分枝, 并据此划分样本(步骤8-10)。
算法使用同样的过程,递归地形成每个划分,上的样本判定树。一旦一个属性出现在一个结点上,就不必该结点的任何后代上考虑它(步骤13) 。
递归划分步骤仅当下列条件之一成立停止:
a.给定结点的所有样本属于同一类(步骤2和3)
b.没有剩余属性可以用来进一步划分样本(步骤4)。在此情况下,使用多数表决(步骤5)。
3、决策树应用
3.1学习的库
使用python里面的scikit-learn库。
pip install scikit-learn