# 前年学习记录的笔记,分享一下~

Linear Models for Regression

目录

一、使用线性回归模型前数据处理及注意

二、线性回归,针对线性数据,通过最小二乘法让损失函数(cost function)最小,求得方程系数,得到方程。

三、多元线性回归求解cost function:正规方程法和梯度下降法

四、标准线性回归的延伸:岭回归和Lasso回归

五、梯度下降法的优化。

六、线性回归中可能遇到的问题及解决办法

七、拓展:偏差与方差


一、使用线性回归模型前数据处理及注意

参考:数据挖掘:模型选择——线性回归_AvenueCyy的博客-CSDN博客_数据挖掘线性回归模型
1、数据的无量纲化:梯度下降法求解时数据间数值大小的差异会影响求解速度,所以为了消除差异的同时保留分布,需对数据进行归一化,标准化。
2、处理分类数据:分类数据之间没有数值大小可言。是人主观赋予的意义,计算机无法识别,因此要对数据进行独热编码。
3、数据分布的转化:如数据的峰度和偏度不满足正态性,则会对结果照成误差。因此需要对数据进行正态性转换。右偏数据采用对数化,左偏数据采用指数化。或者采用Box-Cox变换。
4、缺失值处理:数据的缺失值需要填补。

二、线性回归,针对线性数据,通过最小二乘法让损失函数(cost function)最小,求得方程系数,得到方程。

参考:数据挖掘线性回归 - 百度文库
机器学习的关键因素:
1、模式存在
2、但无法用数学方法确定下来
3、有数据可供学习
拟合:指已知某函数的若干函数离散值,通过调整该函数的若干系数,使得该函数与已知点集的差别最小。

线性回归函数:

损失函数(最小二乘):损失越小,h(x)越接近y(x),即拟合值越接近真实值。

回归系数(权重)不可知,需要不断调整,使损失函数尽可能少。

依据:梯度下降法

梯度:即函数的导数

此时损失函数寻找的是最小值,即梯度的负方向探寻回归系数,该算法称为梯度”下降“法

梯度下降算法-步骤

同理,求损失函数J的最小值:

应用到不止一个训练实例的情况:

批量梯度下降算法:每次更新系数参数都要考虑整个训练集。【线性模型较简单,训练时间优先级不高,推荐使用】

随机梯度下降算法:一次仅用一个样本来更新系数。

线性最小二乘问题的矩阵解法。

最小二乘的概率解释:最小二乘回归相当于寻找最大似然函数的参数值。

局部加权线性回归:

给每个训练样本赋予一个权重w,越靠近待预测点的训练样本,对预测结果的影响越大,训练样本离预测点越近,w趋于1;越远离待预测点的训练样本,对预测结果的影响越小,训练样本离预测点越远,w趋于0。

直观理解:局部加权线性回归在给定预测点时,对其附近的点进行训练得到局部线性模型,并用于预测。

优点:
相比线性回归,特征选择的重要性不那么大;每次预测都要重新学习和计算权值和参数,对数据的自适应能力更强。
缺点:
每次预测都要重新学习和计算权值和参数,计算量大。

三、多元线性回归求解cost function:正规方程法和梯度下降法

参考:数据挖掘:模型选择——线性回归_AvenueCyy的博客-CSDN博客_数据挖掘线性回归模型
在梯度下降法迭代次数一定时,正规方程法和梯度下降法结果差不多。
优缺点比较:
梯度下降法 - 优点:当特征点很多时运行也很好。
缺点:需要选择学习速率;需要许多次迭代。
正规方程法 - 优点:不需要选择学习速率;不需要迭代。
缺点:需要计算(X^TX)^(-1)(n*n)矩阵;如果样本点很大将会计算很慢。
假设有n个变量,X的转置与X的乘积的维度为NN,其中N表示特征变量的数量,对大多数的计算应用来说,实现逆矩阵的代价,以矩阵维度的三次方增长,因此计算这个逆矩阵的代价,大概是N的三次方时间,所以如果特征变量的数量N很大的话,计算会很慢。即,
n < 10^4:正规方程法
n > 10^4:梯度下降法
(n大小参考自:梯度下降法与正规方程法_符景名的博客-CSDN博客_正规方程和梯度下降)

