逻辑回归与条件概率
要解释作为概率模型的逻辑回归原理,首先要介绍让步比(odds)。即某一特定事件发生的概率,让步比可以定义为
代码语言:javascript复制odds = p/(1 - p)
p代表正事件发生的概率,指的是要预测的事件。例如,病人有某种疾病的可能性,可以认为正事件的分类标签为y=1、可以进一步定义logit函数,也就是让步比的对数形式
代码语言:javascript复制logit(p) = ln(p/(1 - p))
可以用它来表示特征值和对数概率之间的线性关系:
这里的p(y=1|x)
是给定特征值x,样本分类标签为1的概率。预测某个样本属于某个特定类的概率。则是logit函数的逆函数,也被称为逻辑sigmoid函数:
其中z为净输入,是权重和样本特征的线性组合。
接下来我们用-7到7之间的一些简单的值来绘出sigmoid函数来观察具体情况
代码语言:javascript复制import numpy as np
import matplotlib.pyplot as plt
# sigmoid函数
def sigmoid(z):
return 1.0/(1.0 np.exp(-z))
# 生成从-7到7,步距为0.1的向量
z = np.arange(-7, 7, 0.1)
# sigmoid函数计算
phi_z = sigmoid(z)
plt.plot(z, phi_z)
plt.axvline(0.0, color='k')
plt.ylim(-0.1, 1.1)
plt.xlabel('z')
plt.ylabel('$phi (z)
执行这段代码,可以看到如下图所示的曲线,可知当z趋向无穷大时,sigmoid函数值趋向于1,类似的,z趋向无穷小时,sigmoid函数趋向于0。
为了更直观地理解逻辑回归模型,我们把他与Adaline联系起来。在Adaline中,我们的激活函数为恒等函数,在逻辑回归中,我们将sigmoid函数作为激活函数。sigmoid函数的输出则被解释为样本的分类标签属于1的概率。
预测概率可以通过阈值函数简单的转化为二元输出
y=1, if sigmoid(z)>=0.5
y=0, else
等同于下面的结果
y=1, if z>=0
y=0, else
学习逻辑代价函数的权重
学习了如何使用逻辑回归模型来预测概率和分类标签,现在来探究一下如何拟合模型的参数。
在建立逻辑回归模型时,我们首先定义最大似然函数L,假设数据集中每个样本都是相互独立的,公式为:
在实践中中,很容易最大化该方程的自然对数,故定义对数似然函数:
使用梯度上升等算法优化这个对数似然函数。另一个选择是改写对数似然函数作为代价函数J,用梯度下降函数最小化代价函数。L函数越趋近于1,则越拟合,所以对数似然函数越趋近于0(为负),则越拟合,因此J函数越趋近于0(为正),越小越拟合。
为了更好的理解这个代价函数,我们计算一个训练样本的代价:
如果y=1,则第二项为0,如果y=0,则第一项为0,因此代价函数可以写作:
通过下面的代码绘制这个函数的图像,可以看出,当y=1时,如果正确预测样本,则代价函数趋于0。y=0时,如果正确预测样本,则代价趋于0。反之,如果预测错误,代价就会趋于无限大。
关键就在于用越来越大的代价惩罚错误的预测。
)
# yticks函数设置刻度
plt.yticks([0.0, 0.5, 1.0])
ax = plt.gca()
ax.yaxis.grid(True)
plt.tight_layout()
plt.show()
执行这段代码,可以看到如下图所示的曲线,可知当z趋向无穷大时,sigmoid函数值趋向于1,类似的,z趋向无穷小时,sigmoid函数趋向于0。
为了更直观地理解逻辑回归模型,我们把他与Adaline联系起来。在Adaline中,我们的激活函数为恒等函数,在逻辑回归中,我们将sigmoid函数作为激活函数。sigmoid函数的输出则被解释为样本的分类标签属于1的概率。
预测概率可以通过阈值函数简单的转化为二元输出
等同于下面的结果
学习逻辑代价函数的权重
学习了如何使用逻辑回归模型来预测概率和分类标签,现在来探究一下如何拟合模型的参数。
在建立逻辑回归模型时,我们首先定义最大似然函数L,假设数据集中每个样本都是相互独立的,公式为:
在实践中中,很容易最大化该方程的自然对数,故定义对数似然函数:
使用梯度上升等算法优化这个对数似然函数。另一个选择是改写对数似然函数作为代价函数J,用梯度下降函数最小化代价函数。L函数越趋近于1,则越拟合,所以对数似然函数越趋近于0(为负),则越拟合,因此J函数越趋近于0(为正),越小越拟合。
为了更好的理解这个代价函数,我们计算一个训练样本的代价:
如果y=1,则第二项为0,如果y=0,则第一项为0,因此代价函数可以写作:
通过下面的代码绘制这个函数的图像,可以看出,当y=1时,如果正确预测样本,则代价函数趋于0。y=0时,如果正确预测样本,则代价趋于0。反之,如果预测错误,代价就会趋于无限大。
关键就在于用越来越大的代价惩罚错误的预测。
.post-copyright {
box-shadow: 2px 2px 5px;
line-height: 2;
position: relative;
margin: 40px 0 10px;
padding: 10px 16px;
border: 1px solid var(--light-grey);
transition: box-shadow .3s ease-in-out;
overflow: hidden;
border-radius: 12px!important;
background-color: var(--main-bg-color);
}
.post-copyright:before {
position: absolute;
right: -26px;
top: -120px;
content: 'f25e';
font-size: 200px;
font-family: 'FontAwesome';
opacity: .2;
}
.post-copyright__title {
font-size: 22px;
}
.post-copyright_type {
font-size: 18px;
color:var(--theme-color)
}
.post-copyright .post-copyright-info {
padding-left: 6px;
font-size: 15px;
}
.post-copyright-m-info .post-copyright-a, .post-copyright-m-info .post-copyright-c, .post-copyright-m-info .post-copyright-u {
display: inline-block;
width: fit-content;
padding: 2px 5px;
font-size: 15px;
}
.muted-3-color {
color: var(--main-color);
}
/*手机优化*/
@media screen and (max-width:800px){.post-copyright-m-info{display:none}}
------本页内容已结束,喜欢请分享------