邏輯回歸的重要性
邏輯回歸最重要的應用就是二分類問題,而分類問題則是我們生活中非常常見的,比如將有用的郵件和垃圾郵件進行分類;信用卡發卡機構根據用戶消費行為決定是否發放信用卡;歌曲播放器根據用戶喜歡的歌曲特點選擇是否將新歌推薦給用戶,諸如此類的種種涉及分類的演算法都和邏輯回歸密切相關。下面是邏輯回歸的示意圖:
從圖中可以看到,不規則的曲線就是決策面,也就是不同種顏色小球的分界線,這條分界線的數學表達式就是邏輯回歸函數。有人會困惑,邏輯回歸到底是怎麼回事,為什麼用線性回歸曲線來擬合結果就不可以呢?
首先我們先來思考一個問題,假如已知考試時間和考試通過的一組數據如下圖:
然後我們對這一組數據進行線性擬合,畫出的擬合函數圖像如下圖所示:
看到了吧,擬合直線非常奇怪,或者說根本用直線就沒辦法擬合我們的數據。因為數據是離散的,而且只有兩個值0或者1,所以是無法用線性函數來對數據進行擬合的。那麼有沒有別的辦法呢?當然有了,我們需要將自變數進行變換,也就是將自變數通過數學運算,帶入邏輯函數中,然後映射出在邏輯函數的值域範圍內的一個值,這個值代表的的是該考試通過的概率值,邏輯函數最大的特點是可以以0.5為邊界來分類,所以我們可以將概率值大於0.5的認為是通過考試,概率值小於0.5的認為是未通過考試。這樣通過邏輯函數我們就實現了在概率的範圍內對離散變數進行分類的問題。
弄明白邏輯回歸的原理後我們在python上實踐一下邏輯回歸分類的過程:
首先我們需要提取數據的特徵和標籤,也就是得先知道自變數和因變數,這裡我們還用學生學習時間好考試是否來進行邏輯回歸預測判斷。
首先可以用下面兩行代碼來提取特徵和標籤:
有了特徵標籤後我們得將這些數據進行拆分,我們需要用大部分數據來進行訓練模型,也就是獲得一個比較精準的模型,然後用少部分數據來進行預測,檢測我們的模型建立的是否合理。具體如下:
上圖僅僅是將我們要訓練和測試的數據進行可視化了,下面就開始訓練模型,也就是建模:
上面這幾行代碼就是採用邏輯回歸演算法進行模型訓練,我們可以直接在程序中看到邏輯回歸模型的參數:
得到模型後我們可以用以下代碼來進行考試結果預測估計:
以上操作我們就完成了簡單的邏輯回歸的基本過程,但是邏輯回歸從數學層面上來講還是有一些難以理解的地方,想要更深入的來了解邏輯回歸的童鞋可以參考以下兩篇文章,講解的會更加詳細和深入一些:
https://blog.csdn.net/bxhsix/article/details/51524436
https://blog.csdn.net/han_xiaoyang/article/details/49123419
推薦閱讀: