邏輯回歸的Python建模方法

邏輯回歸Logistic Regression,與線性回歸均為廣義線性模型的特例。邏輯回歸的標籤(因變數)為類別型,非0即1。因此,邏輯回歸經常用來解決二分類問題。

二分類,指的就是答案只有兩種可能:是or不是;有or沒有;正常or不正常等等。

本文是簡單線性模型的Python建模方法的姊妹篇。只是把標籤換成了考試通過(1表示)或不通過(0表示)。


一、建立模型

0.準備數據

首先使用排序字典創建原始數據集,包括兩個隨機變數(特徵:x;標籤:y)。

1.提取特徵和標籤

2.分割訓練集和測試集

在提取完特徵和標籤之後,此處依然補充第一步的散點圖:

發現數據的標籤只有兩種取值,故屬於二分類問題,可採用邏輯回歸模型。

3.建立並訓練模型

此處,仍需使用numpy包,將單一特徵reshape成n行1列,變成二維數組後傳入。


二、評估模型

評估一個分類器模型最簡單有效的方法,就是看模型在測試集上的分類結果的整體準確率accuracy,它的計算方法同線性回歸模型的model.score方法一樣,只不過這裡得到的是準確率值。

由上圖看出,準確率為75%,還不錯。

接下來看看模型在測試集上的預測結果:

從上圖很難一眼看出哪個結果預測對了,哪個結果預測錯誤,所以下面就可視化一下。圖中的藍色點表示訓練集,紅色點表示測試集,綠色點為了看出效果,其預測概率值做了微調(減去0.02),這樣便可以方便的看出,有三個紅點和綠點重合了,代表預測正確,而有1個紅點和綠點分布在兩極,故有1個預測錯誤。

下面計算一下,模型對新輸入的特徵(學習時間從0小時--4小時),所得到的預測概率值的大小,一般情況下會得到兩個概率值,第一個值代表:輸出結果為0的概率值;第二個值代表:輸出結果為1的概率值。

由圖可見,標籤為1的概率值與0.5進行比較,如果大於等於0.5,則會輸出1,即考試通過;否則反之。

那麼這個概率值是怎麼得到的呢?

它是通過邏輯函數得來的,實現過程如下圖:

同樣,模型的輸出結果也可以通過下圖查看:


三、總結

model.predict(x_train)→模型預測結果(標籤)

model.predict_proba(x_train)→模型預測概率值[標籤為0的概率值,標籤為1的概率值]


推薦閱讀:

Python環境下的8種簡單線性回歸演算法
飽漢不知餓漢飢、會編程的不懂初學者的苦。
從源碼編譯 Python
為什麼網路爬蟲好難,涉及到的知識我不會?

TAG:Python | 邏輯回歸 |