统计学习方法之线性回归法1.线性回归2.损失函数(Cost Function)3.梯度下降4.最小二乘法5.数据归一化6. 模型评估7.参考文献

1.线性回归

  • 回归,统计学术语,表示变量之间的某种数量依存关系,并由此引出回归方程,回归系数。
  • 线性回归(Linear Regression),数理统计中回归分析,用来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
  • 线性回归模型

ε表示误差项,也叫随机干扰项,即真实值和预测值之间的差异。ε服从均值为0的正态分布,其中只有一个自变量的情况称为一元线性回归,多个自变量的情况叫多元线性回归

  • 对模型设定的假设: 回归模型是正确设定的,即模型选择了正确的变量,且选择了正确的函数形式。
  • 对解释变量的假设: 解释变量x是确定性变量,不是随机性变量,在随机抽样中取固定值。
  • 对误差项ε的假设: 误差项ε是一个期望为0,且相互独立的高斯分布。

2.损失函数(Cost Function)

  • 举城市房屋价格为例,假设有一个房屋销售的数据如下: 面积 售价 123 250 150 320 87 160 102 220

房屋面积和售价图

  • 如果来了一个新的面积,假设在销售价钱的记录中没有的,我们怎么办呢? 我们可以用一条曲线去尽量准的拟合这些数据,然后如果有新的输入过来,我们可以在将曲线上这个点对应的值返回。如果用一条直线去拟合,可能是下面的样子:
  • 绿色的点就是我们想要预测的点。 首先给出一些概念和常用的符号,在不同的机器学习书籍中可能有一定的差别。

房屋销售记录表 - 训练集(training set)或者训练数据(training data), 是我们流程中的输入数据,一般称为x 房屋销售价钱 - 输出数据,一般称为y 拟合的函数(或者称为假设或者模型),一般写做 y = h(x) 训练数据的条目数(#training set), 一条训练数据是由一对输入数据和输出数据组成的 输入数据的维度(特征的个数,#features),n

  • 用X1,X2..Xn 去描述feature里面的分量,比如x1=房间的面积,x2=房间的朝向,等等,我们可以做出一个估计函数:
  • 向量的方式来表示:
  • 对于回归问题,常用的用于衡量最优解的代价函数为平方误差。

平方误差的思想就是将实际样本数据值与我们拟合出的线做对应差值,即计算差距

  • 程序需要一个机制去评估我们θ是否比较好,所以说需要对我们做出的h函数进行评估,一般这个函数称为损失函数(loss function)或者错误函数(error function)
  • 要求出theta,使代价最小,即代表我们拟合出来的方程距离真实值最近。前面乘上的1/2是为了在求导的时候,消去系数。
  • 调整θ以使得J(θ)取得最小值有很多方法:梯度下降法、最小二乘法。

3.梯度下降

  • 梯度下降法则是一种最优化算法,它是用迭代的方法求解目标函数得到最优解,是在cost function(成本函数)的基础上,利用梯度迭代求出局部最优解。
  • 梯度下降法是按下面的流程进行的:

1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。 2)改变θ的值,使得J(θ)按梯度下降的方向进行减少,算法的结束将是在θ下降到无法继续下降为止。 3)当然,可能梯度下降的最终点并非是全局最小点,可能是一个局部最小点

  • 用一个例子描述一下梯度减少的过程: 1)对于J(θ)求偏导J

2)更新θi,θi会向着梯度最小的方向进行减少,α表示步长(学习率),也就是每次按照梯度减少的方向变化多少

3)一个很重要的地方值得注意的是,梯度是有方向的,对于一个向量θ,每一维分量θi都可以求出一个梯度的方向,我们就可以找到一个整体的方向,在变化的时候,我们就朝着下降最多的方向进行变化就可以达到一个最小点,不管它是局部的还是全局的。

简洁表示

4.最小二乘法

  • 线性回归过程主要解决的就是如何通过样本来获取最佳的拟合线。最常用的方法便是最小二乘法,它是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配。
  • 推导过程:

5.数据归一化

  • 目的是使数据都缩放到一个范围内,便于使用梯度下降算法
  • 数据归一化有两种: 离差归一化:

Si取最大值-最小值 Z-score归一化:

Si取标准差

6. 模型评估

  • 得到模型参数之后,我们如何评价模型在现实中的表现呢?因为回归直线只是一个近似拟合,有很多点没有落在直线上,那我们如何判定,回归直线的拟合程度?

