目录
线性回归
一元线性回归
一元线性回归拟合
过程:
编辑
优化:
多元线性回归
过程:
多项式回归
一元多项式回归
过程
交叉验证法
简单交叉验证
K折叠法
过拟合
特征缩放
数据归一化
min-max标准化
z-score标准化(标准差标准化)--常见
参考
文章来源地址https://uudwc.com/A/AAkX4
线性回归
线性回归,顾名思义,就是回归问题,既然是回归问题,那必然是监督学习,回归问题就是用于输入变量和输出变量之间的关系,特别当输入值发生变化时,输出值也会发生变化。回归模型正是表示从输入变量到输出变量之间映射的函数,回归问题的学习等价于函数拟合︰选择一条函数曲线使其很好地拟合已知数据且很好地预测未知数据。
一元线性回归
如果研究的线性函数只包含一个自变量和一个因变量,且二者的关系可以用一条直线刻画时,这种回归就是一元线性回归一。如果涉及两个以上的自变量,且是线性关系,就称为多元线性回归
- 被预测的变量是因变量,即输出
- 用来进行预测的变量是自变量,即输入
- 一元线性回归包括一个自变量,一个因变量
- 如果是多元线性回归,那就有多个自变量
一元线性回归拟合
过程:
优化:
使用梯度下降的调优
- 算法的步长选择。在前面的算法描述中,我提到取步长为1,但是实际上取值取决于数据样本,可以多取一些值,从大到小,分别运行算法,看看迭代效果如果损失函数在变小,说明取值有效,否则要增大步长。前面说了。步长太大会导致迭代过快,甚至有可能错过最优解。步长太小,迭代速度太慢,很长时间算法都不能结束。所以算法的步长需要多次运行后才能得到一个较为优的值。
- 算法参数的初始值选择。初始值不同,获得的最小值也有可能不同,因此梯度下降求得的只是局部最小值;当然如果损失函数是凸函数则一定是最优解。由于有局部最优解的风险,需要多次用不同初始值运行算法,关键损失函数的最小值,选择损失函数最小化的初值。
- 归一化。由于样本不同特征的取值范围不一样,可能导致迭代很慢,为了减少特征取值的影响,可以对特征数据归一化,也就是对于每个特征x,求出它的期望x 和标准差std(x),然后转化为:
这样特征的新期望为0,新方差为1,迭代速度可以大大加快。
多元线性回归
过程:
多项式回归
一元多项式回归
过程
交叉验证法
交叉验证是在机器学习建立模型和验证模型参数时常用的办法。交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。
交叉验证用在数据不是很充足的时候。比如在我日常项目里面,对于普通适中问题,如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型如果样本大于一万条的话,我们一般随机的把数据分成三份,一份为训练集(Training Set) ,一份为验证集(Validation Set),最后一份为测试集〈Test Set)。用训练集来训练模型,用验证集来评估模型预测的好坏和选择模型及其对应的参数。把最终得到的模型再用于测试集,最终决定使用哪个模型以及对应参数。
交叉验证的主要作用:
模型选择
模型评估
模型选择与模型评估的关系:
两种用途在本质上是一致的,模型评估可以看成是模型选择过程中的一个步骤:先对候选的每个模型进行评估,再选出评估表现最好的模型作为最终模型。
交叉验证的核心思想在于对数据集进行多次划分,对多次评估的结果取平均,从而消除单次划分时数据划分得不平衡而造成的不良影响。因为这种不良影响在小规模数据集上更容易出现,所以交叉验证方法在小规模数据集上更能体现出优势
交叉验证优缺点:
优点:获得对模型更合理更准确的评估,尤其是数据集很小时,更能体现出这个优势。
缺点:增加了计算量
简单交叉验证
步骤:
- 从全部的训练数据S中随机选择中随机选择s的样例作为训练集 train,剩余的作为测试集作为测试集test。
- 通过对测试集训练,得到假设函数或者模型。
- 在测试集对每一个样本根据假设函数或者模型,得到训练集的类标,求出分类正确率
- 选择具有最大分类正确率的模型或者假设
这种方法称为hold -out cross validation或者称为简单交叉验证。由于测试集和训练集是分开的,就避免了过拟合的现象
K折叠法
步骤:、
1. 将全部训练集S分成 k个不相交的子集,假设S中的训练样例个数为 m,那么每一个子集有 个训练样例,相应的子集称作{
}
2. 每次从分好的子集中里面,拿出一个作为测试集,其它k-1个作为训练集
3. 根据训练训练出模型或者假设函数
4. 把这个模型放到测试集上,得到分类率
5. 计算k次求得的分类率的平均值,作为该模型或者假设函数的真实分类率。这个方法充分利用了所有样本。但计算比较繁琐,需要训练k次,测试k次
一般k=10,是一个经验数
过拟合
拟合过度
防止过度拟合的方法;
- 交叉验证
- 正则化
当用交叉验证进行模型选择时,可以从多种模型中选择出泛化能力最好的(即最不容易发生过拟合)的模型。从这个角度上讲,交叉验证是避免发生过拟合的手段。同样是解决过拟合的方法,交叉验证与正则化不同:交叉验证通过寻找最佳模型的方式来解决过拟合;而正则化则是通过约束参数的范数来解决过拟合。当用交叉验证进行模型评估时,交叉验证不能解决过拟合问题,只能用来评估模型的performance。
正则化代价函数:
代码参照:
代码00https://www.csdn.net/tags/MtTaAgwsODY4MjYtYmxvZwO0O0OO0O0O.html
代码01https://zhuanlan.zhihu.com/p/487653787
特征缩放
可用于x_date的区间很小,y_date区间很大的情况
数据归一化
概率模型(树形模型)不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、RF。而像Adaboost(机器学习之自适增强)、SVM(二分类模型)、LR(逻辑回归模型)、Knn(分类算法)、KMeans之类的最优化问题就需要归一化。
min-max标准化
适用场景:数值比较集中的情况
缺点:
- 如果min和 max不稳定,很容易导致归一化结果不稳定,使得后续使用兄啊过也不稳定。实际上经常用经验来代替min和max
z-score标准化(标准差标准化)--常见
适用场景:
最大值,最小值未知或是有超出取值范围的离散数据的情况
z-score标准化得到的结果是所有数据都聚在0附近,方差为1
参考
机器学习---之损失函数求最小值为什么不用导数为0的点而用梯度下降法_zxyhhjs2017的博客-CSDN博客_损失函数最小值
线性回归,损失的定义,损失函数与优化方法,用统计学习方法来理解线性回归、损失函数和优化方法,Sklearn使用方法_JJH的创世纪的博客-CSDN博客_sklearn线性回归损失函数
梯度下降(Gradient Descent)小结 - 刘建平Pinard - 博客园 (cnblogs.com)
(1条消息) 交叉验证法总结_CYJ_fightman的博客-CSDN博客_交叉验证法
(1条消息) 交叉验证的几个方法的解释(简单交叉验证、k折交叉验证、留一法)_ArthuratHK的博客-CSDN博客_简单交叉验证
(1条消息) 交叉验证(Cross Validation)_SongGu1996的博客-CSDN博客_交叉验证
k交叉验证详解 - 你的雷哥 - 博客园 (cnblogs.com)文章来源:https://uudwc.com/A/AAkX4