Part1:基本概念
有监督、无监督、泛化能力、过拟合和欠拟合(方差和偏差以及各自解决办法)、交叉验证
监督学习:(输入数据有标签)
输入数据有标签,且是独立同分布的。对训练数据进行训练,得到模型,有监督是知道输入对应的输出是什么。
无监督学习:(输入数据无标签)
训练数据未进行标记,自动对输入的数据进行分类或分群。(只为算法提供了输入变量X而没有对应的输出变量)
泛化能力:学习方法学到的模型对未知数据的预测能力。
---------评价角度:测试误差(依赖于测试数据集)、泛化误差
若一种方法学习的模型比另一种方法学习的模型具有更小的泛化误差,那么此方法就更有效
过拟合:学习时选择的模型所包含参数过多,导致此模型对已知数据预测地很好,但对未知数据预测地很差。即模型复杂度比实际问题高。
解决办法:
(1)再次进行数据清洗
(2)增加训练数据
(3)考虑使用更少的特征组合
(4)正则化:损失函数引入正则项
(5)dropout:网络训练时的一种技巧,通过修改神经网络本身实现。
欠拟合:模型复杂度低,不能够很好地捕捉数据特征,不能够很好地拟合数据。
解决办法:
(1)损失函数减少正则化参数;
(2)添加新的特征项。
偏差–准确性
方差–稳定性
(欠拟合)当模型参数个数少时,偏离拟合远-----偏差大
(过拟合)当模型参数个数多时,参数越多,模型越不通用,到验证集,部分数据可能符合,部分数据可能不符合-----------------------------------------------方差大
交叉验证:
适用情况:实际训练中,模型通常对训练数据好,对训练数据之外的数据拟合程度差,借此评价模型的泛化能力从而进行模型的选择。
关注点:平衡Bias、Variance
怎么做:
重复地使用数据,切分给定的数据,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。分简单交叉验证、S折交叉验证、留一交叉验证。
Part2:进一步介绍
1、线性回归原理:
回归即为找最大共性-----------万事万物均向中间靠拢
线性回归:找到最适合的一条直线(如,高维中)来最好的拟合数据
据训练数据集训练一个线性模型,输入新数据,对其输出进行预测
2、线性回归的损失函数、代价函数、目标函数
损失函数(loss)、代价函数(cost)是同一个东西
求损失最小时,损失函数即为目标函数;目标函数可以是损失函数,也可以是损失函数的变体(损失函数+修正项)。
回归问题常用损失函数为平方损失函数-----------最小二乘
最小二乘:基于均方误差(平方损失)最小化来进行模型求解。试图找到一条直线,使所有样本到直线上的欧氏距离之和最小。
线 性 回 归 模 型 : h θ ( X ) = θ T X 线性回归模型: h_\theta(X) = \theta^TX 线性回归模型:hθ(X)=θTX
真实值: Y j Y^j Yj
j:训练样本个数
预测值: h θ ( X ) = θ T X j h_\theta(X)=\theta^TX^j hθ(X)=θTXj
Y j = h θ ( X ) + ϵ j Y^j = h_\theta(X)+\epsilon^j Yj=hθ(X)+ϵj
误 差 : ϵ 服 从 N ( 0 , σ 2 ) , P ( ϵ j ) = 1 2 π σ e x p [ − ϵ j 2 2 σ 2 ] 误差:\epsilon服从N(0,\sigma^2),P(\epsilon^j) = \frac{1}{\sqrt{2\pi}\sigma}exp[-\frac{{\epsilon_j}^2}{2\sigma^2}] 误差:ϵ服从N(0,σ2),P(ϵj)=2πσ1exp[−2σ2ϵj2]
则: P ( Y j ∣ X j ; θ ) = 1 2 π σ e x p [ − [ Y j − θ T X j ] 2 2 σ 2 ] P(Y^j|X^j;\theta) = \frac{1}{\sqrt{2\pi}\sigma}exp[-\frac{[Y_j-\theta^TX^j]^2}{2\sigma^2}] P(Yj∣Xj;θ)=2πσ1exp[−2σ2[Yj−θTXj]2]
则,拟合模型为(假设IID独立同分布):
L ( θ ) = P ( y ^ ∣ X ; θ ) = ∏ j m P ( Y j ∣ X j ; θ ) = ∏ j m 1 2 π σ e x p [ − [ Y j − θ T X j ] 2 2 σ 2 ] L(\theta) = P(\hat{y}|X;\theta) = \prod_j^mP(Y^j|X^j;\theta)= \prod_j^m\frac{1}{\sqrt{2\pi}\sigma}exp[-\frac{[Y_j-\theta^TX^j]^2}{2\sigma^2}] L(θ)=P(y^∣X;θ)=∏jmP(Yj∣Xj;θ)=∏jm2πσ1exp[−2σ2[Yj−θTXj]2]
而, l ( θ ) = log L ( θ ) = m log 1 2 π σ + ∑ 1 m [ − [ Y j − θ T X j ] 2 2 σ 2 ] l(\theta) = \log L(\theta) = m\log\frac{1}{\sqrt{2\pi}\sigma} + \sum_{1}^m{[-\frac{[Y_j-\theta^TX^j]^2}{2\sigma^2}]} l(θ)=logL(θ)=mlog2πσ1+∑1m[−2σ2[Yj−θTXj]2]
to find θ \theta θ to maximize l ( θ ) l(\theta) l(θ) is the same as
to minimize ∑ 1 m [ [ Y j − θ T X j ] 2 2 ] \sum_{1}^m{[\frac{[Y_j-\theta^TX^j]^2}{2}]} ∑1m[2[Yj−θTXj]2]
则,代价函数为:
J
(
θ
)
=
1
2
∑
j
=
1
m
[
Y
j
−
θ
T
X
j
]
2
J(\theta)=\frac{1}{2}\sum_{j=1}^m[Y^j-\theta^TX^j]^2
J(θ)=21j=1∑m[Yj−θTXj]2
此时,需要进行优化(使得代价函数尽可能小)的目标函数为:
m
i
n
J
(
θ
)
minJ(\theta)
minJ(θ)
利用最小二乘进行损失函数最小化推导:-----损失函数写成向量形式
J ( θ ) = 1 2 ( X θ − Y ) T ( X θ − Y ) J(\theta) = \frac{1}{2}(X\theta-Y)^T(X\theta-Y) J(θ)=21(Xθ−Y)T(Xθ−Y)
= ( Y T − θ T X T ) ( X θ − Y ) =(Y^T-\theta^TX^T)(X\theta-Y) =(YT−θTXT)(Xθ−Y)
= Y T X θ − Y T Y − θ T X T X θ + θ T X T Y =Y^TX\theta-Y^TY-\theta^TX^TX\theta+\theta^TX^TY =YTXθ−YTY−θTXTXθ+θTXTY
∇ J ( θ ) = Y T X − ( X T X θ ) T − θ T X T X + ( X T Y ) T \nabla J(\theta) = Y^TX-(X^TX\theta)^T-\theta^TX^TX+(X^TY)^T ∇J(θ)=YTX−(XTXθ)T−θTXTX+(XTY)T
= Y T X − θ T X T X − θ T X T X + Y T X = 0 =Y^TX-\theta^TX^TX-\theta^TX^TX+Y^TX = 0 =YTX−θTXTX−θTXTX+YTX=0
则 Y T X = θ T X T X    ⟹    θ = ( X T X ) − 1 X T Y Y^TX = \theta^TX^TX \implies \theta =(X^TX)^{-1}X^TY YTX=θTXTX⟹θ=(XTX)−1XTY
前提, X T X X^TX XTX可逆
3、优化方法:梯度下降、牛顿法、拟牛顿法
(1)梯度下降:----线性回归
为了使得代价函数
J
(
θ
)
J(\theta)
J(θ)最小而提出,先赋给参数向量一个初始值(如,零向量),不断更新参数向量的值以降低代价函数值,梯度下降表现为,每次是往最陡下降方向(偏导方向)走,即将
θ
\theta
θ值更新为减去
J
(
θ
)
J(\theta)
J(θ)的偏微分,即:
θ
i
:
=
θ
i
−
α
∇
J
(
θ
)
,
α
:
学
习
速
度
\theta_i := \theta_i -\alpha\nabla J(\theta), \alpha:学习速度
θi:=θi−α∇J(θ),α:学习速度
分:批量梯度下降、随机/增量梯度下降
批量梯度下降:每次迭代遍历整个训练集合
随机/增量梯度下降:每次迭代j从1迭代到m,且每次迭代内部会用类似梯度下降方式更新参数值,算法结束时只会用到j个样本。优劣:小规模时更快,但不能精确地收敛到全局最小值。
(2)牛顿法:----五次及以上多项式方程没有根式解(并不代表方程解不出来)----如,牛顿迭代法
- 切线是曲线的线性逼近(切线与曲线间误差越小,则逼近效果越好)
- 牛顿法即利用上述切线是曲线的线性逼近思想
(3)拟牛顿法:
4、线性回归评估指标
(MSE)均方误差(Mean Square Error):------最常用
M
S
E
=
1
m
∑
i
=
1
m
(
f
(
x
i
)
−
y
i
)
2
MSE =\frac{1}{m}\sum_{i=1}^m(f(x_i)-y_i)^2
MSE=m1i=1∑m(f(xi)−yi)2
(RMSE)均方根误差(Root Mean Square Error):
R
M
S
E
=
M
S
E
RMSE = \sqrt{MSE}
RMSE=MSE
(MAE)平方绝对误差(Mean Absolute Error):
M
A
E
=
1
m
∑
i
=
1
m
∣
f
(
x
i
)
−
y
i
∣
MAE =\frac{1}{m}\sum_{i=1}^m|{f(x_i)-y_i}|
MAE=m1i=1∑m∣f(xi)−yi∣
5、sklearn参数详解
fit:从训练集中学习模型参数(如:均值、偏差)
transform:对数据进行模型变换
fit_transform:组合参数学习和模型变换
sklearn.preprocessing:数据预处理工具
LabelEncoder:将字符串类型数据转换成数值类型数据