线性回归算法梳理

1.机器学习的一些概念

有监督:通过已有的训练样本去训练得到一个最优模型,再用这个最优模型去将给定数据转化为相应的输出,来解决相应的问题。

回归:定量输出称为回归,比如根据房屋的地理位置,房屋面积大小,以及房屋周边的配套设施等因素,来预测下给定房屋的价格,这就是典型的回归问题。回归问题往往会通过计算误差(Error)来确定模型的精确性。误差由于训练集和验证集的不同,会被分为训练误差(Training Error)和验证误差(Validation Error)。但值得注意的是,模型并不是误差越小就一定越好,因为如果仅仅基于误差,我们可能会得到一个过拟合(Overfitting)的模型;但是如果不考虑误差,我们可能会得到一个欠拟合(Underfitting)的模型。

分类:定性输出称为分类,根据模型对训练样本进行分类判断,如根据特征判断癌症患者和正常病人,这就是典型的分类问题。分类问题衡量结果精度的有一些相关术语,准确率(Accuracy)、精确率(Precision)和召回率(Recall)。这三个词汇应用于二分类问题:将数据分为正例(Positive Class)和反例(Negative Class),准确率是预测和标签一致的样本在所有样本中所占的比例;精确率是你预测为正类的数据中,有多少确实是正类;召回率是所有正类的数据中,你预测为正类的数据有多少。这三个数据往往用来衡量一个二分类算法的优劣

无监督:输入数据没有标签,让计算机自己学习分类对数据进行建模,找其中的共同点来进行分类。

泛化能力:机器学习算法对新鲜样本的适应能力。学习的目的是学到隐含在数据对背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。

过拟合:为了得到一致假设而使假设变得过度复杂,导致变量数过多,对当前数据情况表现较好,但泛化能力差,在测试集中表现不佳,一般是由于将很多噪声也学习了进去。即方差过高。
解决方法:
(1)增大数据的训练量—–使用更多的数据,噪声点比重减少
(2)减少数据特征—–减小数据维度,高维空间密度小
(3)采用正则化方法
(4)交叉验证方法

欠拟合:模型拟合程度不高,数据距离拟合曲线较远,或指模型没有很好地捕捉到数据特征,不能够很好地拟合数据。
解决方法:
(1)用更多的特征—–增大输入向量的维度
(2)寻找更好的特征项
(3)减少正则化参数

交叉验证:有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。

Hold-Out Method:将原始数据随机分为两组,一组做为训练集,一组做为验证集,利用训练集训练分类器,然后利用验证集验证模型,记录最后的分类准确率为此分类器的性能指标。此种方法的好处的处理简单,只需随机把原始数据分为两组即可,其实严格意义来说Hold-Out Method并不能算是CV,因为这种方法没有达到交叉的思想,由于是随机的将原始数据分组,所以最后验证集分类准确率的高低与原始数据的分组有很大的关系,所以这种方法得到的结果其实并不具有说服性。

K-CV:随机划分全集X分成K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标。K一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2。K-CV可以有效的避免过学习以及欠学习状态的发生,最后得到的结果也比较具有说服性。

  1. 一般来说,k=10的情况使用得最多。
  2. k=2的时候,也就是最简单的k-fold交叉验证,2-fold交叉验证。这个时候XA1A2的并集,首先A1当训练集并且A2当测试集,然后A2当训练集并且A1当测试集。2-fold交叉验证的好处就是训练集和测试集的势都非常大,每个数据要么在训练集中,要么在测试集中。
  3. k=n的时候,也就是n-fold交叉验证。这个时候就是上面所说的留一验证(Leave-one-out Cross Validation)。

综上所述,交叉验证(Cross Validation)的好处是可以从有限的数据中获得尽可能多的有效信息,从而可以从多个角度去学习样本,避免陷入局部的极值。在这个过程中,无论是训练样本还是测试样本都得到了尽可能多的学习。

 

2.线性回归原理

线性回归使用最佳的拟合直线在因变量和一个或多个自变量之间建立一种关系。

 

3.线性回归损失函数、代价函数、目标函数

损失函数:定义在单个样本上的,算的是一个样本的误差。


代价函数:定义在整个训练集上的,是所有m个样本误差综合的平均,也就是损失函数的平均,再除以2便于计算。


目标函数:定义为最终需要优化的函数,等于经验风险+结构风险。即目标函数=损失函数+正则项
参考博客:https://blog.csdn.net/sqc3375177/article/details/79570449

 

4.优化方法

梯度下降法:是一种常用的一阶优化方法,是求解无约束优化问题的经典方法。通过反复迭代,沿目标函数梯度的反方向逼近目标函数的局部最优解(当目标函数为凸函数时,才能得到全局最优)。


牛顿法:常用的二阶优化方法,也是通过反复迭代,求解目标函数的最优解。但是,牛顿法每次迭代需要求解目标函数的Hessian 矩阵的逆矩阵,计算相对复杂。Hessian 矩阵是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。
拟牛顿法:在牛顿法的基础上通过正定矩阵近似Hessian 矩阵的逆矩阵或者Hessian 矩阵,简化了计算过程。

 

5.线性回归的评估指标

和方差、误差平方和(SSE):The sum of squares due to error,

均方误差(MSE):Mean Squared Error,

均方根误差(RMSE):Root Mean Squard Error,MSE开方,将数据化到同一数量级,便于数据分析描述。

R-square:(1)SSR:Sum of squares of the regression,即预测数据与原始数据均值之差的平方和,
(2)SST:Totalsum of squares,即原始数据和均值之差的平方和,

其实“确定系数”是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0 1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好,R^2 越大,说明预测出来的数据可以通过模型的解释性就越强。
 

6.sklearn参数详解

LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1)

参数:
fit_intercept:布尔型,默认为true
是否对训练数据进行中心化。如果该变量为false,则表明输入的数据已经进行了中心化,在下面的过程里不进行中心化处理;否则,对输入的训练数据进行中心化处理。

normalize:布尔型,默认为false
是否对数据进行标准化处理。

copy_X:布尔型,默认为true
是否对X复制,如果选择false,则直接对原数据进行覆盖。(即经过中心化,标准化后,是否把新数据覆盖到原数据上)。

n_jobs:整型, 默认为1
计算时设置的任务个数(number of jobs)。如果选择-1则代表使用所有的CPU。这一参数的对于目标个数>1(n_targets>1)且足够大规模的问题有加速作用。

coef_:数组型变量, 形状为(n_features,)或(n_targets, n_features)。
说明:对于线性回归问题计算得到的feature的系数。如果输入的是多目标问题,则返回一个二维数组(n_targets, n_features);如果是单目标问题,返回一个一维数组(n_features,)。

intercept_ :数组型变量。
说明:线性模型中的独立项。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值