机器学习入门-1.介绍与决策树(decisiontree)

author author     2022-09-03     384

关键词:

机器学习(Machine Learning) 介绍与决策树(Decision Tree)


机器学习入门系列 是 个人学习过程中的一些记录与心得。其主要以要点形式呈现,简洁明了。


1.什么是机器学习?

一个比较概括的理解是: 根据现有的数据,预测未来


2.核心思想 : Generalization

可以理解为,归纳、概括。就像是人的学习一样,找出一件事物与与一件事物的联系


3.归纳性的机器学习(Inductive machine learning)

其核心思想是使用训练数据,并从其中摸索出一套适用于现实中的公式 f。然后用这个公式来预测现实中的结果


其分为四种类型

  • Regression 回归类型: 主要适用于预测真实数据

  • Binary Classification : Yes 和 No 的分类问题

  • Multiple Classification: 一对多的分类问题

  • Ranking:相关性的排序问题


4.第一个模型:决策树

决策树的核心思路:divide and conquer。 相信大家在学习 递归编程(recursion)的时候已经很熟悉了这个概念了,那就是将问题拆分到足够简单,然后解决掉它。


为了将现实中的问题转化为我们可以使用的模型,在这里我们提出几个概念

feature(特性):每次决策树在做决定时要问的问题

feature value (特性值):简单理解为问题的回答

training data : 训练数据 > > 即有很多个例子的集合。每个例子 通常以 (x,y)形式形式出现,x 是输入数据,y是实际的结果


5.决策树的工作原理

例如下面的决策树虚拟代码取自《A Course in Machine Learning》(Hal)


技术分享



其核心思路是,从剩余的feature 中选择一个最有用的来提问,如果答案可以直接决定最终结果那么,跳出递归。如果没有剩余的feature 来提问那么返回默认答案。否则将整个数据一分为二,分别是yes 组合 no 组,然后分成两个分支继续递归(16,17行)。


























6.Loss Function,L(y , y*)

y 是真正的结果,y* 是机器预测的结果 L 代表 loss 函数。所以loss function 是用来量化错误的。

根据不同类型可以分为:


  • Regression 回归类:

    • Square loss: 平方损失: L(y , y*) = (y - y*)2

    • Absolute loss: 绝对损失: L(y , y*) = |y - y*|

  • Binary 是和否的问题 以及多组分类问题 : 

    • L(y , y*) = 0 , if y = y* (零损失)

    • L(y , y*) = 1 , if y <> y*


7. 平均损失 Expected Loss

Expected loss = Sum(x,y)( D(x , y) * L(y , y*) )   

D(x,y) 是 (x,y) 发生的概率分布,这里可以理解为(x,y)发生的概率。 所以就是期望值的一般算法, 把概率乘以损失 然后求和。


所以对于我们机器学习推导出来的方程式 f,需要Expected Loss 越低越好。


8.Inductive Bias 归纳偏见

不同的模型或者方法的选择会产生不同的偏见。例如决策树会比较擅长处理单独的一个一个的问题,但是对于几个feature相互作用的问题就收效甚微。

在后续文章会继续介绍不同模型的偏见,这里先提出来。



9. Shallow Decision Tree 

即有最大深度的 决策树,我们可以用一个深度 d 来限制决策树的最深层数


10. Underfitting 和 Overfitting

这是两个非常重要的概念, Underfitting 是指的,学的不够多,例如学生什么都不学就去考试,自然不会考的好。

Overfitting 是指,学生学成了书呆子,只会死记硬背,考试的题目改几个数字就完全不会做了。


在决策树里面,如果一个feature 都不问,那么就是 underfitting ,什么都不学,每次只返回训练数据里面的多数答案。

如果问很多个feature 把 所有的feature都问一边就有可能 overfitting, 完全的照着训练数据在记忆而不是归纳学习。



11.数据分配


数据说明百分比
Training Data 训练数据学习并总结 方程式 f
70%
Development Data 研发数据调整超级参数(Hyperparameters) 来避免 underfitting 和 overfitting。10%
Test Data 测试数据用来评估最后的学习效果。永远不要偷看测试数据!偷看测试数据就好像偷看了考试答卷,只会导致程序有针对性的编程。但是一旦到了真正的运行环境,效果就会十万八千里。20%


超级参数(Hyperparameters) 是指的可以影响普通参数的参数。例如 刚刚最高询问深度 d,就是一个超级参数。


12.机器学习一般方法


  1. 将数据分成 70% 的训练数据,10% 研发数据, 20% 测试数据

  2. for loop 所有的 hyperparameter (超级参数)

    1. 使用训练数据,训练模型 f

    2. 使用 研发数据 计算 Expected Loss (平均损失)

  3. 从上面所有的 超级参数中,选择平均损失最低的那组作为最终模型

  4. 使用 测试数据对最终模型进行评估





Reference

Hal, Daumé III. A Course In Machine Learning. 2nd ed. Self-published, 2017. Print.


本文出自 “SummerTime的博客” 博客,请务必保留此出处http://summertime.blog.51cto.com/4412692/1932137

机器学习入门之决策树算法

1、什么是决策树(DecisionTree)       决策树是一个类似于流程图的树结构,其中每一个树节点表示一个属性上的测试,每一个分支代表一个属性的输出,每一个树叶节点代表一个类或者类的分布,树的... 查看详情

机器学习——决策树(代码片段)

