线性回归是一种回归分析技术,回归分析本质上就是一个函数估计的问题(函数估计包括参数估计和非参数估计),就是找出因变量和自变量之间的因果关系。回归分析的因变量是应该是连续变量,若因变量为离散变量,则问题转化为分类问题,回归分析是一个有监督学习问题。

线性其实就是一系列一次特征的线性组合,在二维空间中是一条直线,在三维空间中是一个平面,然后推广到n维空间,可以理解维广义线性吧。

例如对房屋的价格预测,首先提取特征,特征的选取会影响模型的精度,比如房屋的高度与房屋的面积,毫无疑问面积是影响房价的重要因素,二高度基本与房价不相关

下图中挑选了 面积、我是数量、层数、建成时间四个特征,然后选取了一些train Set{x(i) , y(i)}。

有了这些数据之后就是进行训练,下面附一张有监督学习的示意图

Train Set 根据 学习算法得到模型h,对New Data x,直接用模型即可得到预测值y,本例中即可得到房屋大小,其实本质上就是根据历史数据来发现规律,事情总是偏向于向历史发生过次数多的方向发展。

下面就是计算模型了,才去的措施是经验风险最小化,即我们训练模型的宗旨是,模型训练数据上产生结果, 要与实际的y(i)越接近越好(假定x0 =1),定义损失函数J(θ)如下,即我们需要损失函数越小越好,本方法定义的J(θ)在最优化理论中称为凸(Convex)函数,即全局只有一个最优解,然后通过梯度下降算法找到最优解即可,梯度下降的形式已经给出。

梯度下降的具体形式:关于梯度下降的细节,请参阅 梯度下降详解

局部加权回归

有时候样本的波动很明显,可以采用局部加权回归,如下图,红色的线为局部加权回归的结果,蓝色的线为普通的多项式回归的结果。蓝色的线有一些欠拟合了。

局部加权回归的方法如下,首先看线性或多项式回归的损失函数“

很明显,局部加权回归在每一次预测新样本时都会重新确定参数,以达到更好的预测效果。当数据规模比较大的时候计算量很大,学习效率很低。并且局部加权回归也不是一定就是避免underfitting,因为那些波动的样本可能是异常值或者数据噪声。

在求解线性回归的模型时,有两个需要注意的问题

一就是特征组合问题,比如房子的长和宽作为两个特征参与模型的构造,不如把其相乘得到面积然后作为一个特征来进行求解,这样在特征选择上就做了减少维度的工作。

二就是特征归一化(Feature Scaling),这也是许多机器学习模型都需要注意的问题。

有些模型在各个维度进行不均匀伸缩后,最优解与原来不等价,例如SVM。对于这样的模型,除非本来各维数据的分布范围就比较接近,否则必须进行标准化,以免模型参数被分布范围较大或较小的数据dominate。

有些模型在各个维度进行不均匀伸缩后,最优解与原来等价,例如logistic regression。对于这样的模型,是否标准化理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太“扁”,迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的模型,最好也进行数据标准化。

归一化后有两个好处:

1. 提升模型的收敛速度

如下图,x1的取值为0-2000,而x2的取值为1-5,假如只有这两个特征,对其进行优化时,会得到一个窄长的椭圆形,导致在梯度下降时,梯度的方向为垂直等高线的方向而走之字形路线,这样会使迭代很慢,相比之下,右图的迭代就会很快

2.提升模型的精度

归一化的另一好处是提高精度,这在涉及到一些距离计算的算法时效果显著,比如算法要计算欧氏距离,上图中x2的取值范围比较小,涉及到距离计算时其对结果的影响远比x1带来的小,所以这就会造成精度的损失。所以归一化很有必要,他可以让各个特征对结果做出的贡献相同。

下边是常用归一化方法

1). 线性归一化,线性归一化会把输入数据都转换到[0 1]的范围,公式如下

该方法实现对原始数据的等比例缩放,其中Xnorm为归一化后的数据,X为原始数据,Xmax、Xmin分别为原始数据集的最大值和最小值。

2). 0均值标准化,0均值归一化方法将原始数据集归一化为均值为0、方差1的数据集,归一化公式如下:

其中,μ、σ分别为原始数据集的均值和方法。该种归一化方式要求原始数据的分布可以近似为高斯分布,否则归一化的效果会变得很糟糕。

关于归一化方法的选择

1) 在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。

2) 在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。

选择方法是参考自http://blog.csdn.net/zbc1090549839/article/details/44103801,至于为什么,我现在也还不清楚

线性回归,我用java实现的,源码地址 https://github.com/ooon/toylib

参考文献:

http://www.cnblogs.com/LBSer/p/4440590.html

转载于:https://www.cnblogs.com/alan-blog-TsingHua/p/10018864.html

