机器学习的一些概念
根据训练数据是否拥有标记信息,学习任务可大致分为两大类:有监督学习和无监督学习。
有监督学习
有监督学习:从标签化训练数据集中推断出函数的机器学习任务。
无监督学习
无监督学习:根据类别未知的训练样本解决模式识别中的各种问题。分类和回归是有监督学习的代表,聚类则是无监督的代表。
泛化能力
机器学习的目标是使得学得的模型能够很好的适用于新样本,而不是仅仅在训练样本上工作的很好,即便是对聚类这样的无监督学习任务,我们也希望学得的簇划分能适用于没在训练集中出现的样本。学得的模型适用于新样本的能力,称为泛化能力
过拟合和欠拟合
一般,我们把学习器的实际预测输出与样本的真实输出之间的差异称为误差,学习器在训练样本上的误差称为训练误差,在新样本上的误差称为泛化误差。显然,我们希望得到泛化误差小的学习器。实际上我们并不知道样本是什么样的,能做的就是尽量使得训练误差(或者说经验误差)最小化。
过拟合是指学习时选择的模型包含的参数过多,以致于出现这一模型对已知数据预测的很好(这时候训练误差比较低),对未知数据预测的很差的现象(泛化误差很高)
欠拟合则是由于学习能力低下造成的,模型没有很好的捕捉到数据特征,在训练集上表现的很差,训练误差比较高。
过拟合解决办法主要有:交叉验证、正则化、减少特征个数、增加更多数据等
欠拟合解决办法主要有:增加特征个数、增加多项式次数
方差和偏差
偏差描述的是学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力,方差描述的是同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。以回归任务为例,对测试样本x,令yD表示x在数据集中的标记,y为x的真实标记,f(x;D)为训练集D上学得的模型在x上的预测输出,学习算法的期望预测为
使用样本数相同的不同训练集产生的方差为
噪声为
偏差公式
对算法的期望泛化误差进行分解:
省略推导过程,参看西瓜书中推导,即
即泛化误差可分解为偏差、方差和噪声之和。
从上面的方差和偏差的定义可知,过拟合一般对应着高方差,即泛化能力太差,欠拟合对应着高偏差。
线性回归的原理
线性回归试图学得一个线性模型来尽可能准确地预测样本的输出标记,试图学得一个通过属性间的相互组合来进行预测的函数
即
其中w和b学得之后,模型就可以确定
线性回归损失函数、代价函数、目标函数
损失函数是定义在单个样本上的,可理解为一个样本的误差
代价函数是定义在整个训练集上的,是所有样本误差的平均,即损失函数的平均
目标函数即最终需要优化的函数。等于经验风险+结构风险(即代价函数+正则化项)
以损失函数为样本方差为例,线性回归中损失函数为
代价函数为样本均方误差为
目标函数为
这里选择的正则化项为L2范数
优化方法
梯度下降法:
对于线性回归而言,代价函数为凸函数,这样,我们就可以通过梯度下降法,取得全局唯一最小值,
我们知道,梯度方向是函数变化最快的方向,类比为爬山,即爬山最陡的方向。沿着梯度方向,代价函数能够快速收敛。
每次迭代通过wi = wi-α*∂J/∂wi进行
牛顿法:
基本思想:在现有极小点估计值附近对f(x)做二阶泰勒展开,进而找到下一个极小点估计值
拟牛顿法:
基本思想:不用二阶偏导数而构造出可以近似海森矩阵的正定对称阵,在拟牛顿的条件下优化目标函数。推导过程,后面补
线性回归的评估指标
线性回归的评估指标:均方误差、均方根误差、MAE(平均绝对误差)、R Square
均方误差:
均方根误差:
平均绝对误差:
R Squared:
sklearn参数详解
sklearn.linear_model.LogisticRegression(penalty=’l2’,dual=False,tol=0.0001,C=1.0,fit_intercept=True,intercept_scaling=1,class_weight=None,max_iter=100,multi_class=’ovr’)
penalty:正则化选择参数,参数可选值为l1和l2
dual:用来指明是否将原问题改成其对偶问题
tol:残差收敛条件,默认是0.0001,即收敛的时候,两步之差<0.0001,就停止。
C:正则化系数
fit_intercept:是否将截距/方差加入到决策模型中
class_weight:调节正负样本比例
max_iter=100,算法最大迭代次数
multi_class:分类方法参数选择,有两个值可供选择,ovr和multinomial
- 参考文献
[1] 周志华《机器学习》
[2] 李航《统计学习方法》
[3] https://blog.youkuaiyun.com/qq_28743951/article/details/82221515
[4] https://zhuanlan.zhihu.com/p/39780207