《机器学习实战》第三章 决策树算法
机器学习个人认为的重点在于三个方面:一是理解能力,即理解知识或是问题的本质;二是抽象能力,如何将问题特征进行抽象,并应用数学知识对具体问题的抽象结果进行建模;三是编码能力,能用代码流畅地表达建立的模型。
决策树是什么:
决策树(Decision Tree)是另一种简单但是广泛使用的分类器。通过训练数据来构建决策树,并利用所构建的决策树对待分类数据进行高效的分类。
决策树作为一种比 k – 近邻算法更加高效的分类器,同样是根据属性来进行分类。那高效的地方在于何处?简单说就是,如果说k – 近邻算法需要比较待分类数据与训练样本的所有特征值的差距。那决策树可能仅依据一个或几个比较有特点的属性就能将待分类数据进行分类。
回忆第一章里相亲网站的例子,如果A女士是一个反对抽烟的人,而在我们训练样本的属性中添加一个生活习惯的属性,其属性的值包括抽烟和非抽烟两个。则当遇到一个新的需要分类的人(B先生)时,如果B先生活习惯属性的特征值是抽烟,则在分类时,我们不需要计算其他特征值的差距,就可以很容易地将B先生归为A女士不喜欢的一类中。
(图为判断贷款人是否具有偿还贷款能力的简单决策树)
2017-02-06_083844.jpg
高效性在于,一次性构建决策树就可以反复使用,并且每一次分类的最大计算次数不超过决策树的深度,并且数据形式非常容易理解。
决策树的优缺点:
优点: 计算复杂度不高, 输出结果易于理解, 对中间值的缺失不敏感,可以处理不相关特征数据。
缺点: 可能会产生过度匹配问题。
适用数据类型: 数值型和标称型
如何构建决策树:
还是以此图为例,
用训练样本的属性作节点(叶节点除外),比如:“拥有房产”;用对应样本属性的特征值作分支,比如“是”或“否”;用分类的标签做叶节点,比如“可以偿还”或“无法偿还”。
根节点:根节点在数据分类时起了关键作用,它是决策树算法汇聚所有数据的地方,为了划分出最好的结果,我们需要找到决定性的特征作为第一个根节点。
非子叶节点:非子叶节点也是属性之一,每一个非子叶节点都是一个决定性属性,帮助流入数据分出最好的分类结果。
分支:分支是给对应节点属性的特征值,满足分支上特征值条件的数据将会被分入对应的下一个节点。
叶节点:叶节点是分类的标签,也就是分类的类别。
我自己的博客地址为:谢雨熹的学习博客欢迎大家来交流!
Talk is cheap, show me your code!