前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于逻辑回归的分类概率建模

基于逻辑回归的分类概率建模

作者头像
Andromeda
发布2023-10-21 11:16:01
2030
发布2023-10-21 11:16:01
举报
文章被收录于专栏:Andromeda的专栏

逻辑回归与条件概率

要解释作为概率模型的逻辑回归原理,首先要介绍让步比(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}}



------本页内容已结束,喜欢请分享------
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 逻辑回归与条件概率
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档