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

网友投稿 314 2022-10-25


机器学习入门 - 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*)2Absolute 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.机器学习一般方法

将数据分成 70% 的训练数据,10% 研发数据, 20% 测试数据for loop 所有的 hyperparameter (超级参数)使用训练数据,训练模型 f使用 研发数据 计算 Expected Loss (平均损失)从上面所有的 超级参数中,选择平均损失最低的那组作为最终模型使用 测试数据对最终模型进行评估

Reference

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:前端构建工具gulp
下一篇:Java实现简单的扫雷图
相关文章

 发表评论

评论列表