线性回归算法梳理——Test1
关于机器学习
概念
监督学习
输入数据被称为训练数据,它们有已知的标签或者结果,比如垃圾邮件/非垃圾邮件或者某段时间的股票价格。模型的参数确定需要通过一个训练的过程,在这个过程中模型将会要求做出预测,当预测不符时,则需要做出修改。常见的监督学习算法包括回归分析和统计分类。
无监督学习
输入数据不带标签或者没有一个已知的结果。通过通过推测输入数据中存在的结构来建立模型。常见的无监督学习算法有聚类。
半监督学习
输入数据由带有标签和不带标签的组成。合适的预测模型虽热已经存在,但是模型在预测的同时还必须能通过发现潜在的结构来组织数据。这类问题包括分类和回归。
强化学习
输入数据作为来自环境的激励提供给模型,且模型必须做出反应。反馈并不像监督学习那样来自训练的过程,而是作为环境的惩罚或者奖赏。例如,系统和机器人控制。算法的例子包括Q学习和时序差分学习。
泛化能力
一个学习算法训练出来一个模型,希望它不仅仅是对已知的数据性能表现良好,对未知的数据也要表现完好,能给出合适的结果。测试集的误差也被称为泛化误差。
在机器学习中,泛化能力的好坏,最直观的表现出来的就是模型的过拟合与欠拟合。
欠拟合:指对训练样本的一般性质尚未学号。
过拟合:学习器吧训练样本学得“太好”了的时候,可能把训练样本自身的特点当做了所有潜在的样本都会具有一般性质,这样就会导致泛化性能下降。
偏差和方差
对于测试样本x,其真实标记为y,数据集中的标记, 机器学习算法输出的标记为
,算法输出的期望值
,则有以下定义:
其中E()代表求期望,有数学推导可知
即总误差可以分解为方差、偏差与噪声之和。
从直观理解的角度上看:
- 偏差刻画了学习算法本身的拟合能力
- 方差刻画了数据集的变动导致学习性能的变化,也就是学习算法的稳定性
- 噪声表明了数据集标记本身的误差
在训练过程中,我们会得到训练集和测试集的总误差,通过这两个参数,我们可以判断出算法的拟合状态。
当出现欠拟合时,偏差高,方差低
当出现过拟合时,方差高,偏差低
线性回归
线性回归是分析一个变量与另一个或多个变量(自变量)之间,关系强度的方法。
线性回归的标志,如名称所暗示的那样,即自变量与结果变量之间的关系是线性的,也就是说变量关系可以连成一条直线。
线性回归损失函数、代价函数、目标函数
损失函数:模型的样本误差,用于度量预测值与真实值的拟合程度,损失函数越小说明模型越好。它是定义在单个样本上的。
代价函数:定义在整个训练集上的,整个样本误差的平均,即,损失函数的平均值。
目标函数:表示误差的损失函数,代价函数,加入了正则惩罚项后得到的最终优化函数。
优化方法(梯度下降法、牛顿法、拟牛顿法)
梯度下降法
通过一步一步迭代,边训练数据,边调整参数,计算偏导,使回归使终是保持梯度下降的,即最优,来得到最小化的损失函数和此时的模型参数值。
牛顿法
在梯度下降原理基础上,优化的二阶收敛,下降过程中采用二次曲面,考虑了每走一步对当前最大角度产生的影响,梯度下降是一阶收敛,一个平面下静态的拟合局部,只考虑了本步静态的最大方向。所以牛顿法比梯度下降法下降要快。
拟牛顿法
在每一步迭代时只要求知道目标函数梯度,通过测量梯度变化构造一个目标函数的模型,使之产生超线性收敛性。不需要二阶层数信息。可以用来解决无约事,约事,和大规模的优化问题。它是解非线性方程组及最优化计算中最有效的方法之一。
线性回归的评估指标
SSE(误差平方和):误差平方和,即(真实值-预测值)的平方和
同样的数据集的情况下,SSE越小,误差越小,模型效果越好
缺点:随着样本增加,SSE必然增加,也就是说,不同的数据集的情况下,SSE比较没有意义
R-square(决定系数):1- 误差平方和/原始真实数据与平均值差方和。综合考虑了预测数据和原始数据的误差以及原始数据的离散程度。消除了原始数据离散程度的影响。
R² 越接近1,表示方程变量对y的解释能力越强,模型对数据拟合越好。
R² 越接近0,表明模型拟合越差。
缺点:数据集的样本越大,R²越大,所以,不同数据集的模型结果比较会有一定的误差
Adjusted R-square:校正决定系数。加入样本数据和特征数据评价指标,消除了样本数据和特征数量的影响。
sklearn参数详解
sklearn 线性回归LinearRegression()参数:
fit_intercept:是否有截据,如果没有则直线过原点。
normalize:是否将数据归一化。
copy_X:默认为True,当为True时,X会被copied,否则X将会被覆写。
n_jobs:默认值为1。计算时使用的核数。
Sklearn 逻辑回归LogisticRegression()参数:
penalty:正则惩罚项,值为L1 L2,默认L2,
random_state:随机种子,设置为0则,保证每次随机生成的数据比例一致
C:正则强度,较小的值指定更强的正则化。默认为1