任务一 :线性回归算法梳理
目录
1. 机器学习的一些概念
根据训练数据是否拥有标记信息,学习任务可以大致分为两大类:“监督学习”(supervised learning)和“无监督学习”(unsupervised learning),分类和回归是前者的代表,聚类是后者的代表。
有监督学习:训练数据有标记信息的学习。
无监督学习:训练数据没有标记信息的学习。
泛化能力:学得模型适用于新样本的能力,称为“泛化”能力,具有泛化能力的模型能很好地适用于整个样本空间。
过拟合(overfitting):当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质性质,这样就会导致泛化性能下降。这种现象在机器学习中称为“过拟合”。
欠拟合(underfitting):与“过拟合”相对的是“欠拟合”,指的是对训练样本的一般性质尚未学好。
欠拟合比较容易克服,例如在决策树学习中扩展分支;在神经网络学习中增加训练次数。
过拟合无法彻底避免,只能“缓解”,或者减小风险。
交叉验证:常用的模型选择方法,在许多实际应用中数据不充足,为了选择好的模型,可以采用交叉验证方法。基本思想是重复地使用数据,把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。
2. 线性回归的原理
给定数据集,其中
。“线性回归”(linear regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。
线性回归试图学得
,使得
以下是一元变量和二元变量的线性回归示意图:
3. 线性回归损失函数、代价函数、目标函数
损失函数:
代价函数:
目标函数:
4. 优化方法(梯度下降法、牛顿法、拟牛顿法等)
梯度下降法:是一个用来求函数最小值的算法,其思想:随机选择一个参数组合,计算代价函数,然后寻找下一个能让代价函数值下降最多的参数组合。持续上述步骤直到找到一个局部最小值(local minimum),由于没有尝试完所有的参数组合,所以不能确定得到的局部最小值是否为全局最小值( global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。
牛顿法:牛顿法的基本思想是利用迭代点处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似,然后把二次模型的极小点作为新的迭代点,并不断重复这一过程,直至求得满足精度的近似极小值。牛顿法的速度相当快,而且能高度逼近最优值。
拟牛顿法:基本思想:不用二阶偏导数而构造出可以近似Hessen矩阵(或Hessen矩阵的逆)的正定对称阵,在“拟牛顿”的条件下优化目标函数。不同的构造方法产生不同的拟牛顿法。
5、线性回归的评估指标
先看看sklearn中机器学习的评估指标有哪些:
from sklearn.metrics import SCORERS
SCORERS
- 残差(实际值与预测值)的均值来衡量,即:
- MAE(Mean Absolute Error) 平均绝对误差又称为
范数损失
- MSE(Mean Square Error) 平均平方差/均方误差是回归任务最常用的性能度量,又称为2范数损失
- RMSE(Root Mean Square Error) 方均根差
- MAPE 全称是Mean Absolute Percentage Error(WikiPedia), 也叫mean absolute percentage deviation (MAPD),在统计领域是一个预测准确性的衡量指标。
- R平方决定系数
表示观测数据的平均值
残差平方和
总平均值
R平方
R平方是多元回归中的回归平方和占总平方和的比例,它是度量多元回归方程中拟合程度的一个统计量,反映了在因变量yy的变差中被估计的回归方程所解释的比例。
R平方越接近1,表明回归平方和占总平方和的比例越大,回归线与各观测点越接近,用xx的变化来解释yy值变差的部分就越多,回归的拟合程度就越好。
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_ : 数组型变量。
说明:线性模型中的独立项。