机器学习算法系列(2):线性回归
一.线性回归模型
1.线性回归的概念与思想
- 回归问题的概述
①回归问题:是监督学习的另一个重要领域;用于预测输入变量和输出变量之间的关系,特别是当输入变量发生变化的时候,输出变量随之发生的而变化
②回归模型:表示从输入变量到输出变量之间映射的函数;“线性回归”问题就是要拟合出一个从输入变量到输出变量的线性模型
③问题框架:分为学习和预测两个步骤。学习系统基于给定训练集,训练数据构建一个模型(即为函数);预测系统根据学习模型和输入值确定相应的输出y。
- 线性回归问题建模与表示
- 问题描述:给出由n个属性描述的示例
其中xi是x在第i个属性上的取值,线性回归问题试图学得一个通过属性的线性组合来进行预测的函数 - 模型表示:上述需要的线性函数写作
其中xi表示输入变量的各个特征分量,wi表示对应各特征分量的权重,b是偏置项
在上述x的描述基础上,设
则上述模型还可表示为向量形式
当w和b学得之后,模型就确定了。 - 模型解释:w直观地表达了各个属性在预测中的重要性,线性模型具有很好地可解释性。w中各个特征分量中对应的值的大小就反映了相应的特征分量在问题预测中的重要性。
- 线性回归问题的分类
①输入变量的个数:一元回归与多元回归
②模型的类型:线性回归与非线性回归
二.线性回归优化求解过程
- 目标函数
- 基于上文,线性回归问题的向量表示中参数向量θ是n+1维的(n个特征分量加一个偏置项),每一个参数的取值都是实数集合,也就是说参数向量θ在n+1维的实数空间中取值有无穷种可能。因此,我们需要一种机制来帮助评估参数θ的好坏。
- 直观认为,我们希望通过模型预测得到的值与真实值之间的差距越小越好;损失函数通常采用平方损失函数(后续会讲到回归问题与平方损失函数的适配度)
- 参数估计——调整参数θ使得目标函数最小化的过程
1.最小二乘法
- 基于均方误差最小化来进行模型求解的方法称为“最小二乘法”
- 将m个n维样本组成矩阵X
则目标损失函数的矩阵形式为:
- 最优值推导求解
2.梯度下降法
- 梯度下降法就是按照以下流程进行的优化求解:①首先对θ赋初值,这个值是随机的②改变θ的值,使得J(θ)按照负梯度的方向进行减少
- 偏导数(梯度)求解:这里要注意是对任意一个传进的样本的某一个分量进行偏导数求解,故输入输出变量均没有带下标号
- 参数更新
- 梯度下降法在线性回归中的应用模式
①批量梯度下降法(BGD):每一次更新都要遍历样本集中的所有样本,才能得到新的权重分量
②随机梯度下降法(SGD):每一次更新只用到一个训练样本;一般来说当训练集较大且一直在动态增长的时候,建议使用SGD;且随机梯度下降法能更快地使目标函数达到最小值。
三.线性回归中的数学解释
四.线性回归的其他细节
- 线性回归与特征映射
线性回归模型本质是要建立从特征空间到结果之间的映射关系,上文中讨论的模型中特征空间就是输入x的空间;但在一些场合中,可以先将输入空间映射到特征空间,然后再进行建模。定义映射函数为φ(x),线性回归函数模型可以写成以下更通用的形式:
特征映射的相关技术有:特征哈希、特征学习、Kernel - 线性回归与非线性函数映射
传统的线性回归模型是让模型逼近输出值y,但是我们也可以令模型预测值逼近y的衍生物。如果我们认为示例所对应的输出标记是在指数尺度变化,就可以将输出标记的对数作为线性模型逼近的目标
这样的建模对应的问题就是“对数线性回归”,形式上看是线性回归,但是其实已经是在求解从输入空间到输出空间的非线性函数映射。
这样得到的模型称为广义线性模型
五.参考文档
周志华 《机器学习》
李航 《统计学习方法》
忘记从哪个公众号分享的有关线性回归算法的pdf
***本文系复习ML相关算法时整理留作自用,若有问题欢迎大家指点评论~
六.线性回归相关实现
https://github.com/Square-of-W/ML-CodeLinearRegression.py
LinearRegression_y_x.py