机器学习-逻辑斯蒂回归与最大熵模型概述-数学推导及乳腺癌数据分类python实现

文章目录

    • 1. 逻辑蒂斯回归
      • 1.1 二项逻辑斯蒂回归模型
      • 1.2 逻辑蒂斯回归模型的特点
      • 1.3 模型参数估计
    • 2. 最大熵模型
      • 2.1最大熵模型(Maximum Entropy Model)
      • 2.2 定义最大熵模型
    • 3. Python实现
      • 3.1 数据集
      • 3.2 代码及运行结果
    • 4. 总结

1. 逻辑蒂斯回归

逻辑蒂斯回归(logistic regression)是统计学习中的经典分类方法。属于概率性判别模型。其基本思路是:给定输入实例 X X X,分别利用二项逻辑蒂斯回归模型计算 P ( Y = 1 ∣ x ) P(Y=1|x) P(Y=1∣x) P ( Y = 0 ∣ x ) P(Y=0|x) P(Y=0∣x),比较两个概率的大小,将 X X X分类到概率大的一类。算法特点:通过逻辑斯谛回归模型的定义式 P ( Y = 1 ∣ x ) P(Y=1|x) P(Y=1∣x) 可以将线性函数 ω ∗ x ω*x ωx转换为概率值,线性函数值ω*x越接近正无穷,概率值越接近为1,线性函数越接近负无穷,概率值越接近为0。

1.1 二项逻辑斯蒂回归模型

二项逻辑斯蒂回归模型(binomial logistic regression model)是一种分类模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(YX)表示,形式为参数化的逻辑斯蒂分布。这里,随机变量X取值为实数,随机变量 Y Y Y取值为1或0。二项逻辑斯蒂回归模型是如下的条件概率分布:
P ( Y = 1 ∣ x ) = exp ⁡ ( ω ⋅ x + b ) 1 + exp ⁡ ( ω ⋅ x + b ) P(Y=1 \mid x)=\frac{\exp (\omega \cdot x+b)}{1+\exp (\omega \cdot x+b)} P(Y=1x)=1+exp(ωx+b)exp(ωx+b) P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( ω ⋅ x + b ) P(Y=0 \mid x)=\frac{1}{1+\exp (\omega \cdot x+b)} P(Y=0x)=1+exp(ωx+b)1
x ∈ R n x\in\R^{n} xRn为输入, Y ∈ { 0 , 1 } Y \in\{0,1\} Y{0,1}为输出, ω ∈ R n \omega\in\R^{n} ωRn和b \in R^{n}为参数, ω \omega ω为权值向量, b b b为偏置。将权值向量和输入向量加以补充,得:
P ( Y = 1 ∣ x ) = exp ⁡ ( ω ⋅ x ) 1 + exp ⁡ ( ω ⋅ x ) P(Y=1 \mid x)=\frac{\exp (\omega \cdot x)}{1+\exp (\omega \cdot x)} P(Y=1x)=1+exp(ωx)exp(ωx) P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( ω ⋅ x ) P(Y=0 \mid x)=\frac{1}{1+\exp (\omega \cdot x)} P(Y=0x)=1+exp(ωx)1

1.2 逻辑蒂斯回归模型的特点

引入几率的概念:事件发生的概率与事件不该发生的概率的比值。逻辑蒂斯回归模型的对数几率:
log ⁡ P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = ω ⋅ x \log \frac{P(Y=1 \mid x)}{1-P(Y=1 \mid x)}=\omega \cdot x log1P(Y=1x)P(Y=1x)=ωx
模型实际的 ω \omega ω x x x的取值是没有范围限制的,所以对几率取对数,实现将对数线性函数 ω ∗ x \omega*x ωx转换为概率值,线性函数的值越接近正无穷,概率值就越接近1,线性函数的值越接近负无穷,概率值就越接近0。

1.3 模型参数估计

