0. 引言
0.1 分类是什么?
“脑袋大脖子粗,不是大官就伙夫”应该是再中华大地上流传最为广泛最为浅显易懂的分类算法。所谓人以类聚,物以群分,后半句话其实就是分类的朴素主义解释和应用。
以下给出分类稍微严谨一点的朴素定义。
分类:按照某种方案将事物分门别类的划拨到不同群体(指定集合),贴上相应的标签的方法。
二分类:如果群体(指定集合)只有两种,我们叫这类问题为二分类问题
多分类:如果群体(指定集合)多于两种,我们叫这类问题为多分类问题。
单独提一个二分类主要是由于在实际应用中二分类占了很大的百分比。
0.2 分类在哪用?
分类的应用场景非常广泛,比如
- 通过关键词判定是否为垃圾邮件
- 通过调查买房人的征信记录判定是否放贷
- 通过打听女神的兴趣爱好追星判定我是否合女神口味
- 通过计算应力应变来判定结构是否安全
- 通过动物特征来判断该动物属于哪个门哪个目
- 以及字体识别等等 等等 等等 等等
0.3 分类算法有哪些?
分类的算法众多,主要有以下几种:
- 逻辑回归(Logistic Regression)
- K-近邻法(K-Nearest Neighbor)
- 支持向量机(Support Vector Machine)
- 决策树(Decision Tree)
- 神经网络(Natural Network)
- 朴素贝叶斯(Naive Bayes)
- 等等
本节主要介绍逻辑回归分类的算法原理。
1. logistic回归算法原理
逻辑回归虽然名字挂着回归,但的确是一种分类算法,而且是只能解决二分类问题中线性可分的那部分问题。我们看下面的几个例子:
显然图1.1~图1.3都是属于二分类的问题,所有的样本点要么是归为⚪点,要么归为十字点,只有两种分类结果,两种标签可以贴(⚪点也许表示是垃圾邮件,十字点表示不是垃圾邮件)。
但是图1.1与图1.2、1.3有着显著的区别,图1.1可以被超平面(注①)
∑
ω
i
X
i
+
b
=
0
\sum \omega_i{X_i}+b=0
∑ωiXi+b=0所分割,所以把图1.1叫做线性可分,而图1.2、1.3不能,图1.2、1.3的叫做非线性可分。
Logistic Regression—逻辑回归法主要就是解决类似图1.1的线性可分的二分类问题。
1.1 逻辑回归模型推导
我们先引入一个二分类问题:
小明在YY中学上高一(3)班上学,对于每一位走读学生,设他的迟到概率为
P
i
{
Z
=
迟
到
}
P_i\{Z=迟到\}
Pi{Z=迟到},那么
P
i
P_i
Pi肯定与学生离学校距离
L
i
L_i
Li和每天出门时间
T
i
T_i
Ti有关。
那么小明迟到发生比(优势比)
o
d
d
s
=
P
i
{
Z
=
迟
到
}
P
i
{
Z
=
不
迟
到
}
=
P
i
{
Z
=
迟
到
}
1
−
P
i
{
Z
=
迟
到
}
odds = \frac{P_i\{Z=迟到\}}{P_i\{Z=不迟到\}}=\frac{P_i\{Z=迟到\}}{1-P_i\{Z=迟到\}}
odds=Pi{Z=不迟到}Pi{Z=迟到}=1−Pi{Z=迟到}Pi{Z=迟到}
我们观察
o
d
d
s
odds
odds随
P
i
{
Z
=
迟
到
}
P_i\{Z=迟到\}
Pi{Z=迟到}的变化趋势如下图
显然随着
P
i
P_i
Pi的增加,
o
d
d
s
odds
odds增加的越快,那么我们不难联想
o
d
d
s
odds
odds可以用指数函数拟合,即有
o
d
d
s
=
e
g
(
P
i
)
=
e
f
(
L
i
,
T
i
)
odds=e^{g(P_i)} = e^{f(L_i,T_i)}
odds=eg(Pi)=ef(Li,Ti)
转变形式,可得以下拟合方案:
l
n
(
o
d
d
s
)
=
f
(
L
i
,
T
i
)
ln(odds)=f(L_i,T_i)
ln(odds)=f(Li,Ti)
那么如果
f
(
L
i
,
T
i
)
f(L_i,T_i)
f(Li,Ti)采用一次多项式拟合,其实上式就和一般的线性回归方程一样。
l
n
(
o
d
d
s
^
)
=
α
+
β
i
L
i
+
γ
i
T
i
=
α
+
∑
ω
i
X
i
ln(\hat {odds}) = \alpha+\beta_iL_i+\gamma_iT_i=\alpha+\sum\omega_iX_i
ln(odds^)=α+βiLi+γiTi=α+∑ωiXi
值得注意的点是
o
d
d
s
^
\hat{odds}
odds^是
o
d
d
s
odds
odds的拟合值。拟合值可以推出
P
i
^
\hat {P_i}
Pi^的表达式如下
P
i
^
1
−
P
i
^
=
e
(
α
+
∑
ω
i
X
i
)
\frac{\hat {P_i}}{1-\hat {P_i}}=e^{(\alpha+\sum{\omega_iX_i})}
1−Pi^Pi^=e(α+∑ωiXi)
1
P
i
^
−
1
=
e
−
(
α
+
∑
ω
i
X
i
)
\frac{1}{\hat {P_i}}-1=e^{-(\alpha+\sum{\omega_iX_i})}
Pi^1−1=e−(α+∑ωiXi)
P
i
^
=
1
1
+
e
−
(
α
+
∑
ω
i
X
i
)
\hat {P_i}=\frac {1}{1+e^{-(\alpha+\sum{\omega_iX_i})}}
Pi^=1+e−(α+∑ωiXi)1
值得注意的是
P
i
^
\hat {P_i}
Pi^是
P
i
P_i
Pi的拟合值(近似值)。
1.2 逻辑回归模型的意义
我们以图1.1为例,在其中添加超平面
Ω
\Omega
Ω作为分界面
图中假设十字点为事件发生,z=1,⚪点为事件不发生,z=0,超平面
Ω
:
α
+
∑
ω
i
X
i
=
0
\Omega:\alpha+\sum{\omega_iX_i}=0
Ω:α+∑ωiXi=0, 那么对于已知的事件集
A
=
{
十
字
点
,
⚪
点
}
A=\{十字点,⚪点\}
A={十字点,⚪点}里面的元素,有事件发生的概率函数:
f
(
z
)
=
{
1
,
元
素
在
超
平
面
Ω
上
方
时
0
,
元
素
在
超
平
面
Ω
另
一
边
时
f(z)=\begin{cases}1,元素在超平面\Omega上方时\\0,元素在超平面\Omega另一边时\end{cases}
f(z)={1,元素在超平面Ω上方时0,元素在超平面Ω另一边时
逻辑回归模型其实可以理解为(等效于)用
f
^
(
z
)
=
1
1
+
e
−
(
α
+
∑
ω
i
X
i
)
\hat f(z)=\frac{1}{1+e^{-(\alpha+\sum{\omega_iX_i})}}
f^(z)=1+e−(α+∑ωiXi)1来拟合
f
(
z
)
f(z)
f(z)。
注意到对于一个样本点
(
X
i
(
j
)
,
Z
(
j
)
)
(X_i^{(j)},Z^{(j)})
(Xi(j),Z(j))来说,当
g
(
X
i
)
=
α
+
∑
ω
i
X
i
>
0
g(X_i)=\alpha+\sum{\omega_iX_i}>0
g(Xi)=α+∑ωiXi>0时,表示样本点在十字点那侧,当
g
(
X
i
)
=
α
+
∑
ω
i
X
i
<
0
g(X_i)=\alpha+\sum{\omega_iX_i}<0
g(Xi)=α+∑ωiXi<0时,表示样本点在⚪点那侧。
1.2 损失函数(评价函数)怎么定义?
还以小明班级上学迟到为例,假设小明同学——高一(3)班的所有学生都是各自上学的,所以学生迟到的概率
P
i
P_i
Pi都是独立的,假设Z=1是迟到的等价概念,那么对于某一学生,有
迟到的概率:
P
i
{
Z
=
1
}
=
p
i
P_i\{Z=1\} = p_i
Pi{Z=1}=pi
不迟到的概率:
P
i
{
Z
=
0
}
=
1
−
P
i
{
Z
=
1
}
=
1
−
p
i
P_i\{Z=0\}=1-P_i\{Z=1\} = 1-p_i
Pi{Z=0}=1−Pi{Z=1}=1−pi
其实Z就是概率统计中的伯努利随机变量,那么其频率函数可以写成以下形式:
p
(
Z
)
=
{
p
i
Z
(
1
−
p
i
)
1
−
Z
,
Z
=
0
o
r
Z
=
1
0
p(Z) = \begin {cases} p_i^Z(1-p_i)^{1-Z} ,Z=0 or Z=1\\ 0 \end{cases}
p(Z)={piZ(1−pi)1−Z,Z=0orZ=10
将
p
i
p_i
pi的拟合值(
P
i
^
=
1
1
+
e
−
(
α
+
∑
ω
i
X
i
)
\hat {P_i}=\frac {1}{1+e^{-(\alpha+\sum{\omega_iX_i})}}
Pi^=1+e−(α+∑ωiXi)1)代入可得
p
^
i
(
Z
;
α
,
ω
i
)
=
1
1
+
e
−
(
α
+
∑
ω
i
X
i
)
Z
(
1
−
1
1
+
e
−
(
α
+
∑
ω
i
X
i
)
)
1
−
Z
\hat p_i(Z;\alpha,\omega_i)=\frac {1}{1+e^{-(\alpha+\sum{\omega_iX_i})}}^Z(1-\frac {1}{1+e^{-(\alpha+\sum{\omega_iX_i})}})^{1-Z}
p^i(Z;α,ωi)=1+e−(α+∑ωiXi)1Z(1−1+e−(α+∑ωiXi)1)1−Z
值得注意的是
p
^
i
(
Z
;
α
,
ω
i
)
\hat p_i(Z;\alpha,\omega_i)
p^i(Z;α,ωi)是
p
i
(
Z
)
p_i(Z)
pi(Z)的拟合值(近似值),它的变量为
(
Z
;
α
,
ω
i
)
(Z;\alpha,\omega_i)
(Z;α,ωi)。
当知道其中m个学生迟到与否,即有m个样本
{
(
X
1
(
1
)
,
X
2
(
1
)
,
Z
(
1
)
)
,
.
.
.
,
(
X
1
(
m
)
,
X
2
(
m
)
,
Z
(
m
)
)
}
\{(X_1^{(1)},X_2^{(1)},Z^{(1)}),...,(X_1^{(m)},X_2^{(m)},Z^{(m)})\}
{(X1(1),X2(1),Z(1)),...,(X1(m),X2(m),Z(m))}
我们可以用最大似然估计方法(maximum likelihood estimate method)估计出一组参数
(
α
,
ω
i
)
(\alpha,\omega_i)
(α,ωi)。
最大似然估计方法
对于每一个同学迟到与否是独立的,并且频率分布为
p
^
i
(
Z
(
i
)
;
α
,
ω
i
)
\hat p_i(Z^{(i)};\alpha,\omega_i)
p^i(Z(i);α,ωi),那么m个同学迟到与否的联合频率分布为
L
(
Z
;
α
,
ω
i
)
=
∏
i
=
0
m
p
^
i
(
Z
(
i
)
;
α
,
ω
i
)
L(Z;\alpha,\omega_i) = \prod_{i=0}^m\hat p_i(Z^{(i)};\alpha,\omega_i)
L(Z;α,ωi)=i=0∏mp^i(Z(i);α,ωi)
对于m个样本代入的情况下,
L
(
Z
;
α
,
ω
i
)
L(Z;\alpha,\omega_i)
L(Z;α,ωi)是参数
(
α
,
ω
i
)
(\alpha,\omega_i)
(α,ωi)的函数,当一组参数
(
α
,
ω
i
)
(\alpha,\omega_i)
(α,ωi)使得
L
(
Z
;
α
,
ω
i
)
L(Z;\alpha,\omega_i)
L(Z;α,ωi)取最大值,这一组参数
(
α
,
ω
i
)
(\alpha,\omega_i)
(α,ωi)就是估计的参数。即:
(
α
,
ω
i
)
→
max
(
α
,
ω
i
)
[
L
(
Z
;
α
,
ω
i
)
]
(\alpha,\omega_i)\to \max_{(\alpha,\omega_i)} [ L(Z;\alpha,\omega_i)]
(α,ωi)→(α,ωi)max[L(Z;α,ωi)]
(意思就是对于m个样本点,其观测结果(取样结果)为
Γ
\Gamma
Γ,我们通过变化参数
(
α
,
ω
i
)
(\alpha,\omega_i)
(α,ωi)使得在相应的m个样本点上最大可能性出现观测结果
Γ
\Gamma
Γ,这组
(
α
,
ω
i
)
(\alpha,\omega_i)
(α,ωi)就是通过最大似然估计得到的参数)
观察到上面的公式过于复杂,我们可以通过变换将其简化如下,我们称之为逻辑回归法的损失函数(评价函数)。
(
α
,
ω
i
)
→
min
(
α
,
ω
i
)
[
−
ln
L
(
Z
;
α
,
ω
i
)
]
(\alpha,\omega_i)\to \min_{(\alpha,\omega_i)}[-\ln L(Z;\alpha,\omega_i)]
(α,ωi)→(α,ωi)min[−lnL(Z;α,ωi)]
−
ln
L
(
Z
;
α
,
ω
i
)
=
−
ln
{
∏
i
=
1
m
p
^
i
(
Z
(
i
)
;
α
,
ω
i
)
}
=
−
∑
i
=
1
m
ln
p
^
i
(
Z
(
i
)
;
α
,
ω
i
)
=
−
∑
i
=
1
m
ln
1
1
+
e
−
(
α
+
∑
ω
j
X
j
(
i
)
)
Z
(
i
)
(
1
−
1
1
+
e
−
(
α
+
∑
ω
j
X
j
(
i
)
)
)
1
−
Z
(
i
)
=
−
∑
i
=
1
m
{
Z
(
i
)
ln
[
1
1
+
e
−
(
α
+
∑
ω
j
X
j
(
i
)
)
]
+
(
1
−
Z
(
i
)
)
ln
[
1
−
1
1
+
e
−
(
α
+
∑
ω
j
X
j
(
i
)
)
]
}
\begin {aligned} -\ln L(Z;\alpha,\omega_i) & = -\ln\{ \prod_{i=1}^m\hat p_i(Z^{(i)};\alpha,\omega_i)\}\\ &=-\sum_{i=1}^{m}\ln\hat p_i(Z^{(i)};\alpha,\omega_i)\\ &=-\sum_{i=1}^{m}\ln\frac {1}{1+e^{-(\alpha+\sum{\omega_jX_j^{(i)}})}}^{Z^{(i)}}(1-\frac {1}{1+e^{-(\alpha+\sum{\omega_jX_j^{(i)}})}})^{1-Z^{(i)}}\\ &=-\sum_{i=1}^m\{Z^{(i)}\ln[\frac{1}{1+e^{-(\alpha+\sum\omega_jX_j^{(i)})}}]+(1-Z^{(i)})\ln[1-\frac{1}{1+e^{-(\alpha+\sum\omega_jX_j^{(i)})}}]\} \end{aligned}
−lnL(Z;α,ωi)=−ln{i=1∏mp^i(Z(i);α,ωi)}=−i=1∑mlnp^i(Z(i);α,ωi)=−i=1∑mln1+e−(α+∑ωjXj(i))1Z(i)(1−1+e−(α+∑ωjXj(i))1)1−Z(i)=−i=1∑m{Z(i)ln[1+e−(α+∑ωjXj(i))1]+(1−Z(i))ln[1−1+e−(α+∑ωjXj(i))1]}
记
h
(
ω
)
(
i
)
=
1
1
+
e
−
(
α
+
∑
ω
j
X
j
(
i
)
)
h(\omega)^{(i)}=\frac{1}{1+e^{-(\alpha+\sum\omega_jX_j^{(i)})}}
h(ω)(i)=1+e−(α+∑ωjXj(i))1
那么上式为:
−
ln
L
(
Z
;
α
,
ω
i
)
=
−
∑
i
=
1
m
{
Z
(
i
)
ln
[
h
(
ω
)
(
i
)
]
−
(
1
−
Z
(
i
)
)
ln
[
1
−
h
(
ω
)
(
i
)
]
}
-\ln L(Z;\alpha,\omega_i) =-\sum_{i=1}^m\{Z^{(i)}\ln[h(\omega)^{(i)}]-(1-Z^{(i)})\ln[1-h(\omega)^{(i)}]\}
−lnL(Z;α,ωi)=−i=1∑m{Z(i)ln[h(ω)(i)]−(1−Z(i))ln[1−h(ω)(i)]}
这样就等于把问题转换为损失函数的极值问题(典型的无约束优化问题)。
1.3 极值问题怎么求解?
逻辑回归分类法最终要求解的损失函数的极值问题(无约束优化问题)。
(
α
,
ω
i
)
→
min
(
α
,
ω
i
)
[
f
(
α
,
ω
i
)
]
(\alpha,\omega_i)\to \min_{(\alpha,\omega_i)}[f(\alpha,\omega_i)]
(α,ωi)→(α,ωi)min[f(α,ωi)]
求解极值问题的方法有很多种,梯度下降法是最常用且简洁的算法。他的内涵思想就是从起始点
(
α
,
ω
i
)
t
∣
0
(\alpha,\omega_i)_{t|0}
(α,ωi)t∣0开始沿着
f
(
α
,
ω
i
)
f(\alpha,\omega_i)
f(α,ωi)值减小的方法搜索
(
α
,
ω
i
)
t
∣
j
(\alpha,\omega_i)_{t|j}
(α,ωi)t∣j,直到满足精度要求或者迭代步数要求。
正梯度是 f ( α , ω i ) f(\alpha,\omega_i) f(α,ωi)增加的方向,负梯度是 f ( α , ω i ) f(\alpha,\omega_i) f(α,ωi)减小方向。所以叫梯度下降法,具体算法流程如下:
- 选定初始值 ( α , ω i ) t ∣ 0 (\alpha,\omega_i)_{t|0} (α,ωi)t∣0
- 选择迭代步长 η \eta η,精度 δ 0 \delta_0 δ0以及迭代次数限 T 0 T_0 T0
- 重复以下计算过程
① 计算负梯度: d t ∣ j = − ∂ ∂ ( α , ω i ) f ( α , ω i ) t ∣ j d_{t|j}=-\frac{\partial}{\partial(\alpha,\omega_i)}f(\alpha,\omega_i)_{t|j} dt∣j=−∂(α,ωi)∂f(α,ωi)t∣j
② 更新参数: ( α , ω i ) t ∣ j + 1 = ( α , ω i ) t ∣ j + d t ∣ j × η (\alpha,\omega_i)_{t|j+1}=(\alpha,\omega_i)_{t|j}+d_{t|j}\times\eta (α,ωi)t∣j+1=(α,ωi)t∣j+dt∣j×η
③ 检验是否满足迭代要求: ( 1 ) δ = ∣ d t ∣ j × η ∣ < δ 0 或 ( 2 ) t ∣ j > T 0 (1) \delta = |d_{t|j}\times\eta|<\delta_0或(2) t|j>T_0 (1)δ=∣dt∣j×η∣<δ0或(2)t∣j>T0 - 满足迭代要求即终止计算,输出最终 ( α , ω i ) t ∣ f i n a l (\alpha,\omega_i)_{t|final} (α,ωi)t∣final
1.4 逻辑回归算法
将极值问题的求解步骤具体应用与逻辑回归算法中,并将
(
α
,
ω
i
)
,
i
=
1
,
.
.
.
,
l
(\alpha, \omega_i),i=1,...,l
(α,ωi),i=1,...,l合并成
W
=
(
ω
0
,
ω
1
,
.
.
.
,
ω
l
)
W=(\omega_0,\omega_1,...,\omega_l)
W=(ω0,ω1,...,ωl)相应将特征向量扩展的
X
=
(
1
,
x
1
,
.
.
.
,
x
l
)
X=(1,x_1,...,x_l)
X=(1,x1,...,xl)。
d
i
=
−
∂
∂
ω
i
f
(
ω
i
)
=
−
∂
(
−
ln
L
(
Z
;
ω
i
)
)
∂
ω
i
=
∑
k
=
1
m
[
Z
(
k
)
1
h
(
ω
)
(
k
)
∙
∂
h
(
ω
)
(
k
)
∂
ω
i
+
(
1
−
Z
(
k
)
)
1
1
−
h
(
ω
)
(
k
)
∙
∂
(
1
−
h
(
ω
)
(
k
)
)
∂
ω
i
]
=
∑
k
=
1
m
[
Z
(
k
)
(
1
+
e
−
∑
ω
i
X
i
(
k
)
)
∙
−
X
i
(
k
)
e
−
∑
ω
i
X
i
(
k
)
(
1
+
e
−
∑
ω
i
X
i
(
k
)
)
2
+
(
1
−
Z
(
k
)
)
1
+
e
−
∑
ω
i
X
i
(
k
)
e
−
∑
ω
i
X
i
(
k
)
]
∙
(
−
−
X
i
(
k
)
e
−
∑
ω
i
X
i
(
k
)
(
1
+
e
−
∑
ω
i
X
i
(
k
)
)
2
)
=
∑
k
=
1
m
[
Z
(
k
)
−
X
i
(
k
)
e
−
∑
ω
i
X
i
(
k
)
(
1
+
e
−
∑
ω
i
X
i
(
k
)
)
+
(
1
−
Z
(
k
)
)
X
i
(
k
)
1
+
e
−
∑
ω
i
X
i
(
k
)
]
=
∑
k
=
1
m
Z
(
k
)
X
i
(
k
)
−
e
−
∑
ω
i
X
i
(
k
)
−
1
1
+
e
−
∑
ω
i
X
i
(
k
)
+
X
i
(
k
)
1
1
+
e
−
∑
ω
i
X
i
(
k
)
=
∑
k
=
1
m
X
i
(
k
)
(
h
(
ω
)
(
k
)
−
Z
(
k
)
)
\begin{aligned}d_i&=-\frac{\partial}{\partial\omega_i}f(\omega_i)\\ &=-\frac{\partial(-\ln L(Z;\omega_i))}{\partial\omega_i}\\ &=\sum_{k=1}^m[Z^{(k)}\frac{1}{h(\omega)^{(k)}}\bullet\frac{\partial h(\omega)^{(k)}}{\partial\omega_i}+(1-Z^{(k)})\frac{1}{1-h(\omega)^{(k)}}\bullet\frac{\partial (1-h(\omega)^{(k)})}{\partial\omega_i}]\\ &=\sum_{k=1}^m[Z^{(k)}(1+e^{-\sum\omega_iX_i^{(k)}})\bullet\frac{-X_i^{(k)}e^{-\sum\omega_iX_i^{(k)}}}{(1+e^{-\sum\omega_iX_i^{(k)}})^2}\\ &\qquad +(1-Z^{(k)})\frac{1+e^{-\sum\omega_iX_i^{(k)}}}{e^{-\sum\omega_iX_i^{(k)}}}]\bullet(-\frac{-X_i^{(k)}e^{-\sum\omega_iX_i^{(k)}}}{(1+e^{-\sum\omega_iX_i^{(k)}})^2})\\ &=\sum_{k=1}^m[Z^{(k)}\frac{-X_i^{(k)}e^{-\sum\omega_iX_i^{(k)}}}{(1+e^{-\sum\omega_iX_i^{(k)}})}+(1-Z^{(k)})\frac{X_i^{(k)}}{1+e^{-\sum\omega_iX_i^{(k)}}}]\\ &=\sum_{k=1}^mZ^{(k)}X_i^{(k)}\frac{-e^{-\sum\omega_iX_i^{(k)}}-1}{1+e^{-\sum\omega_iX_i^{(k)}}}+X_i^{(k)}\frac{1}{1+e^{-\sum\omega_iX_i^{(k)}}}\\ &=\sum_{k=1}^mX_i^{(k)}(h(\omega)^{(k)}-Z^{(k)})\end{aligned}
di=−∂ωi∂f(ωi)=−∂ωi∂(−lnL(Z;ωi))=k=1∑m[Z(k)h(ω)(k)1∙∂ωi∂h(ω)(k)+(1−Z(k))1−h(ω)(k)1∙∂ωi∂(1−h(ω)(k))]=k=1∑m[Z(k)(1+e−∑ωiXi(k))∙(1+e−∑ωiXi(k))2−Xi(k)e−∑ωiXi(k)+(1−Z(k))e−∑ωiXi(k)1+e−∑ωiXi(k)]∙(−(1+e−∑ωiXi(k))2−Xi(k)e−∑ωiXi(k))=k=1∑m[Z(k)(1+e−∑ωiXi(k))−Xi(k)e−∑ωiXi(k)+(1−Z(k))1+e−∑ωiXi(k)Xi(k)]=k=1∑mZ(k)Xi(k)1+e−∑ωiXi(k)−e−∑ωiXi(k)−1+Xi(k)1+e−∑ωiXi(k)1=k=1∑mXi(k)(h(ω)(k)−Z(k))
所以逻辑回归算法流程如下:
1.将特征向量扩展成
X
=
(
1
,
x
1
,
.
.
.
,
x
l
)
X=(1,x_1,...,x_l)
X=(1,x1,...,xl);
2.选定初始值
(
ω
0
,
ω
1
,
.
.
.
,
ω
l
)
t
=
0
(\omega_0,\omega_1,...,\omega_l)_{t=0}
(ω0,ω1,...,ωl)t=0;
3.选择迭代步长
η
\eta
η,精度
δ
0
\delta_0
δ0以及迭代次数限
T
0
T_0
T0
4.重复以下计算过程:
① 计算负梯度:
d
i
∣
t
=
j
=
∑
k
=
1
m
X
i
(
k
)
(
h
(
ω
)
(
k
)
−
Z
(
k
)
)
,
j
=
0
,
1
,
.
.
.
,
(
T
0
−
1
)
d_{i|{t=j}}=\sum_{k=1}^mX_i^{(k)}(h(\omega)^{(k)}-Z^{(k)}),j=0,1,...,(T_0-1)
di∣t=j=∑k=1mXi(k)(h(ω)(k)−Z(k)),j=0,1,...,(T0−1)
② 更新各个参数:
ω
i
∣
t
=
j
+
1
=
ω
i
∣
t
=
j
+
d
i
∣
t
=
j
×
η
\omega_{i|{t=j+1}}=\omega_{i|{t=j}}+d_{i|{t=j}}\times\eta
ωi∣t=j+1=ωi∣t=j+di∣t=j×η
③ 检验是否满足迭代要求:
(
1
)
δ
=
∣
d
i
∣
t
=
j
×
η
∣
<
δ
0
或
(
2
)
t
=
j
>
T
0
(1) \delta = |d_{i|{t=j}}\times\eta|<\delta_0或(2) t=j>T_0
(1)δ=∣di∣t=j×η∣<δ0或(2)t=j>T0
5.满足迭代要求即终止计算,输出最终
ω
i
∣
t
=
f
i
n
a
l
\omega_{i|{t=final}}
ωi∣t=final
参考文献:
[1]. 机器学习[M]. 周志华.
[2]. logistic回归:从生产到使用
[3]. 逻辑回归二分类总结(不断迭代,直到彻底掌握)
[4]. Python机器学习算法[M].赵志勇.
文章导引列表:
机器学习
- 小瓜讲机器学习——分类算法(一)logistic regression(逻辑回归)算法原理详解
- 小瓜讲机器学习——分类算法(二)支持向量机(SVM)算法原理详解
- 小瓜讲机器学习——分类算法(三)朴素贝叶斯法(naive Bayes)
- 待续
数据分析
- 小呆学数据分析——使用pandas中的merge函数进行数据集合并
- 小呆学数据分析——使用pandas中的concat函数进行数据集堆叠
- 小呆学数据分析——pandas中的层次化索引
- 小呆学数据分析——使用pandas的pivot进行数据重塑
- 小呆学数据分析——用duplicated/drop_duplicates方法进行重复项处理
- 小呆学数据分析——缺失值处理(一)
- 小呆学数据分析——异常值判定与处理(一)
- 小瓜讲数据分析——数据清洗
数据可视化