正规方程法(最小二乘):

多元线性回归:

矩阵形式:

对矩阵求偏导:[ OS: RSS,数学名词,是数和的平方根]

由此得到参数的解,但其中的逆矩阵不一定存在解,即可能存在多重共线性(特征间线性相关程度很大),因此加入L1,L2正则化来进行控制。

梯度下降法:

判别函数:

cost function:,1/m即求均值。

梯度下降法:

得,

【详细了解可参考:梯度下降算法详解】

四、标准线性回归的延伸:岭回归和Lasso回归

参考:数据挖掘:模型选择——线性回归_AvenueCyy的博客-CSDN博客_数据挖掘线性回归模型
用于解决线性回归出现的过拟合问题和通过正规方程求解过程中出现的X转置乘以X不可能逆两类问题。
正规方程矩阵解法(最小二乘):
1)岭回归:
原理:通过缩减系数来“理解”数据。
总结:
  • 解决特征数量比样本量多的问题
  • 作为降维算法可以判断哪些特征重要哪些不重要,类似于降维的效果。
  • 缩减算法可以看作是对一个模型增加偏差的同时减少方差。
应用:
  • 数据点少于变量个数
  • 变量间存在共线性(最小二乘回归得到的系数不稳定,方差大)
在原损失函数后加上L2正则化的最小二乘,此时损失函数为:
对参数求偏导求解得参数,
其中,
当存在高度相关关系的矩阵时,可以通过调大alpha,从而使矩阵行列式变大,从而使逆矩阵变小,以此控制参数向量的偏移。当alpha越大,模型越不容易收到共线性的影响。
注意:当alpha越大,会导致参数的估计的出现较大的偏移,无法正确拟合数据的真实面貌,原来参数的可解释性变差。
当alpha越小,则会出现原来的多重共线性现象,影响预测结果。
2)Lasso回归:
原理:拉格朗日乘数法。对于参数theta增加一个限定条件,能达到和岭回归一样的效果,,当lambda足够小时,一些系数迫降到0,从而进行特征选择。
在原损失函数后加上L1正则化,来避免多重共线性:
对参数求偏导,假设矩阵的逆一定存在求解得,
通过增加alpha,我们可以为参数theta的计算增加一个负项,从而限制参数估计中theta的大小,从而防止由多重共线性引起的参数theta被估计过大导致模型失准的问题。即Lasso不是从根本上解决多重共线性的问题,而是限制多重共线性带来的影响。
Lasso回归求解参数时,又出现逆矩阵不存在的情况,所以,Lasso不能解决由于特征间高度相关带来的逆矩阵不存在的情况,而岭回归可以解决特征间的精确相关关系导致的最小二乘法无法使用的问题。
cost function:
ridge回归:
Lasso回归:
lambda为正则化参数,如果lambda选取过大,会把所有参数theta均最小化,造成欠拟合;如果lambda选取过小,会导致过拟合问题解决不当。因此lambda的选取是个技术活。
岭回归和Lasso回归特点及区别:
1、L1和L2都会压缩系数theta的大小,对标签值贡献少的特征,其系数也会很小,也更容易被压缩。不过,L2正则化只会将系数压缩到尽可能接近0,能有效地防止模型过拟合,解决非满秩下求逆困难的问题。而L1正则化最大的特点是稀疏矩阵,主导稀疏性,因此会将系数压缩到0,因此可以用L1正则化进行特征选择,将对标签值贡献值小少的特征剔除。
2、岭回归引入的是L2正则化;Lasso回归引入的是L1正则化。
3、Lasso回归能进行特征选择;岭回归不能进行特征选择。
4、从贝叶斯的角度看,Lasso(L1正则)等价于参数theta的先验概率分布满足拉普拉斯分布;而ridge(L2正则)等驾驭参数theta的先验概率分布满足高斯分布。
5、Lasso回归是1范式;ridge回归是2范式。

五、梯度下降法的优化。

参考:机器学习总结(一):线性回归、岭回归、Lasso回归_扇扇来驰的博客-CSDN博客_lasso回归
  • 特征缩放
  • 学习速率的选取可考虑:0.01 -> 0.03 -> 0.1 -> 0.3 -> 1 -> 3(重复alpha1=alpha0*3; alpha2=alpha1/3*10)

六、线性回归中可能遇到的问题及解决办法

问题1:特征缩放
对特征数据进行归一化
优点:提升模型收敛速度;提升模型精度。
问题2:梯度下降法学习速率的选取
参考:梯度下降学习速率的选择和存在的问题_UESTC_C2_403的博客-CSDN博客

如果学习速率选取过小,会导致迭代次数变多,收敛速度变慢;学习速率选取过大,有可能跳过最优解,最终导致根本无法收敛。

在计算时要同时更新,使用梯度下降法容易得到局部最优解,要尝试不同的学习速率,然后找到最好的那个。

1、采用固定的学习速率,会存在上面问题。

2、采用变换的学习速率,也就是当梯度大时,学习速率也大,当梯度小时,学习速率也小。学习速率采用与梯度正相关关系,存在一个比例系数,采用固定的这个比例系数。得到的结果是,

采用这个算法对上面的问题有一定的缓解作用,但有时解决也不是很好。

[OS:参考:梯度下降法中的参数学习速率如何选择_zrh_CSDN的博客-CSDN博客]

3、采用变换的学习速率还是会存在上述问题,所以后面很多算法采用比例系数也变化的方法。

4、设置0.1或0.1附近时效果一般不会太差。

问题3:过拟合

解决方法:1、丢弃一些对最终预测结果影响不大的特征,可采用PCA算法实现。

2、使用正则化技术,保留所有特征,减少特征前面的参数theta的大小,即修改cost function形式(Ridge Regression、Lasso Regression)

七、拓展:偏差与方差

参考:岭回归和Lasso回归_Joker_sir5的博客-CSDN博客_岭回归和lasso回归

模型误差 = 偏差(Bias) + 方差(Variance) + 数据本身的误差(无法避免)

偏差:导致偏差的原因有很多种。其中一个就是针对非线性问题采用线性方法求解,当模型欠拟合时,就会出现较大偏差。

方差:产生高方差的原因通常是由于模型过于复杂,即模型过拟合,会出现较大的方差。

通常情况下,我们降低了偏差相应地会使方差提高,降低方差就会相应地提高偏差。

还有一种对岭回归和Lasso回归折中的方法——弹性网络(Elastic net)

机器学习(一)- 线性回归/(拟合)模型相关推荐

  1. 机器学习算法——线性回归的详细介绍 及 利用sklearn包实现线性回归模型

    目录 1.线性回归简介 1.1 线性回归应用场景 1.2 什么是线性回归 1.2.1 定义与公式 1.2.2 线性回归的特征与目标的关系分析 2.线性回归api初步使用 2.1 线性回归API 2.2 ...

  2. ML之回归预测:利用十类机器学习算法(线性回归、kNN、SVM、决策树、随机森林、极端随机树、SGD、提升树、LightGBM、XGBoost)对波士顿数据集回归预测(模型评估、推理并导到csv)

    ML之回归预测:利用十类机器学习算法(线性回归.kNN.SVM.决策树.随机森林.极端随机树.SGD.提升树.LightGBM.XGBoost)对波士顿数据集[13+1,506]回归预测(模型评估.推 ...

  3. python多元线性回归实例_Python机器学习多元线性回归模型 | kTWO-个人博客

    前言 在上一篇文章<机器学习简单线性回归模型>中我们讲解分析了Python机器学习中单输入的线性回归模型,但是在实际生活中,我们遇到的问题都是多个条件决定的问题,在机器学习中我们称之为多元 ...

  4. python机器学习:线性回归_房价和房屋尺寸关系的线性拟合

    # 线性回归(Linear Regression)是利用数理统计中回归分析, # 来确定两种或两种以上变量间相互依赖的定量关系的一种统计分 # 析方法 # 使用算法:线性回归 # 实现步骤: # 1. ...

  5. opencv机器学习线性回归_全面讲解手推实战机器学习之线性回归

    点击上方"蓝字",发现更多精彩. 这个主题是讲解机器学习,会全面的讲解理论,知识干货.学了理论不会实践怎么办?调了包不懂实现?每个算法都会配备实践,手推和简单实现,让你知其然,还要 ...

  6. matlab 多元多项式回归_Python机器学习之?线性回归入门(二)

    线性回归原理介绍 文章目录 机器学习分类 线性回归原理 线性回归定义 线性回归背后矩阵运算 机器学习分类 机器学习的主要任务便是聚焦于两个问题:分类和回归 分类相信大家都不会陌生,生活中会见到很多的应 ...

  7. 【机器学习】线性回归之梯度下降、多元线性回归概述

    线性回归是一种监督学习方法.  对每个样本来说: Hypothesis: 即: 其中, 为预测值, 为样本的第i个特征,且:  为该特征下的权重,bias偏差.线性回归就是要在已有的样本特征和标签下学 ...

  8. opencv机器学习线性回归_Python机器学习之?线性回归入门(二)

    线性回归原理介绍 文章目录 机器学习分类 线性回归原理 线性回归定义 线性回归背后矩阵运算 机器学习分类 机器学习的主要任务便是聚焦于两个问题:分类和回归 分类相信大家都不会陌生,生活中会见到很多的应 ...

  9. 机器学习(线性回归实训)------波士顿房价

    1.机器学习 机器学习是人工智能 (AI) 和计算机科学的分支,专注于使用数据和算法来模仿人类学习的方式,逐渐提高其准确性.机器学习是不断成长的数据科学领域的重要组成部分. 通过使用统计方法,对算法进 ...

  10. 机器学习之线性回归_通过线性回归开始机器学习之旅

    机器学习之线性回归 线性回归 (Linear Regression) Linear regression is a part of Statistics that defines the relati ...

最新文章

  1. 在CentOS 6.9 x86_64上安装nginx 1.12.2
  2. Windows Sockets错误标识及对应解释
  3. 信息系统项目管理师:第9章:项目人力资源管理-章节重点
  4. PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性
  5. Java中的Set对象去重
  6. vue create()获取ref_vue-next+typescript 初体验
  7. mongotemplate.insert 是否成功判断_河北外观专利申请成功的必要条件
  8. sis地址发布器_Go 1.15 正式发布:看看都有哪些值得关注的变化
  9. 会汇编语言学c语言好学吗,只有C语言功底的我学习汇编语言可以吗?
  10. 2023最新!QQ接入ChatGpt!!!保姆级教程
  11. activiti启动流程的过程中BUSSINESS_KEY没有获取到key
  12. 图书馆信息管理系统文档
  13. CSS_css sprite原理优缺点及使用
  14. 微软小冰:全双工语音对话详解
  15. maven 排除配置文件打包_maven 打包排除配置文件
  16. Ubuntu 18.04 LTS \n \l 配置网卡IP
  17. c++ http服务器之Apache工具ab压力测试(nginx与brpc)
  18. C++内存泄漏排查以及几个工具
  19. DIR染料标记外泌体鼠体实验
  20. 抓取七星彩历史开奖数java据,七星彩中五个号

热门文章

  1. 关于电脑的CPU讲解(一)
  2. 读书笔记-第五项修炼
  3. 动态设置echarts Y轴最大刻度与最小刻度
  4. PMP每日一练 | 考试不迷路-4.28
  5. 全球19级谷歌卫星地图免费查看下载
  6. one + two = 3 C语言
  7. b2b平台的兴起,让经销商们怎么办?
  8. 软件开发工程师的“三六九等”
  9. 没工作经验新入职包装经验_我是如何从0设计经验转变为在12个月内从事全职工作的(重新发布)...
  10. 均值与期望:傻傻分不清?