機器學習入門基礎——邏輯回歸

一、什麼是邏輯回歸?

邏輯回歸是應用非常廣泛的一個分類機器學習演算法,它將數據擬合到一個logistic函數中,從而能夠完成對事件發生的概率進行預測。

  • 邏輯回歸不是回歸模型,而是用來處理標籤為二分類問題的模型,也就是用0和1標籤來區分問題的結果;
  • 分類問題的本質將訓練數據的特徵和標籤轉化為決策面;
  • 邏輯回歸函數:含有邏輯函數和線性回歸函數;

邏輯函數

回歸函數

  • 邏輯函數的值表示概率,當 y geq 0.5 時,特徵值= 1,當 y < 0.5,特徵值= 0;
  • 通過模型給出的決策面進行預測。

二、評估模型

預測分類結果的有效性需用到正確率進行評估,評估模型演算法的正確率是用預測正確的測試數目除以總的測試數目。

正確率 = frac{正確分類個數}{數據總數} *100%

三、用Python實現邏輯回歸分類

以下通過一個小案例來,來進行演示(與線性回歸案例和步驟是一樣的)

1.創建數據集

#導入包:from collections import OrderedDictimport pandas as pd#創建數據集:examDict={ 學習時間:[0.50,0.75,1.00,1.25,1.50,1.75,1.75,2.00,2.25, 2.50,2.75,3.00,3.25,3.50,4.00,4.25,4.50,4.75,5.00,5.50], 考試結果: [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1]}examOrderDict=OrderedDict(examDict)exam=pd.DataFrame(examOrderDict)#查看前五行:exam.head()

2.判斷是否複合邏輯回歸模型

通過繪製散點圖判斷:

#提取特徵和標籤#特徵featuresexam_X = examDf.loc[:,學習時間]#標籤labelsexam_y = examDf.loc[:,通過考試]#導入包import matplotlib.pyplot as plt#繪製散點圖plt.scatter(exam_X, exam_y, color = green)#設定X,Y軸標籤和titleplt.ylabel(Hours)plt.xlabel(Pass)plt.title(exam data)#顯示圖像plt.show()

從上面的散點圖可以看出,已經不適合用線性回歸來擬合了,散點圖的標籤值是0或1,符合邏輯回歸模型。

3.分割數據

將數據分為訓練數據和測試數據:

4.建立模型,開始訓練

#因為模型特徵只有一個,將訓練數據和測試數據轉換為二維數值X_train = X_train.values.reshape(-1, 1)X_test = X_test.values.reshape(-1, 1)#導入模型from sklearn.linear_model import LogisticRegression#創建模型model = LogisticRegression()#訓練模型model.fit(X_train, Y_train)

5.評估模型

1)、先查看訓練數據和測試數據的散點圖:

從散點圖可以看出,訓練數據和測試數據的選取都是隨機生成的。

2)、建立模型,訓練模型

#1.導入邏輯回歸from sklearn.linear_model import LogisticRegression#2.創建模型:邏輯回歸model = LogisticRegression()#3.訓練模型model.fit(X_train, y_train)

3)、測試模型的準確率:

測試結果為0.5,說明預測準確率不夠好,但因為數據量太小了以及以及隨機選取數據都會影響準確率的因素。

4)、預測:

由上圖看出,當輸入一個特徵時,可以返回其概率值的數組,數組的第一個是其為0的概率值,第二個是為1的概率值。

具體如下:

根據我們的決策面的結果,也就是x=3時,我們的logistic的函數值為1的概率值。當這個值大於0.5的時候,我們做出決策,認為它的值為1,當這個概率值小於0.5的時候,我們做出決策,認為它的值為0。

在本次案例中,預測的概率值為0.64,在此模型下可以做出決策,標籤值為1,即通過考試。通過上文定義的字典數據可以發現,此決策是正確的。

好了,本文這裡只是對機器學習入門中邏輯回歸學習的梳理和回顧,本次的案例只是最初級的入門邏輯回歸的應用,還來許多更精深更難內容等著我們去學習。


推薦閱讀:

Python從零開始系列連載(6)——Python的基本數據類型(中)
【Python3網路爬蟲開發實戰】2.3-爬蟲的基本原理
Python爬取今日頭條江歌案新聞
用Python打造在線盈利的項目-代理服務
Home Assistant 更新說明 —— 0.65

TAG:機器學習 | Python |