簡介
邏輯回歸算法是一種簡單但功能強(qiáng)大的
二元線性
分類算法。需要注意的是,盡管"邏輯回歸"名字帶有“回歸”二字,但邏輯回歸是一個(gè)分類算法
,而不是回歸算法。
我認(rèn)為,邏輯回歸算法功能強(qiáng)大的原因,更在于,它不僅僅可以預(yù)測類別標(biāo)簽,而且還可以預(yù)測類別的概率。
比如說,使用邏輯回歸預(yù)測天氣,不僅僅可以預(yù)測某一天是否會(huì)下雨,還可以給出下雨的概率
。類似地,也可以使用邏輯回歸算法來預(yù)測癥狀給定的情況下患者患有某種疾病的概率
,這也是邏輯回歸在醫(yī)學(xué)領(lǐng)域廣受歡迎的原因。
邏輯回歸與條件概率
邏輯回歸是一個(gè)二元分類概率模型。下面我們主要了解一下邏輯回歸背后的主要機(jī)制。
?
p
\ p
?p:感興趣事件發(fā)生的概率(所謂感興趣,正是我們想要預(yù)測的事件,比如患者在出現(xiàn)某些癥狀時(shí)患病的概率。)
幾率(odds):是一個(gè)事件發(fā)生可能性的度量。數(shù)學(xué)表達(dá)式為:
p
1
?
p
\frac{p}{1-p}
1?pp?.
logit 函數(shù):logit函數(shù)是幾率(odds)的對數(shù)函數(shù):
?
l
o
g
i
t
(
p
)
=
log
?
p
1
?
p
\ logit(p)=\log \frac{p}{1-p}
?logit(p)=log1?pp?
這里的log是自然對數(shù)。logit函數(shù)的輸入即p是一個(gè)介于0-1之間的正數(shù),輸出即logit§為任意實(shí)數(shù)。
那如何將這里的輸出將我們的數(shù)據(jù)相聯(lián)系起來呢?
我們假設(shè)我們的輸出即logit§與每一個(gè)樣本的特征值
?
x
1
x
2
x
3
.
.
.
x
m
\ x_1 x_2 x_3...x_m
?x1?x2?x3?...xm?的加權(quán)(
?
w
T
\ w^T
?wT)和加偏置頂存在線性關(guān)系,即:
l
o
g
i
t
(
p
)
=
w
1
x
1
+
w
2
x
2
+
.
.
.
.
.
.
+
w
m
x
m
+
b
=
∑
j
=
1
m
w
j
x
j
+
b
=
w
T
x
+
b
logit(p)=w_1x_1+w_2x_2+......+w_mx_m+b=\sum_{j=1}^mw_jx_j+b=w^Tx+b
logit(p)=w1?x1?+w2?x2?+......+wm?xm?+b=∑j=1m?wj?xj?+b=wTx+b
當(dāng)我們真正感興趣的是條件概率
p
p
p,即在給定一個(gè)樣本特征的前提下求解類別標(biāo)簽為1的概率。
通過logit函數(shù),我們可以將條件概率p映射為一個(gè)實(shí)數(shù)。那反過來,我們要求p的話呢?所以,我們可以根據(jù)logit函數(shù)求解出它的逆函數(shù)。
logit函數(shù)的逆函數(shù)通常稱為logistic sigmoid函數(shù)。由于這個(gè)函數(shù)具有S形狀,因此有時(shí)也簡稱為sigmoid函數(shù):
σ
(
z
)
=
1
1
=
e
?
z
\sigma(z)=\frac{1}{1=e^{-z}}
σ(z)=1=e?z1?
這里z是凈輸入,為樣本的加權(quán)和加偏置頂:
z
=
w
T
x
+
b
z=w^Tx+b
z=wTx+b文章來源:http://www.zghlxwxcb.cn/news/detail-653007.html
繪制sigmoid函數(shù)
import matplotlib.pyplot as plt
import numpy as np
def sigmoid(z):
return 1.0/(1.0+np.exp(-z))
z=np.arange(-7,7,0.1)
sigma_z=sigmoid(z)
plt.plot(z,sigma_z)
plt.axvline(0.0,color='k')
plt.ylim(-0.1,1.1)
plt.xlabel('z')
plt.ylabel('$\sigma(z)$')
plt.yticks([0.0,0.5,1.0])
ax=plt.gca()
ax.yaxis.grid(True)
plt.tight_layout()
plt.show()
但輸入的
z
z
z為0時(shí),輸出p為0.5。當(dāng)輸入的z趨近于
+
∞
+ \infty
+∞時(shí),輸出p接近于1。當(dāng)輸入的趨近于
?
∞
- \infty
?∞時(shí),輸出p接近于1。
而且當(dāng)輸入的
z
>
0
z>0
z>0,那么p>0.5,可以判別是預(yù)測事件的發(fā)生。當(dāng)
z
<
0
z<0
z<0時(shí),可以認(rèn)為是預(yù)測事件的不發(fā)生。即對應(yīng)的二值輸出為:
y
^
=
{
1
如果
σ
(
z
)
≥
0.5
0
其他
\widehat{y}=\begin{cases} 1 如果\sigma(z)≥0.5\\ 0 其他 \end{cases}
y
?={1如果σ(z)≥0.50其他?文章來源地址http://www.zghlxwxcb.cn/news/detail-653007.html
到了這里,關(guān)于【數(shù)學(xué)建?!窟壿嫽貧w算法(Logistic Resgression)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!