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

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

创新互联公司,为您提供网站建设重庆网站制作、网站营销推广、网站开发设计,对服务成都资质代办等多个行业拥有丰富的网站建设及推广经验。创新互联公司网站建设公司成立于2013年,提供专业网站制作报价服务,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏心悦目的作品。 与客户共同发展进步,是我们永远的责任!

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

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)

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

其核心思路是,从剩余的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.

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:机器学习入门-1.介绍与决策树(decisiontree)-创新互联
URL分享:http://myzitong.com/article/eesed.html