机器学习Logistic回归---学习笔记
Posted 等秃了就去学算法
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习Logistic回归---学习笔记相关的知识,希望对你有一定的参考价值。
Logistic回归学习笔记
Logistic回归学习线路
预备知识:建议先去B站学习一下信息量,熵,BL散度,交叉熵的概念。
推荐B站视频:“交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵”
信息量(Information)指的是一个事件所包含的信息的多少,通常用以2为底的对数表示。比如说,如果一个事件发生的概率是1/8,那么这个事件的信息量就是log2(1/8)=-3,因为需要三个比特才能表示它。
熵(Entropy)是一个系统或信源中不确定性的度量,也可以理解为信息的平均量。在信息论中,熵越大表示系统或信源越难以预测,因此包含的信息越多。比如说,一堆硬币正反面朝上的情况有很多种可能性,因此它们的熵比一堆已知全是正面朝上的硬币要高。
KL散度(Kullback-Leibler
divergence),又称相对熵,是衡量两个概率分布之间差异的一种方式。KL散度是非负的,并且当且仅当两个分布完全相同时取值为0。
交叉熵(Cross-entropy)是一种用来比较两个概率分布之间差异的方法,它通常用于评估分类模型的性能。与KL散度类似,交叉熵也是非负的,当且仅当两个分布相等时取值为0。
本节知识导图
Logistic回归的函数模型
逻辑回归是一个分类模型
它可以用来预测某件事发生是否能够发生。分类问题是生活中最常见的问题:
-
生活中:比如预测上证指数明天是否会上涨,明天某个地区是否会下雨,西瓜是否熟了
-
金融领域:某个交易是否涉嫌违规,某个企业是否目前是否违规,在未来一段时间内是否会有违规
-
互联网:用户是否会购买某件商品,是否会点击某个内容
对于已知的结果,上面问题的回答只有:0,1 。
我们以以下的一个二分类为例,对于一个给定的数据集,存在一条直线可以将整个数据集分为两个部分:
此时,决策边界为
w
1
x
1
+
w
2
x
2
+
b
=
0
w_1x_1+w_2x_2+b=0
w1x1+w2x2+b=0,此时我们很容易将
h
(
x
)
=
w
1
x
1
+
w
2
x
2
+
b
>
0
h(x)=w_1x_1+w_2x_2+b>0
h(x)=w1x1+w2x2+b>0的样本设置为1,反之设置为0。但是这其实是一个感知机的决策过程。
逻辑回归在此基础上还需要在加上一层,找到分类概率与输入变量之间的关系,通过概率来判断类别。
回顾一下线性回归模型:
h
(
x
)
=
w
T
x
+
b
h(x)=w^Tx+b
h(x)=wTx+b在线性模型的基础上加上一个函数
g
g
g,即
h
(
x
)
=
g
(
w
T
x
+
b
)
h(x)=g(w^Tx+b)
h(x)=g(wTx+b)。这个函数就是sigmoid函数,也叫做logistic函数
g
(
z
)
=
1
1
+
e
−
z
g(z)=\\frac11+e^-z
g(z)=1+e−z1
它可以将一个线性回归中的结果转化为一个概率值。此时
h
(
x
)
h(x)
h(x)表示的就是某件事发生的概率,我们也可以记为
p
(
Y
=
1
∣
x
)
p(Y=1|x)
p(Y=1∣x)
可以看下sigmoid函数的图像:
总结:这样,我们便得到Logistic模型
h
(
x
)
h(x)
h(x)的表达式
h
(
x
)
=
1
1
+
e
−
w
T
x
+
b
h(x) = \\frac11+e^-w^Tx+b
h(x)=1+e−wTx+b1
:
h
(
x
i
)
h(x_i)
h(xi)的意义在于 样本
x
i
x_i
xi的标签为1的概率为
h
(
x
)
h(x)
h(x)
损失最小化架构
从概率论、统计学角度来看损失最小化架构:
在统计学中,假设我们已经有了一组样本(X,Y),为了计算出能够产生这组样本的参数。通常我们会采用最大似然估计的方法(一种常用的参数估计的方法)。使用到最大似然估计的话,我们还要一个假设估计,这里我们就是假设
Y
Y
Y是服从于伯努利分布的。
P
(
Y
=
1
∣
x
)
=
p
(
x
)
P(Y=1|x)=p(x)
P(Y=1∣x)=p(x)
P
(
Y
=
0
∣
x
)
=
1
−
p
(
x
)
P(Y=0|x)=1-p(x)
P(Y=0∣x)=1−p(x)由于
Y
Y
Y服从于伯努利分布,我们很容易就有似然函数:
L
=
∏
[
p
(
x
i
)
y
i
]
[
1
−
p
(
x
i
)
]
(
1
−
y
i
)
L=\\prod[p(x_i)^y_i][1-p(x_i)]^(1-y_i)
L=∏[p(xi)yi][1−p(xi)](1−yi)为了求解我们可以两边取对数:
l
o
g
L
=
∑
[
y
i
l
o
g
(
p
(
x
i
)
)
+
(
1
−
y
i
)
l
o
g
(
1
−
p
(
x
i
)
)
]
logL = \\sum [y_ilog(p(x_i))+(1-y_i)log(1-p(x_i))]
logL=∑[yilog(p(xi))+(1−yi)log(1−p(xi))]
最大似然估计其实就是取概率的概率最大的那个概率模型:这么说你可能不懂,换种方式, ∏ p ( h ( x i ) ∣ θ ) \\prod p(h(x_i)|\\theta) ∏p(h(xi)∣θ),已有概率模型 h ( x ) h(x) h(x)在现有样本 θ \\theta θ的条件下,计算出值越大,越说明 h ( x ) h(x) h(x)最接近理论概率模型
我们一般喜欢取式子的最小值,所以将原式子转化一下
m
i
n
(
−
l
o
g
L
)
=
m
i
n
−
∑
[
y
i
l
o
g
(
p
(
x
i
)
)
+
(
1
−
y
i
)
l
o
g
(
1
−
p
(
x
i
)
)
]
min(-logL) =min -\\sum [y_ilog(p(x_i))+(1-y_i)log(1-p(x_i))]
min(−logL)=min−∑[yilog(p(xi))+(1−yi)log(1−p(xi))]
这里的 p ( x i ) p(x_i) p(xi)对应的就是 h ( x i ) h(x_i) h(xi)
从信息量,熵的角度来看损失最小化架构:
KL散度:当 D K L = 0 D_KL=0 DKL=0时,P模型=Q模型,我们追求的就是我们所构建的Q模型(也就是 h ( x ) h(x) h(x))接近真实P模型(这里是样本的理论模型, p i 为 p_i为 pi为样本频率)
没错,根据吉布斯不等式,交叉熵
≥
\\geq
≥ P系统的熵,所以当我们取交叉熵的最小值时,Q模型越接近真实的理论P模型,又知道,信息量的定义是
f
:
=
−
l
o
g
2
x
f:=-log_2x
f:=−log2x
所以带入原式子,交叉熵为:
−
∑
i
=
1
m
p
i
l
o
g
2
x
-\\sum_i=1^mp_ilog_2x
−i=1∑ng机器学习视频笔记 ——logistic回归
ng机器学习视频笔记(四)
——logistic回归
(转载请附上本文链接——linhxx)
一、概述
1、基本概念
logistic回归(logistic regression),是一个分类(classification)算法(注意不是回归算法,虽然有“回归”二字),用于处理分类问题,即结果是离散的。另外,由于有固定的结果,其是监督学习算法。
例如,预测天气、预测是否通过考试等,结果是离散的值,而预测房价这种就属于“回归”算法要解决的问题,而不是分类算法解决的问题。
2、公式
现在考虑只有两种结果情况下的logistic回归,结果只有0和1两种,即预测事件是否发生,1表示发送,0表示不发生。其h函数公式如下图所示:
其中,g函数又层S型函数(sigmoid function)。易知g函数范围:0<=g(z)<=1。
函数图像如下:
h(x)=g(z)的值,表示y=1的概率。即h(x)=p(y=1|x; θ)。y=1表示事件发生。因此h函数的结果即为事件发生的概率。
由于事件只有发生和不发生两种状态,因此,事件发生+事件不发生的概率为1,即如下公式:
二、决策边界
决策边界(decision boundary)表示h(x)=0时的x的表达式。
由于h函数是表示事件发生的概率,但是事件只有发生和不发生两种情况,因此需要将预测计算的概率和最终的结果联系起来。由于概率在0~1分布,因此,可以认为当h(x)>=0.5时,y=1。即h(x)>=0.5时,预测事件发生。同理,h(x)<0.5时,预测结果是y=0,即事件不会发生。即,只有两个结果的情况下,一个结果发生的概率超过一半,则认为其会发生。
另外,由上面g(z)函数的图,可以知道,当z>=0时g(z)>=0.5,因此,z>=0时y=1。根据样本集的分布,决策边界可以分为线性的和非线性的。
三、代价函数
1、不能使用线性回归的代价函数公式
根据下图所示线性回归的代价函数,把h(x)用上面的1/(1+e-z)带入,求出来的结果,会是一个存在非常多极小值的函数,这样的代价函数称为非凸函数(non-convex)。
非凸函数的缺点在于,其极小值很多。根据梯度下降法,可以知道梯度下降只能求得极小值,因此对于非凸函数而言,最终得到的很可能是一个非最优化的代价函数,即预测结果可能很差,因此,需要对此公式进行变换。
2、公式
变换后的公式如上述所示。
3、公式分析
1)y=1
y=1时代价函数cost(h(x),y)=-log(h(x)),此时的函数图如下:
即,当y=1且预测结果h(x)=1时,代价是0;当h(x)=0时代价是正无穷大。
这个很好理解,因为事件只有发生和不发生,y=1表示真实情况下事件是发生的,此时如果预测也是发生则没有代价,如果预测是不发生则完全错误,代价非常大。由于h(x)>=0.5时结果都会当作发生,因此当h(x)<0.5时代价会陡增。
2)y=0
y=0时代价函数cost(h(x),y)=-log(1-h(x)),函数图如下:
分析过程同y=1。
4、简化代价函数
由于y只有0、1两种情况,此时代价函数可以简化,如下:
这个就是把上面的情况整合进来,把y=0、y=1带入则还是原来的式子。
四、梯度下降算法
方式同线性回归,不断迭代下面的式子,需要注意的是,当有多个特征,要一次性计算出所有的θ,同时带入。
另外,当特征值很大时,需要考虑特征缩放。
此外,除了梯度下降算法,还可以使用共轭梯度法(conjugate gradient)、变尺度法(BFGS)、限制变尺度法(L-BFGS)等,这些算法的共同点是不需要认为的选择α、收敛速度快,但是缺点是过程非常复杂。
五、一对多分类
当分类的结果有多种,而不仅仅是事件发生和不发生,例如预测天气,有晴、阴、雨等多种情况,此时称为一对多分类 (one-vs-all、one-vs-rest)。
这种情况下,采用的方法是,把结果拆成多种,每种的事件发生是1、不发生是0。分类图如下:
例如,预测明天的天气,把y=1、2、3(三角形、红叉、正方形)分别表示晴、阴、雨三种天气,则逐个进行预测,当预测是否晴天,y=1看作一类,y=2、3看作一类进行讨论。
其他情况类推。
此时,分别计算出h(x)=p(y=i|x; θ) (i=1,2,3)的概率,并得出最大概率是分到哪类。
——written by linhxx
更多最新文章,欢迎关注微信公众号“决胜机器学习”,或扫描右边二维码。
以上是关于机器学习Logistic回归---学习笔记的主要内容,如果未能解决你的问题,请参考以下文章