逻辑回归与条件概率
要解释作为概率模型的逻辑回归原理,首先要介绍让步比(odds)。即某一特定事件发生的概率,让步比可以定义为
odds = p/(1 - p)
p代表正事件发生的概率,指的是要预测的事件。例如,病人有某种疾病的可能性,可以认为正事件的分类标签为y=1、可以进一步定义logit函数,也就是让步比的对数形式
logit(p) = ln(p/(1 - p))
可以用它来表示特征值和对数概率之间的线性关系:
这里的p(y=1|x)
是给定特征值x,样本分类标签为1的概率。预测某个样本属于某个特定类的概率。则是logit函数的逆函数,也被称为逻辑sigmoid函数:
其中z为净输入,是权重和样本特征的线性组合。
接下来我们用-7到7之间的一些简单的值来绘出sigmoid函数来观察具体情况
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。反之,如果预测错误,代价就会趋于无限大。
关键就在于用越来越大的代价惩罚错误的预测。
------本页内容已结束,喜欢请分享------