CS229 1 .线性回归与特征归一化(feature scaling)相关推荐

  1. 特征缩放 feature scaling

    样本不同特征的取值范围如果不一样,可能导致迭代很慢,为了减少特征取值的影响,可以对特征数据进行缩放,加速算法的收敛.常见的映射范围有 [0,1][0, 1][0,1] 和 [−1,1][-1, 1][ ...

  2. 特征缩放feature scaling(吴恩达版详解)

    前言 最近在学习吴恩达的深度学习,对于特征缩放的知识点很是困惑,不明白为什么它会加快收敛速度,在网上看大佬们的解答,大佬们也都是给了两个对比图之后就把这个问题带过去了,于是我认认真真,反复看了吴恩达的 ...

  3. 特征放缩(Feature scaling)

    特征放缩的几种方法 1.Min-Max scaling min-max标准化 该方法是最简单的数组放缩方法. 处理类: from sklearn.preprocessing import MinMax ...

  4. 机器学习中的特征缩放(feature scaling)浅谈

    引言 在运用一些机器学习算法的时候不可避免地要对数据进行特征缩放(feature scaling),比如:在随机梯度下降(stochastic gradient descent)算法中,特征缩放有时能 ...

  5. 浅谈机器学习中的特征缩放(feature scaling)

    引言 在运用一些机器学习算法的时候不可避免地要对数据进行特征缩放(feature scaling),比如:在随机梯度下降(stochastic gradient descent)算法中,特征缩放有时能 ...

  6. ML之LiR:利用LiR线性回归算法(自定义目标函数MSE和优化器GD)对Boston房价数据集(两特征+归一化)进行回归预测

    ML之LiR:利用LiR线性回归算法(自定义目标函数MSE和优化器GD)对Boston房价数据集(两特征+归一化)进行回归预测 目录 利用LiR线性回归算法(自定义目标函数MSE和优化器GD)对Bos ...

  7. 【ML05】Feature Scaling 特征缩放

    Feature Scaling Feature Scaling 特征缩放的目的是什么 Feature Scaling Method #3 Dividing by maximum Mean Normal ...

  8. 解读:为什么要做特征归一化/标准化?

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:shine-lee,编辑:极市平台 本文解读了一项数据预处理中的重 ...

  9. 关于你不知道的特征归一化/标准化

    目录 1. Feature scaling 的必要性 2. 常用的Feature scaling方法有什么 3. 什么时候需要feature scaling 4. 什么情况不需要Feature 1. ...

最新文章

  1. LeetCode简单题之设计 Goal 解析器
  2. gitlab+jenkins+maven+docker持续集成(四)——Extended E-mail Notification配置
  3. create-react-app支持antd按需导入
  4. 高等数学:第十章 曲线积分与曲面积分(3)高斯共识、通量、散度、斯托克斯共识、环流量、旋度
  5. BeanFactoryPostProcessor执行时间
  6. 使用setInterval对ajax请求做轮询
  7. 开博第一篇,聊聊 最基本的 “==” 与 “===”区别
  8. java 函数式编程 示例_Java套接字编程–套接字服务器,客户端示例
  9. 活着只是你幸运--512汶川大地震募捐倡议
  10. python处理access数据库教程_Python操作Access数据库基本操作步骤分析
  11. ansible 建 kubernetes 证书签名请求_Kubernetes 两步验证 - 使用 Serverless 实现动态准入控制
  12. 会玩儿!网易云音乐推出“还郑州一个七夕”特别策划
  13. MATLAB各个产品概述----哪些产品需要安装?哪些产品不需要安装?阅完了然
  14. 东北四省赛 Spell Boost
  15. 数据结构与算法(三) 排序算法(代码示例)
  16. 传销——从数学游戏到经济邪教
  17. 演讲实录丨朱频频 让Bots无处不在
  18. 动手写操作系统系列-前言
  19. 企业群发短信时为什么要找短信平台公司而不是直接找运营商发送
  20. 北京定点医疗机构查询

热门文章

  1. 2019年3月未来教育计算机二级题库,2019年3月计算机二Access考试操作模拟试题001...
  2. python装饰器参数讲解_python装饰器的详细解析
  3. virsh 关机_kvm虚拟机不能使用virsh shutdownw命令关闭虚拟机的解决方法
  4. 使用Runnable配合Thread创建线程
  5. c语言 ipc 参数 序列化,浅谈IPC通信之序列化与反序列化(三)
  6. Linux:9个实用shell运维脚本,值得收藏!
  7. MySQL数据库的mysqldump完全备份、binlog的增量备份与还原
  8. android sqlite alert table,android sqlite数据库操作
  9. mysql008where.or.in查询
  10. React 18 带给我们的惊喜