【Task1】 线性回归算法梳理

1、机器学习的一些概念

有监督:是一个机器学习中的方法,可以由训练资料中学到或建立一个模式( learning model),并依此模式推测新的实例。训练资料是由输入物件(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。一个监督式学习者的任务在观察完一些训练范例(输入和预期输出)后,去预测这个函数对任何可能出现的输入的值的输出。监督式学习有两种形态的模型。最一般的,监督式学习产生一个全域模型,会将输入物件对应到预期输出。而另一种,则是将这种对应实作在一个区域模型。(如案例推论及最近邻居法)。为了解决一个给定的监督式学习的问题(手写辨识),必须考虑以下步骤:

1)决定训练资料的范例的形态。在做其它事前,工程师应决定要使用哪种资料为范例。譬如,可能是一个手写字符,或一整个手写的词汇,或一行手写文字。

2)搜集训练资料。这资料须要具有真实世界的特征。所以,可以由人类专家或(机器或传感器的)测量中得到输入物件和其相对应输出。

3)决定学习函数的输入特征的表示法。学习函数的准确度与输入的物件如何表示是有很大的关联度。传统上,输入的物件会被转成一个特征向量,包含了许多关于描述物件的特征。因为维数灾难的关系,特征的个数不宜太多,但也要足够大,才能准确的预测输出。

4)决定要学习的函数和其对应的学习算法所使用的数据结构。譬如,工程师可能选择人工神经网络和决策树。

5)完成设计。工程师接着在搜集到的资料上跑学习算法。可以借由将资料跑在资料的子集(称为验证集)或交叉验证(cross-validation)上来调整学习算法的参数。参数调整后,算法可以运行在不同于训练集的测试集上。

目前最广泛被使用的分类器有人工神经网络、支持向量机、最近邻居法、高斯混合模型、朴素贝叶斯方法、决策树和径向基函数分类。

无监督:是人工智能网络的一种算法(algorithm),其目的是去对原始资料进行分类,以便了解资料内部结构。有别于监督式学习网络,无监督式学习网络在学习时并不知道其分类结果是否正确,亦即没有受到监督式增强(告诉它何种学习是正确的)。其特点是仅对此种网络提供输入范例,而它会自动从这些范例中找出其潜在类别规则。当学习完毕并经测试后,也可以将之应用到新的案例上。无监督学习里典型的例子就是聚类了。

泛化能力:是指一个机器学习算法对于没有见过的样本的识别能力。我们也叫做举一反三的能力,或者叫做学以致用的能力。我们训练一个机器学习算法也是如此,通过感性的告诉机器一个加上一个等于两个,之后算法通过自己的学习,推广计算多位数的加减法,多位数的加减法是无穷多个的,如果机器在不断的测试中都能够算对,那么我们认为机器已经总结出了加法的内部规律并且能够学以致用。

 

不收敛一般是形容一些基于梯度下降算法的模型,收敛是指这个算法有能力找到局部的或者全局的最小值,(比如找到使得预测的标签和真实的标签最相近的值,也就是二者距离的最小值),从而得到一个问题的最优解。如果说一个机器学习算法的效果和瞎蒙的差不多那么基本就可以说这个算法没有收敛,也就是根本没有去学习。
 

过拟合欠拟合(方差和偏差以及各自解决办法):

1)过拟合通常可以理解为,模型的复杂度要高于实际的问题,所以就会导致模型死记硬背的记住,而没有理解背后的规律。就比如说人脑要比唐诗复杂得多,即使不理解内容,我们也能背下来,但是理解了内容和写法对于我们理解记忆其他唐诗有好处,如果死记硬背那么就仅仅记住了而已。

2)欠拟合(under-fitting)是和过拟合相对的现象,可以说是模型的复杂度较低,没法很好的学习到数据背后的规律。就好像开普勒在总结天体运行规律之前,他的老师第谷记录了很多的运行数据,但是都没法用数据去解释天体运行的规律并预测,这就是在天体运行数据上,人们一直处于欠拟合的状态,只知道记录过的过去是这样运行的,但是不知道道理是什么。

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

2、线性回归的原理

在现实生活中普遍存在着变量之间的关系,有确定的和非确定的。确定关系指的是变量之间可以使用函数关系式表示,还有一种是属于非确定的(相关),所以我们先明确一下目标:线性回归到底在干什么?因为我们对于一个数据集,不明确其之间的关系,所以需要构造一个函数,进行拟合数据,拟合后便可以实现取任意点进行值的预测。所以这里我们采用线性的函数进行拟合,和求解这个线性函数的参数的过程,以及将参数最优化就是线性回归算法在干的事情。 

函数模型:

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

损失函数说白了,就是求每个点到我们求解的这条直线的距离差的总和。因为不是所有点都在直线上,所有你要衡量这条直线是不是最好的拟合函数,你需要对每个点,求到这条直线的距离,然后将所有的距离相加,得到的距离总和,使得总和最小的直线就是最好的拟合直线。而我们损失函数所用的是平方差误差求和。 现在我们需要根据给定的X求解W的值,这里采用最小二乘法。因此损失代价函数为: 

4、优化方法(梯度下降法、牛顿法、拟牛顿法等)

梯度下降法是按下面的流程进行的:

1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。

2)改变θ的值,使得J(θ)按梯度下降的方向进行减少。

牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数f (x)的泰勒级数的前面几项来寻找方程f (x) = 0的根。牛顿法最大的特点就在于它的收敛速度很快。其迭代公式为:

 

拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。

5、线性回归的评估指标

R-Squared 和 Adjusted R-Squared 都可以用来评估线性回归模型。

F Statistics 是指在零假设成立的情况下,符合F分布的统计量,多用于计量统计学中。

RMSE 指的是均方根误差:

MSE 指的是均方误差:

MAE 指的是评价绝对误差:

6、sklearn参数详解

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

fit_intercept:是否有截据,如果没有则直线过原点。

normalize:是否将数据归一化。

copy_X:默认为True,当为True时,X会被copied,否则X将会被覆写。(这一参数的具体作用没明白,求大神指教了)

n_jobs:默认值为1。计算时使用的核数。

 

 

 

 

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值