1.线性回归算法梳理

1

**有监督:**有老师的学习,所谓的老师就是标签。有监督的过程为先通过已知的训练样本(已知输入和对应的输出)来训练,从而得到一个最优模型,再将这个模型应用在新的数据上,映射为输出结果。经历这个过程后,模型具有了预知能力。

**无监督:**无监督相比于有监督,没有训练的过程,而是直接拿数据进行建模分析,也就是没有老师告诉你对错,全靠自己探索。

**泛化能力:**是指一个机器学习算法对于没有见过的样本的识别能力。我们也叫做举一反三的能力,或者叫做学以致用的能力。

**过拟合:**学习器把训练样本学得太好了,很可能把自己的一些特点当作所有潜在样本所具有的一般性质,导致泛化性能下降,通用由于学习能力过于强大。

**欠拟合:**指对训练样本的一般性质没有学习好,通常由于学习能力不足造成的。

**偏差:**偏差度量了学习算法的期望预测与真实结果的偏离程度, 即刻画了学习算法本身的拟合能力 .
在这里插入图片描述
**方差:**方差度量了训练集的变动所导致的学习性能的变化, 即刻画了数据扰动所造成的影响 .在这里插入图片描述
**算法期望泛化误差:**偏差方差分解为:
在这里插入图片描述
说明泛化性能由学习算法的能力,数据的充分性,学习任务的本身难度所决定。
为了得到好的泛化性能,需使方差小(数据扰动产生的影响小),偏差小(充分拟合数据)。但是存在冲突也就是偏差-方差窘境。

**交叉验证:**交叉验证的基本想法是重复地使用数据,把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择.
简单交叉验证方法是:首先随机地将已给数据分为两部分,1部分作为训练集,另一部分作为测试集(例如, 70%的数据为训练集, 30%的数据为测试集);然后用训练集在各种条件下(例如,不同的参数个数)训练模型,从而得到不同的模型;在测试集上评价各个模型的测试误差,选出测试误差最小的模型。
应用最多的是S折交叉验证,方法如下:首先随机地将已给数据切分为S个互不相交的大小相同的子集;然后利用S-1个子集的数据训练模型,利用余下的子集测试模型;将这-过程对可能的S种选择重复进行;最后选出S次评测中平均测试误差最小的模型。
S折交叉验证的特殊情形是S=N,称为留-交叉验证,往往在数据缺乏的情况下使用。这里,N是给定数据集的容量。

2

**线性回归:**试图学习一个线性模型以尽可能准确地预测实值输出标记。一般预测函数写为f(x)=w^T·x+b。均方误差是回归任务中最常用的性能度量,试图均方误差最小化。求解过程一般称为线性回归模型的最小二乘参数估计。一般情况下,样本由d个属性描述,我们试图学得此时的回归模型叫做多元线性回归模型。求解过程如下:
在这里插入图片描述
对参数求导得到:
在这里插入图片描述
令上式为零可得参数的最优闭式解。由此得出线性回归模型。

3

**损失函数:**单个样本的误差

**代价函数:**损失函数的平均(让代价函数最小),用得较多的是均方误差:

在这里插入图片描述
**目标函数:**需要优化的函数,等于经验风险+结构化风险(正则化项)
在这里插入图片描述

4

**梯度下降法:**梯度下降法是最早最简单,也是最为常用的最优化方法。梯度下降法实现简单,当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。
对损失函数求导:
在这里插入图片描述
按梯度负方向来更新得到最优参数:
在这里插入图片描述
牛顿法:  首先,选择一个接近函数 f (x)零点的 x0,计算相应的 f (x0) 和切线斜率f ’ (x0)(这里f ’ 表示函数 f 的导数)。然后我们计算穿过点(x0, f (x0)) 并且斜率为f '(x0)的直线和 x 轴的交点的x坐标,也就是求如下方程的解:
在这里插入图片描述
  我们将新求得的点的 x 坐标命名为x1,通常x1会比x0更接近方程f (x) = 0的解。因此我们现在可以利用x1开始下一轮迭代。
  在这里插入图片描述
  已经证明,如果f ’ 是连续的,并且待求的零点x是孤立的,那么在零点x周围存在一个区域,只要初始值x0位于这个邻近区域内,那么牛顿法必定收敛。 并且,如果f ’ (x)不为0, 那么牛顿法将具有平方收敛的性能. 粗略的说,这意味着每迭代一次,牛顿法结果的有效数字将增加一倍。
  由于牛顿法是基于当前位置的切线来确定下一次的位置,所以牛顿法又被很形象地称为是"切线法"。

5

线性回归评价指标:
**均方误差:
**在这里插入图片描述
均方根误差:
在这里插入图片描述
平均绝对误差:
在这里插入图片描述

6

线性回归的模型参数:
sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)

参数解释:

fit_intercept: 参数只可设置为True或False, 默认为True. 就是是否要为此模型计算截距(即b). 如果设置为False, 那么就默认b=0(也就是说默认数据集已经中心化过了,即过原点,无需b)

normalize :参数只可设置为True或False, 默认为False.当 fit_intercept=False的时候,这个参数会被自动忽略.如果设置为True, 数据集X会在模型调试前自动正则化. 即X = (X - X均值) / l2范数. 如果你希望标准化数据集, 那么在使用估计器(并将估计器normalize参数设置为False)前使用sklearn.preprocessing.StandardScaler这个函数.

copy_X : 参数只可设置为True或False, 默认为True. 如果为True, 数据集X将会被复制,估计器在运行的时候使用X的副本,并不会直接在原始数据上进行修改.若为False, 原始数据会被覆盖.

n_jobs: int型数值 或者 None , 默认为None.意思是程序运行的时候使用几个CPU的核.只有当问题足够大并且n_targets > 1 (个人认为这个应该是n_jobs>1)的时候,这个才能起到加速作用. 除非是在joblib.parallel_backend 的环境下,否则None意味着只使用一个核进行计算. -1 意味着使用所有CPU核进行计算.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值