機(jī)器學(xué)習(xí)第六周-邏輯回歸

logistic回歸與多重線性回歸實(shí)際上有很多相同之處,最大的區(qū)別就在于他們的因變量不同,其他的基本都差不多,正是因為如此,這兩種回歸可以歸于同一個家族,即廣義線性模型(generalized linear model)。這一家族中的模型形式基本上都差不多,不同的就是因變量不同,如果是連續(xù)的,就是多重線性回歸,如果是二項分布,就是logistic回歸,如果是poisson分布,就是poisson回歸,如果是負(fù)二項分布,就是負(fù)二項回歸,等等。只要注意區(qū)分它們的因變量就可以了。

logistic回歸的因變量可以是二分類的,也可以是多分類的,但是二分類的更為常用,也更加容易解釋。所以實(shí)際中最為常用的就是二分類的logistic回歸。

邏輯回歸是用來做分類算法的,大家都熟悉線性回歸,一般形式是Y=aX+b,y的取值范圍是[-∞, +∞],有這么多取值,怎么進(jìn)行分類呢?不用擔(dān)心,偉大的數(shù)學(xué)家已經(jīng)為我們找到了一個方法。

也就是把Y的結(jié)果帶入一個非線性變換的Sigmoid函數(shù)中,即可得到[0,1]之間取值范圍的數(shù)S,S可以把它看成是一個概率值,如果我們設(shè)置概率閾值為0.5,那么S大于0.5可以看成是正樣本,小于0.5看成是負(fù)樣本,就可以進(jìn)行分類了。



損失函數(shù)

邏輯回歸的損失函數(shù)是?log loss,也就是對數(shù)似然函數(shù),函數(shù)公式如下:


公式中的 y=1 表示的是真實(shí)值為1時用第一個公式,真實(shí) y=0 用第二個公式計算損失。為什么要加上log函數(shù)呢?可以試想一下,當(dāng)真實(shí)樣本為1是,但h=0概率,那么log0=∞,這就對模型最大的懲罰力度;當(dāng)h=1時,那么log1=0,相當(dāng)于沒有懲罰,也就是沒有損失,達(dá)到最優(yōu)結(jié)果。所以數(shù)學(xué)家就想出了用log函數(shù)來表示損失函數(shù)。

最后按照梯度下降法一樣,求解極小值點(diǎn),得到想要的模型效果。


代碼實(shí)現(xiàn):

from sklearn import datasets

from sklearn.cross_validation import train_test_split

from sklearn.linear_model import LogisticRegression

cancer =datasets.load_breast_cancer()

cancer_X=cancer.data

print(cancer_X.shape)

cancer_y=cancer.target

print(cancer_y.shape)

X_train,X_test,y_train, y_test=train_test_split(

? ? cancer_X,cancer_y,test_size=0.3)

clf = LogisticRegression()

clf.fit(X_train,y_train)

clf_y_predict = clf.predict(X_test)

print(clf_y_predict)

score=clf.score(X_test,y_test)

print(score)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容