1、介绍决策树是一种依托决策而建立起来的一种树。在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系,每一个节点代表某个对象/分类,树中的每一个分叉路径代表某个可能的属性值... 查看详情

机器学习入门之决策树法

决策树法1、决策树模型与学习1.1、决策树模型分类决策树模型是一种描述对实例进行分类的树形结构,决策树由结点和有向边组成。结点分为两种,内部结点和叶子结点;内部结点表示一个特征或者属性;叶子结... 查看详情

决策树系列决策树基础

  机器学习按数据的使用方式来说可以分为有监督学习、无监督学习、半监督学习、强化学习等,机器学习中的算法还有另外一种划分方式:分类、聚类、回归。但我更喜欢分为两种:广义的分类(分类+聚类)和回归,这里... 查看详情

学习笔记|机器学习决策树

文章目录一、算法原理二、基础知识1.自信息、信息熵与条件熵2.信息增益和增益率3.Gini值和Gini指数三、过拟合与剪枝四、连续值和缺失值处理1.连续值处理2.缺失值处理五、总结通过这篇博客,您将收获如下知识:熟悉决策树相... 查看详情

学习笔记|机器学习决策树

文章目录一、算法原理二、基础知识1.自信息、信息熵与条件熵2.信息增益和增益率3.Gini值和Gini指数三、过拟合与剪枝四、连续值和缺失值处理1.连续值处理2.缺失值处理五、总结通过这篇博客,您将收获如下知识:熟悉决策树相... 查看详情

机器学习决策树理论第二卷

决策树内容来至于《统计学习与方法》李航,《机器学习》周志华,以及《机器学习实战》PeterHarringTon,相互学习,不足之处请大家多多指教!本卷的大纲为1CART算法1.1CART回归树1.2CART分类树2CART剪枝3总结1CART算法CART分类与回归树(classi... 查看详情

机器学习与人工智障:决策树与随机森林

一、从LR到决策树  1.总体流程与核心问题    (1)决策树是基于树的结构进行决策:      每个“内部节点”对应于某个属性上的“测试”      每个分支对应于该测试的一种可能结果(即该属性上的每个取值)... 查看详情

机器学习--决策树分类算法及应用

1.决策树分类算法原理1.1概述决策树(decisiontree)——是一种被广泛使用的分类算法。相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置在实际应用中,对于探测式的知识发现,决策树更加适用1.2算法... 查看详情

三天爆肝快速入门机器学习:knn算法朴素贝叶斯算法决策树第二天(代码片段)

三天爆肝快速入门机器学习【第二天】转换器与预估器KNN算法决策树随机森林个人总结转换器与预估器必须理解的转换器与估计器一转化器回想一下之前做的特征工程的步骤?实例化(实例化的是一个转换器类transformer)... 查看详情

数据挖掘入门系列教程(三点五)之决策树(代码片段)

...类。决策树(DecisionTree)介绍DecisionTree是一类较为常见的机器学习的方法。它既可以作为分类算法,也可以作为回归算法。如何来介绍决策树,这里举一个例子:在大学,你找女朋友的时候,心目中顺序应该是这样的(仅仅是举... 查看详情

开始学习机器学习时你必须要了解的模型有哪些?机器学习系列之决策树进阶篇(代码片段)

前言在上一篇文章中我们已经详细介绍了决策树模型,并且提到了ID3算法及其局限性,那么在本篇文章中,我们将会介绍基于ID3算法进行改良的C4.5算法以及决策树拟合度的优化问题。目录前言1C4.5算法1.1修改局部最优... 查看详情

[机器学习与scikit-learn-15]:算法-决策树-分类问题代码详解(代码片段)

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:目录第1章scikit-learn对决策树的支持1.1决策树的基本原理1.2决策树的核心问题1.3 sklearn中的决策树1.4 sklearn实现... 查看详情

opencv4机器学习:决策树原理及分类实战(代码片段)

...结合OpenCV4,来实现一些基本的图像处理操作、经典的机器学习算法(比如K-Means、KNN、SVM、决策树、贝叶斯分类器等),以及常用的深度学习算法。系列文章,持续更新:OpenCV4机器学习(一):... 查看详情

机器学习算法学习02:决策树的学习以及应用决策树解决cora数据集论文分类问题(代码片段)

机器学习算法学习02:决策树的学习以及应用决策树解决Cora数据集论文分类问题文章目录机器学习算法学习02:决策树的学习以及应用决策树解决Cora数据集论文分类问题1.前言2.算法分析2.1算法概述2.2算法优化3.算法代码3.... 查看详情

决策树算法

 决策树算法在机器学习中算是很经典的一个算法系列了。它既可以作为分类算法,也可以作为回归算法,同时也特别适合集成学习比如随机森林。本文就对决策树算法原理做一个总结,上篇对ID3,C4.5的算法思想做了总结,下... 查看详情

牛客编程题python机器学习(入门例题5题)(代码片段)

【牛客编程题】Python机器学习(入门例题5题)做题链接:https://www.nowcoder.com/exam/oj?page=1&tab=Python篇&topicId=329文章目录AI1鸢尾花分类_1AI2鸢尾花分类_2AI3决策树的生成与训练-信息熵的计算AI4决策树的生成... 查看详情

决策树

...这个分类器能够对新出现的实例给出正确的分类。这样的机器学习就是监督学习。 一、介绍决策树(DecisionTree)是一种基本的分类与回归方法,本文主要讨论分类决策树。决策树模型呈树形结构,表示基于特征对实例进行分... 查看详情