R^2 (Coefficient of Determination) SST(Sum of Squares for Total) SSR(Sum of Squares for Regression) SSE(Sum of Squares for Error) SST=SSR+SSE

  • 一般常用的判定指标是R^2 (coefficient of determination),又叫判定系数、拟合优度,确定系数,或者决定系数。一元线性回归中的R^2是皮尔逊积矩相关系数(Pearson product moment correlation coefficient或Pearson's r)的平方。
  • SST(Sum of Squares for Total):总偏差平方和是每个实际值y和其总体平均值之差的平方和,描述的是总体的波动情况。例如在上面的实例中,燃油效率是随着重量和其他特征而上下波动的。
  • SSR(Sum of Squares for Regression):回归平方和是每个y对应的预测值f(x)和y的总体平均值之差的平方和,反映了y的总偏差中,由于x和y的线性关系引起的y的变化部分,可以由回归直线来解释。例如上面实例中,重量对燃油效率的影响,就是通过回归直线来解释的。
  • SSE(Sum of Squares for Error):残差平方和描述的是,除了x对y的线性影响之外的其他因素对y变化的作用,是不能由回归直线来解释的。例如上面实例中,我们只是假设重量对燃油效率有影响,但实际上马力、加速度等特征和燃油效率之间也呈现明显的相关性,对燃油效率也有影响,而这些特征对燃油效率的影响,是不能通过我们拟合的“重量和燃油效率的线性回归直线”来解释的。

一元线性回归模型评估

7.参考文献

  • [1].http://www.cnblogs.com/LeftNotEasy/archive/2010/12/05/mathmatic_in_machine_learning_1_regression_and_gradient_descent.html
  • [2].http://www.jianshu.com/p/40e251127025
  • [3].http://www.jianshu.com/p/82c7b3ceff66
  • [4].http://www.jianshu.com/p/c02291ab4c3b

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法与Python学习

搞定机器学习面试,这些是基础

本文尽可能的不涉及到繁杂的数学公式,把面试中常问的模型核心点,用比较通俗易懂但又不是专业性的语言进行描述。希望可以帮助大家在找工作时提纲挈领的复习最核心的内容,...

17900
来自专栏华章科技

浅说深度学习

在机器学习中,我们(1)读取数据,(2)训练模型,(3)使用模型对新数据做预测。训练可以看作是当模型拿到新数据的时候、逐步学习一个的过程。在每一步,模型做出预测...

16220
来自专栏算法channel

2000字总结3种项目和面试中常用的集成学习算法

俗话说,“三个臭皮匠,顶个诸葛亮”,多个比较弱的人若能有一种方法集中利用他们的智慧,也可以达到比较好的效果,这就是集成学习的思想。

8200
来自专栏超智能体

YJango:深度学习入门

\vec{y}= a(W\cdot\vec{x} + {b}),其中\vec{x}是输入向量,\vec{y}是输出向量,\vec{b}是偏移向量,W是权重矩阵,...

613170
来自专栏人工智能LeadAI

BAT机器学习面试1000题系列(第150~279题)

长文~可先收藏再看哟~ 150、在感知机中(Perceptron)的任务顺序是什么?深度学习 DL基础 易 1 随机初始化感知机的权重 2 去到数据集的下一批(...

6.5K120
来自专栏华章科技

机器学习萌新必学的Top10算法

导读:在机器学习领域里,不存在一种万能的算法可以完美解决所有问题,尤其是像预测建模的监督学习里。

9720
来自专栏数据科学与人工智能

【机器学习】聚类算法总结

聚类的目标是使同一类对象的相似度尽可能地小;不同类对象之间的相似度尽可能地大。目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算...

45590
来自专栏SIGAI学习与实践平台

机器学习与深度学习常见面试题(下)

为了帮助参加校园招聘、社招的同学更好的准备面试,SIGAI曾整理出了一些常见的机器学习、深度学习面试题(上篇),获得了小伙伴们的广泛好评,并强烈要求推出下篇的面...

73710
来自专栏人工智能

Python机器学习:通过scikit-learn实现集成算法

在现实生活中,常常采用集体智慧来解决问题。那么在机器学习中,能否将多种机器学习算法组合在一起,使计算出来的结果更好呢?这就是集成算法的思想。集成算法是提高算法准...

294100
来自专栏机器学习算法与Python学习

收藏!机器学习与深度学习面试问题总结.....

38470

扫码关注云+社区

领取腾讯云代金券