机器学习笔记


线性回归(Linear Regression)

"回归"的由来

Francis Galton,英国生物学家,他研究了父母身高与子女身高之间关系后得出,若父母身高高于平均大众身高,则其子女身高倾向于倒退生长,即会比其父母身高矮一些而更接近于大众平均身高。若父母身高小于平均身高,则其子女身高倾向于向上生长,以更接近于大众平均身高。此现象,被Galton称之为回归现象,即regression.

什么是线性回归?

回归函数的具体解释和定义,可查看任何一本“概率论与数理统计”的书。我看的是“陈希孺”的。
这里我讲几点:
1)统计回归分析的任务,就在于根据 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai和Y的观察值,去估计函数f,寻求变量之间近似的函数关系。
2)我们常用的是,假定f函数的数学形式已知,其中若干个参数未知,要通过自变量和因变量的观察值去估计未知的参数值。这叫“参数回归”。其中应用最广泛的是f为线性函数的假设:
机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai
这种情况叫做“线性回归”。这个线性模型就是我们今后主要讨论的对象。

3)
自变量只有一个时,叫做一元线性回归。f = b0+b1x
自变量有多个时,叫做多元线性回归。   机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai

4)分类(Classification)与回归(Regression)都属于监督学习,他们的区别在于:
分类:用于预测有限的离散值,如是否得了癌症(0,1),或手写数字的判断,是0,1,2,3,4,5,6,7,8还是9等。分类中,预测的可能的结果是有限的,且提前给定的。
回归:用于预测实数值,如给定了房子的面积,地段,和房间数,预测房子的价格。


一元线性回归

举个例子!
我们要预测房价。当前自变量(输入特征)是房子面积x,因变量是房价y.给定了一批训练集数据。
我们要做的是利用手上的训练集数据,得出x与y之间的函数f关系,并用f函数来预测任意面积x对应的房价。

假设x与y是线性关系,则我们可以接着假设一元线性回归函数如下来代表y的预测值:
机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai

我们有训练集了,那么问题就成了如何利用现有的训练集来判定未知参数 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai的值,使其让 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai的值更接近实际值y? 训练集指的是已知x,y值的数据集合!

一种方法是计算它的 成本函数(Cost function),即预测出来的 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai的值与实际值y之间的方差的大小来决定当前的 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai值是否是最优的!

常用的成本函数是最小二乘法:
机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai

机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai是变量 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai的函数,故我们的目标就成了获取使 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai值最小时的 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai的值!!!
下面的图表示,当 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai取各个值时对应的 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai的值,从图中可看出,当 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai分别取特定的某一值时, 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai可达到全局最小值,而对应的 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai的值,就是我们要定位到的最终理想的值!
机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai


那么如何找到理想的 机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai的值?
其中一个办法是,利用微积分里的梯度下降!

梯度下降的概念可查看高等数学下册!

梯度下降算法:(alpha是自定义的,叫learning rate,设得值太大,可能永远无法收敛,设得太小,则收敛会很慢很慢)
循环直到收敛{
机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai
}
对于线性回归模型,成本函数的导数如下: (theta 0 对应的x为常量1)
机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai

一般程序里会写明最多循环次数以及收敛条件(如cost function值小于power(10,-3)时认为成功收敛).若能自动收敛,甚好,若不能,则循环指定次数后,强行退出。此时,你需要调参数alpha或者重新慎视假设模型!

另一种方法是Normal Equation!

直接用矩阵的运算求出最佳的theta值。套现成公式,就能求得theta,此公式的原理,以后再补!

机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai
X是矩阵,代表训练集,每一行是一个样本的各特征值。y是个向量,对应每个样本的结果值。

梯度下降与Normal Equation的对批:
 Gradient Descent Normal Equation
 自定义alpha不需要定义alpha
 盾环N次才能得到最佳theta值不需要任何循环操作
 特征个数非常大时,也适用X的转阵与逆矩阵的计算量很大,
导致特征个数多时,会很慢,适用于
特征个数小于100000时使用
 需要feature scaling 不需要feature scaling

多元线性回归(Linear Regression with Multiple Variables)

跟一元线性回归的参数回归方式如出一辙,唯一区别在回归函数的假设上:
机器学习笔记-线性回归 - phoenixbai@126 - PhoenixBai

多元,故名思义,就是说有多个特征做为输入。那问题就来了,若多个特征的表达值的范围不一样,会有什么影响和后果?比如,继续拿预测房价作为例子。现在它的特征增加了,特征1是面积,特征2是房间数,特征3是房子的年龄。很明显,这三个特征的值的范围是有很大差异的。
特征1:100到300之间
特征2: 2到5之间
特征3:20到60年之间
若不做任何处理,则特征1和3对结果的影响远大于特征2,而可能扭曲了真实情况下,各特征在最终结果中所应占的权重比例。

所以,一般情况下,特征与特征之间的值变化范围差异过大时,我们用 feature scaling的手段来规范化特征值,使每个特征的特征值都处于-1至1之间。

Feature Scaling

feature scaling的方法可自定义,常用的有:
1) mean normalization (or standardization)
  (X - mean(X))/std(X)
2) rescaling
   (X - min) / (max - min)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值