几种机器学习算法原理入门教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
几种机器学习算法原理入门教程
一、机器学习的过程
机器学习的过程:从本质上来说,就是通过一堆的训练数据找到一个与理想函数(f)相接近的函数。
在理想情况下,对于任何适合使用机器学习的问题,在理论上都是会存在一个最优的函数让每个参数都有一个最合适的权重值,但在现实应用中不一定能这么准确得找到这个函数。所以,我们要去找与这个理想函数相接近的函数。只要是能够满足我们的使用的函数,我们就认为是一个好的函数。
这个训练数据的过程通常也被解释为:
在一堆的假设函数(Hypothesis set)中,它是包含了各种各样的假设,其中包括好的和坏的假设。
我们需要做的就是:从这一堆假设函数中挑选出它认为最好的假设函数(g)——这个假设函数是与理想函数(f)最接近的。
机器学习这个过程就像是:在数学上,我们知道了有一个方程和一些点的坐标,用这些点来求这个方程的未知项从而得出完整的方程。
但在机器学习上,我们往往很难解出来这个完整的方程是什么。所以,我们只能通过各种手段求最接近理想情况下的未知项取值,使得这个结果最接近原本的方程。
二、什么问题适合用机器学习解决
机器学习不是万能的,并不能解决所有的问题。
通过以上机器学习的过程可以看出来,实质上,机器学习是:通过已知经验找到规律来进行预测。
银行想知道应该发放多少贷款给某个客户时,可以根据过往成功放贷的数据找出每个贷款区间的人群特点、自身的房车资产状况等,再看看这个客户的特点符合哪个区间,以此去确定应该发放多少贷款,这就是适合用机器学习去解决的问题。
对于适合用机器学习解决的问题,台大的林轩田教授为我们总结了三个要素:
1.有规律可以学习
2.编程很难做到
3.有能够学习到规律的数据
只要满足这三个条件的问题,我们都可以挑选合适的算法去解决。
基于以上的条件,通常我们可以用机器学习解决三类问题:
1.预测(回归):根据已知数据和模型,预测不同客户应该发放的贷款
额度是多少
2.判别(分类):与预测有点类似,也是根据模型判别这个客户属于过
往哪一类客户的概率有多大
3.寻找关键因素:客户的属性非常多,通过模型我们可以找出对放贷影
响最大的因素是什么
三、几种常见的模型和算法
感知机学习算法是一种二分类的线性分类算法,一般用来解决二分类(只存在两个结果)的问题。
例如:判断“一个同学的考试成绩合格还是不合格?”、“银行会不会给某个客户发放贷款?”等。
这种只存正、负两个结果的问题,就称为二分类的问题。
感知机学习算法的原理非常好理解,有点类似考试的概念:
把很多个影响因素看成每道题的得分。因为不同题目的权重不同,所以我们每道题的得分由权重(重要程度)和这个因素的得分相乘,最后把所有题目的得分加起来看看有没有超过60分(阈值)。如果超过了就是及格了(正结果),即对应的输出值为1,如果没有超过就是不及格(负结果),对应的输出值为-1。
还是以刚才银行贷款的例子来解释:
通常银行判断在“给不给某个客户放贷款?”时,都是已经掌握了
客户的各种信息(如:年薪、负债情况、社保缴费、公积金等等)。
因为数据的维度不同,描述的单位也不同,我们需要把这些数据按
照各自维度的标准统一成可以量化的评分——可以按照年薪在
5W以下得1分、5-10W得2分这样的方式进行量化。
每个维度的重要程度都不同,所以我们在相加的时候需要考虑为每
个值加上一个权重,再看看最后得出来的结果有没有高过放款的阈
值评分——如果高过这个分数就放款,低过这个分数就不放款。
首先看看关于感知机的数学定义:
我们可以转换到几何的方式去看这个问题:
在二维空间内,训练的数据就变成了平面上的一个点,这些数据里面有正样本以及负样本(成功放贷款的以及没有放贷款的)。
感知机算法的学习过程就是:找到一个平面(在二维中表现为一条线)——能够把所有的正样本和负样本区分开来。那么,当在应用的时候面对新来的客户,通过模型算出是正结果,我们就可以给这个客户发放贷款;算出来是负结果,我们就不发放贷款。
怎么去找到这条线(超平面)呢?
感知机使用的学习策略是“梯度下降法”。
这种方法的思想是:先在平面内随便找一条线,然后开始把样本点放到平面内。当一个点被误分类——即位于分类超平面错误的一侧时,调整模型的参数(w 和b),使分类超平面向该误分类点的一侧移动,以减少该误分类点与超平面的距离,直到超平面越过该误分类点使其被正确分类为止。
感知机利用梯度下降法的训练过程
这种方式对于模型的训练非常快速,计算量相对较小。
但同时,这样的计算方式追求最大程度正确划分、最小化训练数据的错误,效果类似下图的直线——会导致比较容易造成过拟合的情况,即:模型对于新数据的包容性差,会过度地把新输入数据分成错误的类别。
讲逻辑回归之前,我们先讲讲“什么是线性回归?”。
在统计学中,线性回归是指:利用称为线性回归方程的最小平方函数,对一个或多个自变量和因变量之间关系进行建模的一种回归分析。
举个直观的例子:深圳春运时的客流量可能是与过年的时间相关的
——越接近过年这天人流量越大。
如下图所示:
如果客运站想预测:明天和后天的客流量。
该这么办?
我们可以用一条线去尽量准的拟合这些数据,如果有新的数据输入进来,我们就可以找到对应的预测点:
上述例子就是一个最简单的一元线性回归分析:y=ax+b。
该式子中只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示。在收集的数据中,每一个分量,就可以看做一个特征数据。
例如:上述例子的日期是一个特征,我们还可以找到地区、节假日、
其他车站的客流量等等不同的因素,每个特征至少对应一个未知的
参数。这样就形成了一个线性模型函数。
当特征变多时,上述线性回归的向量表示形式为: