基础算法学习task1
1.机器学习中的一些概念:
1)有监督:学习任务通过样本训练,从而达到预测事先标记出的离散值(即“分类”)或者连续值(“回归”),则称为有监督学习
2)无监督:学习任务通过样本训练,从而达到预测事先不曾标记出信息(“聚类”)则称为无监督学习
3)泛化能力:机器学习中所学得的模型,不仅能够在训练样本上适用,还可以在没有在训练中出现过的样本上适用的能力称为泛化能力
4)过拟合:当学习器在进行样本训练时,将训练样本自身的一些特点作为所有潜在样本都会具有的一般性质,从而导致泛化性能下降,则称为过拟合。改进方法有通过经验误差最小化从而获得最优解。
5)欠拟合:学习器对于训练样本的一般性质尚未掌握好,称为欠拟合。改进方法有在决策树学习中扩展分支,在神经网络学习中增加训练轮数。
6)方差和误差:对于测试样本x,令为x在数据集中的标记,y为x的真实标记,为训练集D上学得模型f在x上的预测输出
方差为:var(x)=[(-f(x))]
误差为:ε=[(-y)]
7) 交叉验证:先将数据集D分为k个大小相似的互斥子集,每个子集Di都尽可能的保持数据分布一致性。然后,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样可以获得k组训练/测试集,从而进行k次训练和测试,最终返回的是这k个测试结果的均值。
2.线性回归原理
从给定的数据集中得到一个线性模型(f()=w+),使得f()≈,尽可能准确地预测实值输出标记。在线性回归中,最小二乘法的原理就是试图找到一条直线,使所有样本到直线上的欧式距离(均方误差)之和最小。
3.线性回归损失函数,代价函数,目标函数
1)损失函数:所求的线性回归模型式一个最接近解,直观上,误差最小的表达式。但它仍然存在模型与数据的误差,模型中真实值和预测值之间的误差就是损失函数。模型与数据差的平方和最小,则说明模型拟合得越好
这就是损失函数的来源。
2)代价函数
3)目标函数:优化的目标,可以是“损失函数”或者“损失函数+正则项”,分为经验风险最小化,结构风险最小化。
4.优化方法(梯度下降法,牛顿法,拟牛顿法)
1)梯度下降法
梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一。梯度下降法的计算过程就是沿梯度下降的方向求解极小值(也可以沿梯度上升方向求解极大值)。其迭代公式为 ,其中 代表梯度负方向, 表示梯度方向上的搜索步长。梯度方向我们可以通过对函数求导得到,步长的确定比较麻烦,太大了的话可能会发散,太小收敛速度又太慢。一般确定步长的方法是由线性搜索算法来确定,即把下一个点的坐标看做是ak+1的函数,然后求满足f(ak+1)的最小值的ak+1即可。
2)牛顿法
牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(y)=0的根。
把非线性函数 在 处展开成泰勒级数,取其线性部分,作为非线性方程的近似方程 则有 设 ,则其解为
因为这是利用泰勒公式的一阶展开, 处并不是完全相等,而是近似相等,这里求得的 并不能让 ,只能说 的值比 更接近
,于是乎,迭代求解的想法就很自然了,再把f(x)在x1 处展开为泰勒级数,取线性部分为 的近似方程,若 ,则得 如此继续下去,得到牛顿法的迭代公式 ,通过迭代,这个式子必然在 的时候收敛。
3)拟牛顿法
拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。
具体步骤:
拟牛顿法的基本思想如下。首先构造目标函数在当前迭代xk的二次模型:
这里Bk是一个对称正定矩阵,于是我们取这个二次模型的最优解作为搜索方向,并且得到新的迭代点:
其中我们要求步长ak 满足Wolfe条件。这样的迭代与牛顿法类似,区别就在于用近似的Hesse矩阵Bk 代替真实的Hesse矩阵。所以拟牛顿法最关键的地方就是每一步迭代中矩阵Bk的更新。现在假设得到一个新的迭代xk+1,并得到一个新的二次模型:
我们尽可能地利用上一步的信息来选取Bk。具体地,我们要求
从而得到
这个公式被称为割线方程。常用的拟牛顿法有DFP算法和BFGS算法。
5.线性回归的评估指标
1)SSE(和方差、误差平方和):The sum of squares dueto error
2)MSE(均方差、方差):Meansquared error
3)RMSE(均方根、标准差):Root mean squared error
4)R-square(确定系数):Coefficientof determination
一、SSE(和方差)
该统计参数计算的是拟合数据和原始数据对应点的误差的平方和
SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功。接下来的MSE和RMSE因为和SSE是同出一宗,所以效果一样
二、MSE(均方差)
该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是SSE/n,和SSE没有太大的区别
三、RMSE(均方根)
该统计参数,也叫回归系统的拟合标准差,是MSE的平方根
在这之前,我们所有的误差参数都是基于预测值(y_hat)和原始值(y)之间的误差(即点对点)。
四、R-square(确定系数)
(1)SSR:Sumof 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:是否有截据,如果没有则直线过原点。
normalize:是否将数据归一化。
copy_X:默认为True,当为True时,X会被copied,否则X将会被覆写。(这一参数的具体作用没明白,求大神指教了)
n_jobs:默认值为1。计算时使用的核数。