线性回归算法的梳理
Part1:基本概念
有监督、无监督、泛化能力、过拟合和欠拟合(方差和偏差以及各自解决办法)、交叉验证
监督学习:(输入数据有标签)
输入数据有标签,且是独立同分布的。对训练数据进行训练,得到模型,有监督是知道输入对应的输出是什么。
无监督学习:(输入数据无标签)
训练数据未进行标记,自动对输入的数据进行分类或分群。(只为算法提供了输入变量X而没有对应的输出变量)
泛化能力:学习方法学到的模型对未知数据的预测能力。
---------评价角度:测试误差(依赖于测试数据集)、泛化误差
若一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差,那么此方法就更有效
过拟合:学习时选择的模型所包含参数过多,导致此模型对已知数据预测地很好,但对未知数据预测地很差。即模型复杂度比实际问题高。
解决办法:
(1)再次进行数据清洗
(2)增加训练数据
(3)考虑使用更少的特征组合
(4)正则化:损失函数引入正则项
(5)dropout:网络训练时的一种技巧,通过修改神经网络本身实现。
欠拟合:模型复杂度低,不能够很好地捕捉数据特征,不能够很好地拟合数据。
解决办法:
(1)损失函数减少正则化参数;
(2)添加新的特征项。
偏差–准确性
方差–稳定性
(欠拟合)当模型参数个数少时,偏离拟合远-----偏差大
(过拟合)当模型参数个数多时,参数越多,模型越不通用,到验证集,部分数据可能符合,部分数据可能不符合-----------------------------------------------方差大
交叉验证:重复地使用数据,切分给定的数据,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。分简单交叉验证、S折交叉验证、留一交叉验证。
Part2:进一步介绍
1、线性回归原理:
据训练数据集训练一个线性模型,输入新数据,对其输出进行预测
2、线性回归的损失函数、代价函数、目标函数
损失函数、代价函数是同一个东西
求损失最小时,损失函数即为目标函数;目标函数可以是损失函数,也可以是损失函数的变体(损失函数+修正项)。
回归问题常用损失函数为平方损失函数-----------最小二乘
最小二乘:基于均方误差(平方损失)最小化来进行模型求解。试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。
j:训练样本个数
真实值:
预测值:
假设独立同分布,且误差服从均值为0,方差为的正态分布,代价函数为:
此时,需要进行优化(使得代价函数尽可能小)的目标函数为:
利用最小二乘进行损失函数最小化推导:
3、优化方法:梯度下降、牛顿法、拟牛顿法
(1)梯度下降:----线性回归
为了使得代价函数最小而提出,先赋给参数向量一个初始值(如,零向量),不断更新参数向量的值以降低代价函数值,梯度下降表现为,每次是往最陡下降方向(偏导方向)走,即将值更新为减去的偏微分,即:
分:批量梯度下降、随机/增量梯度下降
批量梯度下降:每次迭代遍历整个训练集合
随机/增量梯度下降:每次迭代j从1迭代到m,且每次迭代内部会用类似梯度下降方式更新参数值,算法结束时只会用到j个样本。优劣:小规模时更快,但不能精确地收敛到全局最小值。
(2)牛顿法:----求解无约束最优化问题
对其极大似然估计进行拟合,使对数似然率最大化。
设有一函数,找寻使得的值。首先初始化,计算在这点函数的导数,做线性逼近,作切线,延长至水平轴,交点设为,与之间距离称之为。
特点:迭代算法,每步需求解目标函数的海赛矩阵的逆矩阵,计算较复杂
(3)拟牛顿法:----求解无约束最优化问题
用一个 n 阶矩阵
特点:通过正定矩阵近似海赛矩阵的逆矩阵或海赛矩阵,简化了计算过程
4、线性回归评估指标
(MSE)均方误差(Mean Square Error):------最常用
(RMSE)均方根误差(Root Mean Square Error):
(MAE)平方绝对误差(Mean Absolute Error):
5、sklearn参数详解
fit:从训练集中学习模型参数(如:均值、偏差)
transform:对数据进行模型变换
fit_transform:组合参数学习和模型变换
sklearn.preprocessing:数据预处理工具
LabelEncoder:将字符串类型数据转换成数值类型数据