Day3 机器学习监督学习——决策树原理
一.决策树的原理
1.机器学习中分类和预测算法的评估:
准确率
速度
强壮型:有数据缺失或错误时算法的运行
可规模性:数量级规模比较大
可解释性
2.决策树(decision tree)
决策树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每一个分支代表一个属性输出,而每个树叶节点代表类或类分布。树的最顶层是根节点。
3.熵(entropy)概念:
信息比较抽象,度量信息,香农提出了“信息熵”的概念。变量的不确定性越大,熵也就越大。比特来衡量信息的多少。
4.决策树归纳算法(ID3)——Information Gain
选择属性判断节点:信息获取量(通过A来作为节点分类获取了多少信息)
a.先计算出目标函数的信息熵
b.计算每一个属性的信息熵
c.用目标函数与变量(属性)的信息熵作差,结果最大的属性作为第一个判断节点。不断重复此过程,创建当前节点,增长决策树。其中在处理连续型变量的属性的时候,我们需要将连续变量给离散化。
此外,还有一些其他的算法,他们有相同的地方,也有不同的地方。
共同点:贪心算法,自上而下。
不同点:属性选择度量方案不同
5.树减枝叶(避免overfitting)
a.先剪枝:分到一定程度不再分
b.后剪枝:完全先把树建好,在根据一定标准剪叶子。
6.决策树优缺点:
优点:直观,小规模数据集有效
缺点:在处理连续型变量时不好;类别较多时,错误增加的比较多;可规模性一般。
二.决策树的实现
1.Python机器学习的库:scikit-learn
1.1特性:
简单高效地数据挖掘和机器学习分析
对所有用户开放,根据不同需求高度可重用性
基于Numpy,SciPy和matplotlib
开源,商用级别:获得BSD许可
1.2覆盖问题领域:
分类(classification),回归(regression),聚类(clustering),降维(dimensionality reduction)
模型选择(model selection),预处理(preprocessing)