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

机器学习(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.

时间: 2024-10-13 17:48:19

机器学习入门 - 1. 介绍与决策树(decision tree)的相关文章

【机器学习算法-python实现】决策树-Decision tree(1) 信息熵划分数据集

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 决策书算法是一种逼近离散数值的分类算法,思路比較简单,并且准确率较高.国际权威的学术组织,数据挖掘国际会议ICDM (the IEEE International Conference on Data Mining)在2006年12月评选出了数据挖掘领域的十大经典算法中,C4.5算法排名第一.C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法. 算法的主要思想就是将数据集依照特

【机器学习算法-python实现】决策树-Decision tree(2) 决策树的实现

(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景 接着上一节说,没看到请先看一下上一节关于数据集的划分数据集划分.如今我们得到了每一个特征值得信息熵增益,我们依照信息熵增益的从大到校的顺序,安排排列为二叉树的节点.数据集和二叉树的图见下. (二叉树的图是用python的matplotlib库画出来的) 数据集: 决策树: 2.代码实现部分 由于上一节,我们通过chooseBestFeatureToSplit函数已经能够确定当前数据集中的信息熵最大的

机器学习算法实践:决策树 (Decision Tree)(转载)

前言 最近打算系统学习下机器学习的基础算法,避免眼高手低,决定把常用的机器学习基础算法都实现一遍以便加深印象.本文为这系列博客的第一篇,关于决策树(Decision Tree)的算法实现,文中我将对决策树种涉及到的 算法进行总结并附上自己相关的实现代码.所有算法代码以及用于相应模型的训练的数据都会放到GitHub上(https://github.com/PytLab/MLBox). 本文中我将一步步通过MLiA的隐形眼镜处方数集构建决策树并使用Graphviz将决策树可视化. 决策树学习 决策树

机器学习(二)之决策树(Decision Tree)

Contents 理论基础 熵 信息增益 算法实现 Python 模型的保存与读取 总结 理论基础 决策树(Decision Tree, DT):决策树是一种基本的分类与回归方法.由于模型呈树形结构,可以看做是if-then规则的集合,具有一定的可读性,可视化效果好. 决策树的建立包括3个步骤:特征选择.决策树生成和决策树的修剪. 模型的建立实际上就是通过某种方式,递归地选择最优的特征,并通过数据的划分,将无序的数据变得有序. 因此,在构造决策树时,第一个需要解决的问题就是如何确定出哪个特征在划

转载:算法杂货铺——分类算法之决策树(Decision tree)

作者:张洋 算法杂货铺——分类算法之决策树(Decision tree) 2010-09-19 16:30 by T2噬菌体, 44346 阅读, 29 评论, 收藏, 编辑 3.1.摘要 在前面两篇文章中,分别介绍和讨论了朴素贝叶斯分类与贝叶斯网络两种分类算法.这两种算法都以贝叶斯定理为基础,可以对分类及决策问题进行概率推断.在这一篇文章中,将讨论另一种被广泛使用的分类算法——决策树(decision tree).相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置,因此在实际

数据挖掘-决策树 Decision tree

数据挖掘-决策树 Decision tree 目录 数据挖掘-决策树 Decision tree 1. 决策树概述 1.1 决策树介绍 1.1.1 决策树定义 1.1.2 本质 1.1.3 决策树的组成 1.1.4 决策树的分类 1.1.5 决策过程 1.2 决策树的优化 1.2.1 过拟合 1.3.1 剪枝 2. 理论基础 2.1 香农理论 2.1.1 信息量 2.1.2 平均信息量/信息熵 2.1.3 条件熵 2.1.4 信息增益(Information gain) 2.1.5 信息增益率

机器学习-决策树 Decision Tree

咱们正式进入了机器学习的模型的部分,虽然现在最火的的机器学习方面的库是Tensorflow, 但是这里还是先简单介绍一下另一个数据处理方面很火的库叫做sklearn.其实咱们在前面已经介绍了一点点sklearn,主要是在categorical data encoding那一块.其实sklearn在数据建模方面也是非常666的.一般常用的模型都可以用sklearn来做的.既然它都这么牛逼了,咱们为啥还要学TensorFlow呢?其实主要的原因有两个,一是因为Google在流量方面的强势推广,导致绝

机器学习技法总结(六)Decision Tree Hypothesis

这里先再次提出我们利用aggregation获取更好性能的Hypothesis G所涉及的方法:blending,就是在得到g_set之后进行融合:learning呢?就是在线online的获取g并融合.下面就是关于整个aggregation所涉及到的方法总结: 其中Bagging.AdaBoost我们都已经探讨,它们分别是基于uniform(voting / average)和non-uniform(linear)的aggregation type,那么下面就开始介绍一个基于condition

决策树Decision Tree 及实现

Decision Tree 及实现 标签: 决策树熵信息增益分类有监督 2014-03-17 12:12 15010人阅读 评论(41) 收藏 举报  分类: Data Mining(25)  Python(24)  Machine Learning(46)  版权声明:本文为博主原创文章,未经博主允许不得转载. 本文基于python逐步实现Decision Tree(决策树),分为以下几个步骤: 加载数据集 熵的计算 根据最佳分割feature进行数据分割 根据最大信息增益选择最佳分割feat