采用极大似然法估计模型参数 ω \omega ω,以对数似然函数为目标的最优化问题的方法采用梯度下降法和拟牛顿法。
设:
P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1 \mid x)=\pi(x), \quad P(Y=0 \mid x)=1-\pi(x) P(Y=1x)=π(x),P(Y=0x)=1π(x)
似然函数为:
∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^{N}\left[\pi\left(x_{i}\right)\right]^{y_{i}}\left[1-\pi\left(x_{i}\right)\right]^{1-y_{i}} i=1N[π(xi)]yi[1π(xi)]1yi
对数似然函数为:
L ( ω ) = ∑ i = 1 N [ y i log ⁡ π ( x i ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i log ⁡ π ( x i ) 1 − π ( x i ) + log ⁡ ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i ( ω ⋅ x i ) − log ⁡ ( 1 + exp ⁡ π ( ω ⋅ x i ) ) ] \begin{aligned} L(\omega) &=\sum_{i=1}^{N}\left[y_{i} \log \pi\left(x_{i}\right)+\left(1-y_{i}\right) \log \left(1-\pi\left(x_{i}\right)\right)\right] \\ &=\sum_{i=1}^{N}\left[y_{i} \log \frac{\pi\left(x_{i}\right)}{1-\pi\left(x_{i}\right)}+\log \left(1-\pi\left(x_{i}\right)\right)\right] \\ &=\sum_{i=1}^{N}\left[y_{i}\left(\omega \cdot x_{i}\right)-\log \left(1+\exp \pi\left(\omega \cdot x_{i}\right)\right)\right] \end{aligned} L(ω)=i=1N[yilogπ(xi)+(1yi)log(1π(xi))]=i=1N[yilog1π(xi)π(xi)+log(1π(xi))]=i=1N[yi(ωxi)log(1+expπ(ωxi))]
L ( ω ) L(\omega) L(ω)求极大值,得到 ω \omega ω的估计值 ω ^ \hat{\omega} ω^
那么学习到的逻辑蒂斯回归模型为:
P ( Y = 1 ∣ x ) = exp ⁡ ( ω ^ ⋅ x ) 1 + exp ⁡ ( ω ^ ⋅ x ) P(Y=1 \mid x)=\frac{\exp (\hat{\omega} \cdot x)}{1+\exp (\hat{\omega} \cdot x)} P(Y=1x)=1+exp(ω^x)exp(ω^x) P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( ω ^ ⋅ x ) P(Y=0 \mid x)=\frac{1}{1+\exp (\hat{\omega} \cdot x)} P(Y=0x)=1+exp(ω^x)1

2. 最大熵模型

2.1最大熵模型(Maximum Entropy Model)

是一种生成模型,是概率模型学习中一个准则。其思想为:在学习概率模型时,所有可能的模型中熵最大的模型是最好的模型;若概率模型需要满足一些约束,则最大熵原理就是在满足已知约束的条件集合中选择熵最大模型。最大熵原理指出,对一个随机事件的概率分布进行预测时,预测应当满足全部已知的约束,而对未知的情况不要做任何主观假设。在这种情况下,概率分布最均匀,预测的风险最小,因此得到的概率分布的熵是最大。

最大熵模型假设分类模型是一个条件概率分布 P ( X ∣ Y ) P(X|Y) P(XY) X X X为特征, Y Y Y为输出。在给定训练集的情况下,我们可以得到总体联合分布 P ( X , Y ) P(X,Y) P(X,Y)的经验分布和边缘分布 P ( X ) P(X) P(X)的经验分布 P ~ ( X ∣ Y ) \widetilde{P}(X|Y) P (XY) P ~ ( X ) \widetilde{P}(X) P (X)
用特征函数 f ( x , y ) f(x,y) f(x,y)描述输入 x x x和输出 y y y之间的某一个事实。定义为:
f ( x , y ) = { 1 , x  与  y  满足某一事实  0 ,  否  f(x, y)=\left\{\begin{array}{c} 1, x \text { 与 } y \text { 满足某一事实 } \\ 0, \text { 否 } \end{array}\right. f(x,y)={1,x  y 满足某一事实 0,  
它是一个二值函数,当 x x x, y y y满足事实时取1,否则取值为0。例如,if y=”乘坐”and next x=”bus” 此时 f f f取值为1 。
这个特征函数表征样本 X X X特征中对 Y Y Y的影响,形式化表示 X X X的相关知识信息。

2.2 定义最大熵模型

假设满足所有约束条件的模型集合为:
C ≡ { P ∈ p ∣ E P ( f i ) = E P ~ ( f i ) } , i = 1 , 2 … , n C \equiv\left\{P \in p \mid E_{P}\left(f_{i}\right)=E_{\widetilde{P}}\left(f_{i}\right)\right\}, i=1,2 \ldots, n C{PpEP(fi)=EP (fi)},i=1,2,n
定义在条件概率分布 P ( X ∣ Y ) P(X|Y) P(XY)上的条件熵为:
H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x ) H(P)=-\sum_{x, y} \widetilde{P}(x) P(y \mid x) \log P(y \mid x) H(P)=x,yP (x)P(yx)logP(yx)
则模型集合 C C C中条件熵 H ( P ) H(P) H(P)最大的模型成为最大熵模型。

3. Python实现

3.1 数据集

采用breast cancer 数据,在线性分类中调用LogisticRegression函数进行逻辑蒂斯回归。

3.2 代码及运行结果

程序运行结果:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
cancer =datasets.load_breast_cancer()
cancer_X=cancer.data
cancer_y=cancer.target
X_train,X_test,y_train, y_test=train_test_split(
    cancer_X,cancer_y,test_size=0.2)

clf = LogisticRegression(max_iter=3000)#最大迭代次数
clf.fit(X_train,y_train)
clf_y_predict = clf.predict(X_test)
score=clf.score(X_test,y_test)
print('检测准确率:',score)

在这里插入图片描述

4. 总结

逻辑蒂斯回归模型是一种对数线性模型。经典的逻辑斯蒂回归模型(LR)可以用来解决二分类问题,但是它输出的并不是确切类别,而是一个概率,为判别模型。判别某类输出的概率。该模型计算代价不高,但是容易欠拟合,分类精度不高。
最大熵模型获取满足所有约束条件的模型中信息熵极大的模型,分类准确率,但也受约束函数数量和样本数量的影响,迭代过程的计算量大。

你可能感兴趣的:(机器学习,回归,分类)