赞
踩
简要说说一个完整机器学习项目的流程
一.将要解决的问题转化成数学模型
在工业界实际的任务每次尝试的代价都是非常大的。所以我们不能胡乱尝试,一开始就要明确解决该问题的数学模型。看看它是分类问题、回归问题、还是聚类问题。
二.收集数据
数据决定了我们机器学习的上限。要求数据具有一般性,不然必然会造成过拟合。对于分类问题,数据类型不能有太大偏斜,不同类型的样本尽量不要有量级上的差距。
另外要考虑数据的数量和特征数量,考虑训练过程中内存是否放的下数据,如果不能,则采取降维、改进算法、分布式储存等方式。
三.对数据进行预处理、特征选择
预处理包括:处理缺失值,归一化,正则化,离散化等方法。
为什么要进行预处理:因为很多算法不处理缺失值就无法计算;归一化是因为许多关心数值的算法因为数值的量纲不同而导致效率低下或无法正确完成学习目标;正则化是针对每一个样本的,在一些特殊情况,如需要求得不同样本间的相似性的时候进行样本对的正则化。离散化是因为简单模型处理连续值时效果不好(所以一般采用海量集散特征+简单模型或少量连续特征+复杂模型的学习方式),或者算法无法直接处理类别型变量。
特征选择有三大类方法和一个通过机器学习的方法:
1.过滤型
2.包裹型
3.嵌入型
4.通过表达性好的机器学习模型,来体现不同特征的重要度
四.选择模型,学习,调参。例如网格搜索交叉验证。
五.模型诊断:
根据模型在测试集上的效果,我们寻找改进的方法,可能是数据上的问题、特征上的问题、模型选择问题、超参数的选择等。
六.模型集成:
常见的方法有bagging,boosting,stacking等。因为不同模型可能学习到了我们想要。根据你的基础模型是过拟合还是欠拟合选择。注意:在实际工业环境中,我们主要工作是做在前端(数据预处理)和后端(模型融合),因为这两项工作模式较为固定可复制。
七.上线A/B测试
LR为什么要做离散化:
1.离散特征非常容易删除和增加,有利于模型的迭代
2.稀疏向量在计算内积时计算非常快速,且存储方便
3.LR是广义线性模型,对连续变量离散化相当于增加模型的非线性表达能力,使LR的非线性学习能力变强。
4.离散特征非常容易做组合特征
5.使模型的鲁棒性更好,对于异常值的处理更好
6.模型的稳定性更好,不会因为某个特征数值的小小改变而对结果造成很大影响,但这需要我们选择合适的离散区间。
7.降低模型对单个连续特征的过度拟合情况
简单介绍下LR:
overfitting怎么解决:
1.每次学习采用样本对的一部分特征来学习,增加样本数量
2.减少模型复杂度
3.L1正则化、L2正则化、dropout、batch normallize、early stopping方式
4.采用bagging的模型融合方法
LR和SVM的联系和区别:
联系是:两者都是广义线性模型,都可以解决二分类问题。都认为标签服从二项分布。两者的损失函数都是大大减少了离分类平面远的点的权重。
区别是:
1.LR能够预测各个标签的概率大小,而SVM不能。
2.LR的模型参数和所有样本有关,而SVM只和支持向量有关。所以SVM的计算效率更高。
3.LR只能解决二分类问题,而SVM可以解决归回问题。
4.LR没有核函数,而SVM有核函数对于非线性可分的数据集效果更好。
5.LR的损失函数是交叉熵损失函数,而SVM是合页损失函数。
6.总结来说LR能做的事SVM都能做,只是准确度可能会下降,SVM能做的有些事LR做不了
什么是熵:
熵是衡量混乱度或者说不确定性的一种度量。
熵的公式是:
H
(
x
)
=
∑
i
=
1
n
−
p
(
x
i
)
l
o
g
p
(
x
i
)
H(x)=\sum_{i=1}^n-p(x_i)logp(x_i)
H(x)=i=1∑n−p(xi)logp(xi)
其中n指的是x有n种取值的可能。
对于连续型变量:
H
(
x
)
=
∫
−
f
(
x
)
l
o
g
f
(
x
)
d
x
H(x)=\int -f(x)logf(x)dx
H(x)=∫−f(x)logf(x)dx
除了一般的熵还有:
* 信息增益:
I
(
x
)
=
H
(
D
)
−
∑
i
=
1
n
∣
D
i
∣
∣
D
∣
H
(
D
i
)
I(x)=H(D)-\sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i)
I(x)=H(D)−∑i=1n∣D∣∣Di∣H(Di)
用来衡量通过某个特征分类前后混乱度的变化。
* 交叉熵:
H
(
P
;
Q
)
=
∑
x
−
p
(
x
)
l
o
g
q
(
x
)
H(P;Q)=\sum_{x}-p(x)logq(x)
H(P;Q)=∑x−p(x)logq(x)
用来衡量两类分布的差异性大小,值越大则两类分布的差异越大。
*KL散度/相对熵:
D
K
L
(
p
,
q
)
=
∑
x
p
(
x
)
l
o
g
p
(
x
)
q
(
x
)
=
H
(
P
;
Q
)
−
H
P
(
x
)
D_{KL}(p,q)=\sum_{x}p(x)log\frac{p(x)}{q(x)}=H(P;Q)-H_P(x)
DKL(p,q)=∑xp(x)logq(x)p(x)=H(P;Q)−HP(x)即相对熵是交叉熵相对于真实分布的熵增加了多少。注意相对熵是不对称的,即
D
K
L
(
p
,
q
)
不
等
于
D
K
L
(
q
,
p
)
D_{KL}(p,q)不等于D_{KL}(q,p)
DKL(p,q)不等于DKL(q,p)
说说梯度下降法:
梯度下降法是机器学习中的优化算法,是用来求得目标函数最小值的算法。在寻找模型最小值最优解时,首先在该点求得梯度,再沿负梯度方向前进一点步长,从而靠近最优解。另外要求解目标函数最大值,则沿梯度方向前进,称为梯度上升法
牛顿法和梯度下降法有什么不同:
牛顿法用到了模型的二阶导数,在多元计算中二阶导数构成的矩阵称为海森矩阵。牛顿法的推导过程如下:
f
(
x
0
+
x
)
=
f
(
x
0
)
+
f
′
(
x
0
)
x
+
1
2
f
(
x
0
)
′
′
x
2
f(x_0+x)=f(x_0)+f^{'}(x_0)x+\frac{1}{2}f(x_0)^{''}x^2
f(x0+x)=f(x0)+f′(x0)x+21f(x0)′′x2
对
∂
f
(
x
0
+
x
)
∂
x
=
f
′
(
x
0
)
+
f
(
x
0
)
′
′
x
=
0
x
=
−
f
′
(
x
0
)
f
(
x
0
)
′
′
\frac{\partial f(x_0+x)}{\partial x}=f^{'}(x_0)+f(x_0)^{''}x=0\\ x=-\frac{f^{'}(x_0)}{f(x_0)^{''}}
∂x∂f(x0+x)=f′(x0)+f(x0)′′x=0x=−f(x0)′′f′(x0)
用上式作为模型参数前进的方向最。牛顿法其实是用二阶曲面去拟合函数局部,从而找到下降的方向,下降速度快。但海森矩阵的逆矩阵计算困难。
而梯度下降法只是将
−
f
′
(
x
0
)
-f^{'}(x_0)
−f′(x0)作为前进的方向。从另一个角度看海森矩阵其实相当于自动调节前进的步长。相当于一阶曲面去拟合函数局部,找到下降方向
熵、联合熵、条件熵、相对熵、互信息的定义
熵:
H
(
x
)
=
∑
i
−
P
(
x
i
)
l
o
g
P
(
x
i
)
H(x)=\sum_i-P(x_i)logP(x_i)
H(x)=∑i−P(xi)logP(xi)
联合熵:
H
(
x
,
y
)
=
∑
i
−
P
(
x
,
y
)
l
o
g
P
(
x
,
y
)
H(x,y)=\sum_i-P(x,y)logP(x,y)
H(x,y)=∑i−P(x,y)logP(x,y)
条件熵:
H
(
y
∣
x
)
=
∑
−
P
(
x
,
y
)
l
o
g
P
(
y
∣
x
)
H(y|x)=\sum-P(x,y)logP(y|x)
H(y∣x)=∑−P(x,y)logP(y∣x)
相对熵:
D
K
L
(
p
∣
∣
q
)
=
∑
x
p
(
x
)
l
o
g
p
(
x
)
q
(
x
)
D_{KL}(p||q)=\sum_x p(x)log\frac{p(x)}{q(x)}
DKL(p∣∣q)=∑xp(x)logq(x)p(x)
互信息:
I
(
x
;
y
)
=
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
p
(
x
)
p
(
y
)
=
H
(
x
)
−
H
(
y
∣
x
)
=
H
(
y
)
−
H
(
x
∣
y
)
I(x;y)=\sum_{x,y}p(x,y)log\frac{p(x,y)}{p(x)p(y)}\\ =H(x)-H(y|x)\\ =H(y)-H(x|y)
I(x;y)=x,y∑p(x,y)logp(x)p(y)p(x,y)=H(x)−H(y∣x)=H(y)−H(x∣y)
常见核函数:
核函数的充分条件是核函数是半正定的:即在输入范围内,
线性核函数K(a;b)=<a,b>就是普通的原向量内积
多项式核函数
K
(
x
;
y
)
=
(
a
<
x
,
y
>
+
c
)
d
K(x;y)=(a<x,y>+c)^d
K(x;y)=(a<x,y>+c)d,效果也比较好但是需要调的参数过多,不方便使用
高斯核/径向基核:
K
(
a
;
b
)
=
e
x
p
(
−
(
a
−
b
)
2
2
σ
2
)
K(a;b)=exp(\frac{-(a-b)^2}{2\sigma ^2})
K(a;b)=exp(2σ2−(a−b)2)该核函数用泰勒展开可以发现,他可以将原向量映射到无限维,但是
σ
\sigma
σ越大,映射后的向量在高维衰减越快。指数函数的泰勒展开为:
e
x
p
(
x
)
=
1
+
x
1
!
+
x
2
2
!
+
x
3
3
!
+
.
.
.
.
.
exp(x)=1+\frac{x}{1!}+\frac{x^2}{2!}+\frac{x^3}{3!}+.....
exp(x)=1+1!x+2!x2+3!x3+.....。虽然该核函数很强大,但是他对参数很敏感。
拉布拉斯核:
K
(
a
;
b
)
=
e
x
p
(
−
∣
a
−
b
∣
σ
)
K(a;b)=exp(\frac{-|a-b|}{\sigma })
K(a;b)=exp(σ−∣a−b∣)
sigmoid核:
K
(
x
;
y
)
=
t
a
n
h
(
a
<
x
,
y
>
+
c
)
K(x;y)=tanh(a<x,y>+c)
K(x;y)=tanh(a<x,y>+c)等
什么是拟牛顿法?
就是牛顿法中需要计算海森矩阵的逆矩阵,但是计算海森矩阵的逆矩阵过于复杂,需要用近似的方法。
牛顿法:
f
(
x
)
≈
f
(
x
0
)
+
f
′
(
x
0
)
(
x
−
x
0
)
+
1
2
f
′
′
(
x
0
)
(
x
−
x
0
)
2
f(x)\approx f(x_0)+f^{'}(x_0)(x-x_0)+\frac{1}{2}f^{''}(x_0)(x-x_0)^2
f(x)≈f(x0)+f′(x0)(x−x0)+21f′′(x0)(x−x0)2
对两边同时求导得到:
f
(
x
)
′
≈
f
′
(
x
0
)
+
f
′
′
(
x
0
)
(
x
−
x
0
)
f(x)^{'}\approx f^{'}(x_0)+f^{''}(x_0)(x-x_0)
f(x)′≈f′(x0)+f′′(x0)(x−x0)
设
x
0
=
x
k
+
1
,
x
=
x
k
x_0=x_{k+1},x=x_k
x0=xk+1,x=xk,则
f
′
′
(
x
k
+
1
)
≈
f
′
(
x
k
)
−
f
′
(
x
k
+
1
)
x
k
−
x
f^{''}(x_{k+1})\approx \frac{f^{'}(x_k)-f^{'}(x_{k+1})}{x_k-x}
f′′(xk+1)≈xk−xf′(xk)−f′(xk+1),上式就是拟牛顿条件,由上式选择近似海森矩阵的逆矩阵的方法有DFP算法,对海森矩阵近似的算法BFGS算法.为了节省空间进一步近似的是L-BFGS算法。
KMEANS的复杂度:
时间复杂度~~O(t(Km)n)~~其中t为轮数,k为主题数,m是样本数量,n为样本维度。
空间复杂度为O((k+m)n)其中k为主题数,m是样本数,n为样本维度
随机梯度下降法的问题和挑战:(随机梯度下降SGD,在神经网络训练的文献中经常把小批量随机梯度下降Mini Batch SGD称作SGD)
1.看不到全局最优的方向,每次迭代方向并不是最优的,受到噪声对的影响较多。
2.需要的迭代轮数更多
3.在学习率逐渐减少的情况下,训练时间与Mini Batch SGD接近
4.增加了跳出局部最小值的能力
5.最终收敛并不是全局最优,准确度下降,不方便并行计算
说说共轭梯度法:
共轭梯度法。共轭梯度法是介于梯度下降法和牛顿法之间的算法,它下降速度比梯度下降法快,却不需要计算海森矩阵。它是解线性最优化和非线性最优化最好的方法之一,可以用来解神经网络,但在解神经网络的前几步最后先用几步梯度下降法初始化。首先我们搞清楚什么是共轭,两个向量共轭指的就是
p
1
T
G
p
2
=
0
p_1^TGp_2=0
p1TGp2=0其中G是正定矩阵。在我们的优化算法中,指的就是在沿某个方向找到最小值后,再沿一个与上个方向共轭的方向寻找最优值,不会撤销上一步寻找的效果。在三维数据中看的话,我们沿某一条线寻找到在该线上的最优值点,再在过该点的法平面上寻找下一步前进方向,这样就不会影响到上一步的寻找效果。但由于计算
p
1
T
G
p
2
=
0
p_1^TGp_2=0
p1TGp2=0过于复杂,我们找到了一些方法。如:
g
t
+
1
=
1
n
∑
i
n
L
(
f
(
x
i
,
Θ
t
)
,
y
i
)
g_{t+1}=\frac{1}{n}\sum_i^nL(f(x_i,\Theta_{t}),y_i)
gt+1=n1i∑nL(f(xi,Θt),yi)
d
t
+
1
=
−
g
t
+
1
+
β
t
+
1
d
t
其
中
β
t
+
1
=
g
t
+
1
T
g
t
+
1
g
t
T
g
t
或
=
(
g
t
+
1
−
g
t
)
T
g
t
+
1
g
t
T
g
t
Θ
t
+
1
=
Θ
t
+
ϵ
d
t
+
1
d_{t+1}=-g_{t+1}+\beta_{t+1}d_t\\ 其中\beta_{t+1}=\frac{g_{t+1}^Tg_{t+1}}{g_t^Tg_t}\\ 或=\frac{(g_{t+1}-g_t)^Tg_{t+1}}{g_t^Tg_t}\\ \Theta_{t+1}=\Theta_t+\epsilon d_{t+1}
dt+1=−gt+1+βt+1dt其中βt+1=gtTgtgt+1Tgt+1或=gtTgt(gt+1−gt)Tgt+1Θt+1=Θt+ϵdt+1都可以保持
d
t
+
1
与
d
t
d_{t+1}与d_t
dt+1与dt共轭。
d
t
d_t
dt就是第t步的搜索方向,步长
ϵ
\epsilon
ϵ就通过一次函数计算最优步长。
g
t
g_t
gt是损失函数的梯度。
对于所有优化问题来说,有没有可能找到比现在已知算法更好的算法:
没有免费的午餐定理,答案是没有。
什么是最大熵:
最大熵就是在没有外界干扰的情况下,一个系统总是往最混乱的方向发展。所以在模型中我们除了先验知识告诉我们的已知信息,其他未知部分我们认为它是熵最大的状态,一般是均匀分布。
LR和线性回归的区别与联系:
1.他们都是广义线性模型
2.如果LR用交叉熵损失函数,线性回归用MSE损失函数,则它们更新参数时负梯度的形式相同,皆为g=
∑
i
=
1
n
(
y
i
−
y
^
i
)
x
i
\sum_{i=1}^n(y_i-\widehat y_i)x_i
∑i=1n(yi−y
i)xi
3.LR是分类模型,线性回归是回归模型
4.LR最后的输出是通过sigmoid函数将负无穷到正无穷范围内的数压缩到0到1,而线性回归则无此步骤
5.LR通过sigmoid函数大大压缩了远离回归曲线的样本的权重,而线性回归则一视同仁。
6.损失函数不同,一个是交叉熵损失函数,一个一般是MSE。
7.sigmoid通过sigmoid增加了非线性
简单说下有监督学习和无监督学习的区别:
1.有监督学习的训练集是有标签的,通过训练集以预测训练集外的样本的标签,而无监督的学习的训练集没有标签。
2.有监督学习是学习样本数据和标签之间的映射关系,而无监督学习学习的这些样本中的结构知识
GBDT和XGBOOST的区别是什么:
1.它们都是构建新的树去拟合残差,但是GBDT是用一阶导去拟合残差,XGBOOST则用了二阶导的信息。
2.GBDT没有默认的处理缺失值的方法,而XGBOOST则有
3.GBDT采用gini指数分裂节点,而xgboost采用优化推导后的函数
4.xgboost自带正则化项,可以防止过拟合
机器学习中的正则化,到底是什么意思:
正则化是为了解决过拟合问题,有些模型的学习能力太强,会把模型中的噪声也学习进去,从而造成方差过大。所以我们要限制模型的学习能力,正则化就是让模型不会过于学习某个特征,让每个特征对预测贡献合理的力量。常见的正则化有L1正则化和L2正则化,L1 正则化可以进行特征选择,有助于生成一个稀疏权值矩阵。L2则限制每个特征的权值不要太大。L1认为模型特征的权重服从拉普拉斯分布,L2则认为特征的权重服从高斯分布,这都是对模型添加的先验知识。至于为什么L2正则化会限制权重的大小,除了经典的PRML书中讲的,在二维的情况下L2正则化的惩罚值等高线是一个圆,损失函数的等高线是一个圆,由于两个圆的圆心不同,它们的交点不在某个坐标轴的方向,而在两个坐标轴之间,这样某个特征值的权重就不会太大。下面用公式推导L2正则化可以限制参数大小的原因
o
b
j
e
c
t
=
1
n
∑
i
n
1
2
(
y
i
−
y
^
i
)
2
+
λ
2
∑
i
w
i
2
object=\frac{1}{n}\sum_i^n \frac{1}{2}(y_i-\widehat y_i)^2+\frac{\lambda}{2} \sum_i w_i^2
object=n1i∑n21(yi−y
i)2+2λi∑wi2
则梯度为
∂
o
b
j
∂
w
i
=
−
1
n
∑
j
n
(
y
i
−
y
^
i
)
x
i
(
j
)
+
λ
w
i
\frac{\partial obj}{\partial w_i}=-\frac{1}{n}\sum_j^n(y_i-\widehat y_i)x_i^{(j)}+\lambda w_i
∂wi∂obj=−n1j∑n(yi−y
i)xi(j)+λwi
则
w
i
k
+
1
=
w
i
k
−
λ
w
i
k
+
1
n
∑
j
n
(
y
i
−
y
^
i
)
x
i
(
j
)
w_i^{k+1}=w_i^{k}-\lambda w_i^k+\frac{1}{n}\sum_j^n(y_i-\widehat y_i)x_i^{(j)}
wik+1=wik−λwik+n1∑jn(yi−y
i)xi(j),即每次梯度下降的迭代都会对上一步的
w
i
k
乘
以
一
个
小
于
1
的
数
,
造
成
w
i
的
衰
减
w_i^k乘以一个小于1的数,造成w_i的衰减
wik乘以一个小于1的数,造成wi的衰减,所以L2正则化会限制w的大小
说说常见的损失函数:
损失函数是衡量经验损失的函数。它用来衡量对训练集的学习情况,与是模型的重要组成部分。
常见的损失函数有:
1. 0-1损失函数,用于分类问题,它认为标签服从二项分布,公式如下:
L
(
y
,
f
(
x
)
)
=
{
1
y
≠
f
(
x
)
0
y
=
f
(
x
)
L(y,f(x))=\left\{
2.对数损失函数,用于分类问题,它认为标签服从二项分布,常用于logistic回归,公式如下:
L
(
y
,
f
(
x
)
)
=
−
l
o
g
f
(
x
)
L(y,f(x))=-logf(x)
L(y,f(x))=−logf(x)
3.MSE均方损失函数,用于衡量回归问题,它认为标签服从高斯分布,公式如下:
L
(
y
,
f
(
x
)
)
=
∑
i
n
1
n
(
y
i
−
f
(
x
i
)
)
2
L(y,f(x))=\sum_i^n\frac{1}{n}(y_i-f(x_i))^2
L(y,f(x))=i∑nn1(yi−f(xi))2
4.绝对值损失函数MAE,用于回归问题,他认为标签服从拉普拉斯分布,公式如下:
L
(
y
,
f
(
x
)
)
=
∑
i
n
1
n
∣
∣
y
i
−
f
(
x
i
)
∣
∣
L(y,f(x))=\sum_i^n\frac{1}{n}||y_i-f(x_i)||
L(y,f(x))=i∑nn1∣∣yi−f(xi)∣∣
5.hinge损失函数,svm所用的损失函数,该损失函数是0-1损失函数的上界,拥有0-1损失函数的性质并且可导,公式如下:
L
(
y
,
f
(
x
)
)
=
∑
i
n
1
n
m
a
x
(
0
,
1
−
y
f
(
x
)
)
L(y,f(x))=\sum_i^n \frac{1}{n}max(0,1-yf(x))
L(y,f(x))=i∑nn1max(0,1−yf(x))
6.指数损失函数,adaboost算法所用的损失函数,用于分类问题,公式如下:
L
(
y
,
f
(
x
)
)
=
e
x
p
(
−
y
(
f
m
−
1
(
x
)
+
α
g
(
x
)
)
)
L(y,f(x))=exp(-y(f_{m-1}(x)+\alpha g(x)))
L(y,f(x))=exp(−y(fm−1(x)+αg(x)))
为什么xgboost要用泰勒展开:
因为泰勒展开到2次式,可以用到二阶导数的信息,从而更好的拟合残差,加速模型的学习迭代。另外xgboost以函数作为自变量进行泰勒展开获得函数的一阶导二阶导表示形式,从而可以在不指定损失函数的前提下就可以进行叶子结点分裂优化计算,本质上就是把损失函数的选取,和模型的优化、参数选择分裂开来,这种去耦合性提高了xgboost的适用性,使得xgboost可以选择不同的损失函数,可以支持回归和分类问题
协方差和相关性有什么区别:
协方差cov=E(x1,x2)-E(x1)-E(x2) 相关系数相当于将它们标准化,
p
X
,
Y
=
c
o
v
(
x
,
y
)
σ
x
σ
y
p_{X,Y}=\frac{cov(x,y)}{\sigma _x\sigma_y}
pX,Y=σxσycov(x,y)
xgboost如何寻找最优特征,样本的选择时有放回还是无放回的:
xgboost通过自己的优化算法选择叶子分裂点的特征,我们可以通过模型学习完后,不同特征被选做分裂点的次数来判断特征的重要性。样本选择是无放回的,但是可以设定每轮树的训练选择一定比例的样本
谈谈判别式模型和生成式模型:
1.判别式模型学习的是p(y|x)的条件概率,而生成式模型学习的是p(x,y)联合概率
2.判别式模型因为学习的是x和y的映射关系所以一般准确率较高,但不够灵活只能。而生成式模型可以计算出x到y或y到x的条件概率。
3.常见的判别式模型有:线性回归、逻辑回归、SVM、CRF、决策树、感知机、线性判别回归(LDA)、常见的神经网络、boosting模型。常见的生成式模型有:HMM、贝叶斯网络、高斯混合模型、LDA(主题模型)、限制玻尔兹曼机
线性分类器和非线性分类器的区别以及优劣:
1.线性分类器是用一个线性超平面去做划分正类和负类的借钱,但是因为是线性的,所以拟合能力不强,对于非线性可分的样本无法很好的划分,但胜在模型训练速度快,表达能力强。常见线性分类器有:LR,线性分类器,SVM(使用线性核的),单层感知机
2.非线性分类器的学习能力强,可以分类线性不可分的数据集,但是表达能力弱。计算复杂度高,数据量不足容易过拟合,常见对的非线性分类器有:SVM(带非线性核的)、神经网络、决策树、BOOSTING
L1正则化和L2正则化的区别:
L1正则化公式如下:
L
1
=
∑
i
n
∣
w
i
∣
L1=\sum_i^n|w_i|
L1=i∑n∣wi∣它认为超参数服从拉普拉斯分布,在L1正则化作用下的模型学习,会导致参数稀疏化,对特征具有选择作用。
L2正则化的公式如下:
L
2
=
∑
i
n
w
i
2
L2=\sum_i^nw_i^2
L2=i∑nwi2,它认为模型参数服从高斯分布,它会抑制模型参数不会过大。
简单介绍一下logistic回归(详细解答在第三问):
logistic回归虽然叫回归,但其实是一个二分类算法。和线性回归不同的是,不是将
W
T
x
W^Tx
WTx作为输出而是将,
1
1
+
e
−
w
T
x
\frac{1}{1+e^{-w^Tx}}
1+e−wTx1作为输出,损失函数是对数损失函数,logistic回归的思想是将离分类超平面远的样本的权限大大降低,从而使模型更注意离分类平面近的样本点,提高分类效果。
说一下adaboost,权值更新公式,当弱分类器是
G
m
G_m
Gm时,每个样本的权重是
w
1
.
w
2
,
w
3
.
.
.
.
w_1.w_2,w_3....
w1.w2,w3....,请写出最后的决策公式:
首先根据本轮权重
w
i
(
m
)
w_i^{(m)}
wi(m)本轮的弱分类器
G
m
G_m
Gm,求得错误率
e
m
=
∑
i
n
w
i
(
m
)
I
(
G
m
(
x
i
)
≠
y
i
)
e_m=\sum_i^nw_i^{(m)}I(G_m(x_i)\neq y_i)
em=i∑nwi(m)I(Gm(xi)̸=yi),再根据错误率获得权重
a
m
=
1
2
l
o
g
1
−
e
m
e
m
a_m=\frac{1}{2}log\frac{1-e_m}{e_m}
am=21logem1−em.然后更新权重
w
i
(
m
+
1
)
=
w
i
e
−
a
m
G
m
(
x
i
)
y
i
Z
m
w_i^{(m+1)}=\frac{w_ie^{-a_mG_m(x_i)y_i}}{Z_m}
wi(m+1)=Zmwie−amGm(xi)yi,其中
Z
m
=
∑
i
n
w
i
e
−
a
m
G
m
(
x
i
)
y
i
Z_m=\sum_i^n w_ie^{-a_mG_m(x_i)y_i}
Zm=∑inwie−amGm(xi)yi.
adaboost的损失函数为:
L
(
y
,
f
(
x
)
)
=
e
x
p
(
−
y
(
f
m
−
1
(
x
)
+
α
g
(
x
)
)
)
L(y,f(x))=exp(-y(f_{m-1}(x)+\alpha g(x)))
L(y,f(x))=exp(−y(fm−1(x)+αg(x)))adaboost的最终模型为:
f
(
x
)
=
∑
m
M
a
m
g
m
(
x
)
f(x)=\sum_m^Ma_mg_m(x)
f(x)=m∑Mamgm(x)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。