初级算法梳理学习记录
机器学习的定义
Mitchell(1997)将机器学习定义为:
A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
设用 P 来评估计算机程序在某任务类 T 上的性能, 若一个程序通过利用经验 E 在 T 中任务丰获得了性能改善,则我们就说关于 T 和 P, 该程序对 E 进行了学习。
有关机器学习的相关通俗解释推荐b站一个up主:YJango。
机器学习任务分类(根据训练数据是否拥有标记信息 )
有监督(supervised learning)
在训练数据集中都有对应明确的结果,算法预测得到乐子的正确答案。分类(离散量)和回归(连续量)为其代表。
无监督(unsupervised learning)
通过算法对其标注,事先并未人为标注。聚类为其代表。
泛化能力(generalization)
学得模型适用于新样本的能力,称为"泛化" 能力。具有强泛化能力的模型能 很好地适用于整个样本空间。
过拟合
在机器学习选择模型的过程中,如果一味追求提高训练数据的预测能力,所选模型的复杂度则往往会比真模型更高,这种现象被称为过拟合,过拟合是指学习时选择的模型所包含的参数过多,以至于出现这一模型对已知数据预测得很好,对未知数据预测的很差的现象。比如在多项式函数拟合的过程中:
减少过拟合的方法:减少过拟合
欠拟合
欠拟合就是模型没有很好地捕捉到数据特征,由于统计模型使用的参数过少,以至于得到的模型难以拟合观测数据(训练数据)的现象。
减少欠拟合的方法:减少欠拟合
交叉验证
交叉验证(Cross validation),亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证是一种评估统计分析、机器学习算法对独立于训练数据的数据集的泛化能力。
先将数据集 D 划分为 k 个大小相似的 互斥子集, 即 D = D1 U D2υ… U Dk, Di n Dj = ø (í 不等于 j). 每个子集 Di 都 尽可能保持数据分布的一致性,即从 D 中通过分层采样得到. 然后,每次用 k-1 个子集的并集作为训练集,余 下的那个子集作为测试集;这样就可获得 k 组训练/测试集,从而可进行 k 次训练和测试,最终返回的是这 k 个测试结果的均值 。显然,交叉验证法评估结果的稳定性和保真性在很大程度上取决于 k 的取值,为强调这一点,通常把交叉验证法称为 " k 折交叉验证" (k-fold cross validation). k 最常用的取值是 10,此时称为 10 折交叉验证; 其他常用的 k 值 有 5、 20 等.
线性回归(linear regression)的原理
线性回归假设特征和结果满足线性关系。线性关系的表达能力非常强大,每个特征对结果的影响强弱可以由前面的参数体现,而且每个特征变量可以首先映射到一个函数,然后再参与线性计算。这样就可以表达特征与结果之间的非线性关系。
线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数
损失函数(cost function)
用均方误差表示。
优化方法
梯度下降法
比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处(局部最小值)。
从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。(来源知乎)
梯度下降法是按下面的流程进行的:
1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。
2)改变θ的值,使得J(θ)按梯度下降的方向进行减少。
梯度下降法需要注意参数的同时更新!
牛顿法
牛顿法简介
拟牛顿法
拟牛顿法介绍
线性回归的评估指标
##平均绝对误差(MAE)
其中,yi 表示真实值,ˆyi 表示预测值,n 则表示值的个数。MAE 的值越小,说明预测模型拥有更好的精确度。
均方误差(MSE)
MSE 的值越小,说明预测模型拥有更好的精确度。
平均绝对百分比误差(MAPE)
MAPE 是 MAD的变形,它是一个百分比值,因此比其他统计量更容易理解。例如,如果 MAPE 为 5,则表示预测结果较真实结果平均偏离 5%。MAPE 的计算公式如下:
sklearn参数详解
sklearn参数详解python实现