
Logistic回归
Logistic回归回归又称Logistic回归回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。
- 分类问题的首选算法。
- Logistic回归解决二分类问题,Softmax回归解决多分类问题。
Sigmoid函数
g(z)=11+e−z=hθ(x)=g(θTx)=11+e−θTx
g′(x)=(11+e−x)′=e−x(1+e−x)2=11+e−x⋅(1−11+e−x)=g(x)⋅(1−g(x))
Logistic回归参数估计
假定:
P(y=1|x;θ)=hθ(x)
P(y=0|x;θ)=1−hθ(x)
则:
P(y|x;θ)=(hθ(x))y(1−hθ(x))1−y
似然函数:
L(θ)=p(→y|X;θ)=m∏i=1p(y(i)|x(i);θ)=m∏i=1(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
取对数得到:l(θ)=logL(θ)=m∑i=1y(i)logh(x(i))+(1−y(i))log(1−h(x(i)))
最后,对θ
∂l(θ)∂θj=m∑i=1(y(i)−g(θTx(i)))⋅x(i)j
参数迭代
Logistic回归参数的学习规则:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
损失函数
∴loss(yi,ˆyi)=−l(θ)
带入推导可得最终损失函数:$$\therefore loss\left ( y_i,\hat{y}i \right ) = -l\left ( \theta \right ) = - \sum{i=1}^{m}ln\left [ p_i^{y_i}\left ( 1-p_i \right )^{1-y_i} \right ] = \sum_{i=1}^{m}ln\left [ y_iln\left ( 1+e^{-f_i} \right ) + \left ( 1-y_i \right )ln\left ( 1+e^{f_i} \right )\right ]$$
Logistic回归的损失
y_i\in \left { -1,1 \right }
L(θ)=m∏i=1P(yi+1)2i(1−Pi)−(yi−1)2
loss(yi,^yi)=m∑i=1[ln(1+e−yi⋅fi)]
广义线性模型Generalized Linear Model
- y不再只是正太分布,而是扩大为指数族中的任一分布;
- x -> g(x) -> y,连接函数g单调可导,例如逻辑回归中的g(z)=11+e−z,拉伸变换g(z)=11+e−λz
Softmax回归
- K分类,第k类的参数为→θk,组成二维矩阵θk×n
- 概率:p(c=kx;θ)=exp(θTkx)∑Kl=1exp(θTlx), 其中k=1,2,……,K
- 似然函数:L(θ)=m∏l=1K∏k=1p(c=k|x(i);θ)y(i)k=K∏l=1K∏k=1(exp(θTkx(l))/K∑l=1exp(θTlx(l)))y(i)k
- 对数似然:
Jm(θ)=lnL(θ)=m∑i=1K∑k=1y(i)k⋅(θTkx(i)−lnK∑l=1exp(θTlx(i))),
J(θ)=K∑k=1yk⋅(θTkx−lnK∑l=1exp(θTlx)) - 随机梯度:
∂J(θ)∂θk=(yk−p(yk|x,θ))⋅x
鸢尾花分类
实验数据
鸢尾花数据集是最有名的模式识别测试数据,1936年模式识别先驱Fisher在其论文“The use of multiple measurements in taxonomic problems” 使用了它。数据集包括3个鸢尾花类别,每个类别有50个样本,其中一个类别与另外两类线性可分,而另外两类不能线性可分。
数据描述
该数据集包括150行,每行为1个样本,每个样本共有5个字段,分别是花萼长度,花萼宽度,花瓣长度,花瓣宽度,类别。其中类别包括Iris Setosa, Iris Versicolour,Iris Virginica三类,前四个字段的单位为cm。
实验代码
1 | # -*- coding: utf-8 -* |
1 |
|
'Accuracy: 76.67%'
结果分析
- 仅用花萼长度和宽度,在150个样本中,有115个分类正确,正确率为76.67%
- 使用四个特征,试验后发现有144个样本分类正确,正确率为96%.
案例跟踪
1 | # -*- coding: utf-8 -* |
1 | 'Accuracy: %.2f%%' % (100*float(c)/float(len(result))) |
'Accuracy: 84.21%'
分析:
- 第四节使用训练集测试,结果正确性有误
- 本实验分训练集和测试集,准确率为84.21%
Related Issues not found
Please contact @GavinHome to initialize the comment