5個原因告訴你:為什麼在成為資料科學家之前,“邏輯迴歸”是第一個需要學習的
在幾年之前,我踏進了資料科學的大門。之前還是軟體工程師的時候,我是最先開始在網上自學的(在開始我的碩士學位之前)。我記得當我搜集網上資源的時候,我看見的只有玲琅滿目的演算法名稱—線性迴歸,支援向量機(SVM),決策樹(DT),隨即森林(RF),神經網路等。對於剛剛開始學習的我來說,這些演算法都是非常有難度的。但是,後來我才發現:要成為一名資料科學家,最重要的事情就是了解和學習整個的流程,比如,如何獲取和處理資料,如何理解資料,如何搭建模型,如何評估結果(模型和資料處理階段)和優化。為了達到這個目的,我認為從邏輯迴歸開始入門是非常不錯的選擇,這樣不但可以讓我們很快熟悉這個流程,而且不被那些高大上的演算法所嚇倒。
因此,下面將要列出5條原因來說明為什麼最開始學習邏輯迴歸是入門最好的選擇。當然,這只是我個人的看法,對於其他人可能有更快捷的學習方式。
1. 因為模型演算法只是整個流程的一部分
像我之前提到的一樣,資料科學工作不僅僅是建模,它還包括以下的步驟:

可以看到,“建模” 只是這個重複過程的一部分而已。當開展一個數據產品的時候,一個非常好的實踐就是首先建立你的整個流程,讓它越簡單越好,清楚地明白你想要獲得什麼,如何進行評估測試,以及你的baseline是什麼。隨後在這基礎上,你就可以加入一些比較炫酷的機器學習演算法,並知道你的效果是否變得更好。
順便說下,邏輯迴歸(或者任何ML演算法)可能不只是在建模部分所使用,它們也可能在 資料理解 和 資料準備 的階段使用,填補缺失值就是一個例子。
2. 因為你將要更好地理解機器學習
我想當大家看到本篇的時候,第一個想要問的問題就是: 為什麼是邏輯迴歸,而不是線性迴歸 。真相其實是都無所謂,理解了機器學習才是最終目的。說到這個問題,就要引出監督學習的兩個型別了,分類(邏輯迴歸)和迴歸(線性迴歸)。當你使用邏輯迴歸或者線性迴歸建立你整個流程的時候(越簡單越好),你會慢慢地熟悉機器學習裡的一些概念,例如監督學習v.s非監督學習,分類v.s迴歸,線性v.s非線性等,以及更多問題。你也會知道如何準備你的資料,以及這過程中有什麼挑戰(比如填補缺失值和特徵選擇),如何度量評估模型,是該使用準確率,還是精準率和召回率,RUC AUC?又或者可能是 “均方差”和“皮爾遜相關”?所有的概念都都是資料科學學習過程中非常重要的知識點。等慢慢熟悉了這些概念以後,你就可以用更復雜的模型或者技巧(一旦你掌握了之後)來替代你之前的簡單模型了。
3. 因為邏輯迴歸有的時候,已經足夠用了
邏輯迴歸是一個非常強大的演算法,甚至對於一些非常複雜的問題,它都可以做到遊刃有餘。拿MNIST舉例,你可以使用邏輯迴歸獲得95%的準確率,這個數字可能並不是一個非常出色的結果,但是它對於保證你的整個流程工作來說已經足夠好了。 實際上,如果說能夠選擇正確且有代表性的特徵,邏輯迴歸完全可以做的非常好。
當處理非線性的問題時,我們有時候會用可解釋的線性方式來處理原始資料。可以用一個簡單的例子來說明這種思想:現在我們想要基於這種思想來做一個簡單的分類任務。
X1 x2 | Y
==================
-2 0 1
2 0 1
-1 0 0
1 0 0
如果我們將資料視覺化,我們可以看到沒有一條直線可以將它們分開。

在這種情況下,如果不對資料做一些處理的話,邏輯迴歸是無法幫到我們的,但是如果我們不用 x2
特徵,而使用 x1² 來代替,那麼資料將會變成這樣:
X1 x1^2 | Y
==================
-2 4 1
2 4 1
-1 1 0
1 1 0
現在,就存在一條直線可以將它們分開了。當然,這個簡單的例子只是為了說明這種思想,對於現實世界來講,很難發現或找到如何改變資料的方法以可以使用線性分類器來幫助你。但是,如果你可以在特徵工程和特徵選擇上多花些時間,那麼很可能你的邏輯迴歸是可以很好的勝任的。
4. 因為邏輯迴歸是統計中的一個重要工具
線性迴歸不僅僅可以用來預測。如果你有了一個訓練好的線性模型,你可以通過它學習到因變數和自變數之間的關係,或者用更多的ML語言來說,你可以學習到特徵變數和目標變數的關係。一個簡單的例子,房價預測,我們有很多房屋特徵,還有實際的房價。我們基於這些資料訓練一個線性迴歸模型,然後得到了很好的結果。通過訓練,我們可以發現模型訓練後會給每個特徵分配相應的權重。如果某個特徵權重很高,我們就可以說這個特徵比其它的特徵更重要。比如房屋大小特徵,對於房價的變化會有50%的權重,因為房屋大小每增加一平米房價就會增加10k。線性迴歸是一個瞭解資料以及統計規律的非常強的工具,同理, 邏輯迴歸也可以給每個特徵分配各自的權重,通過這個權重,我們就可以瞭解特徵的重要性。
5. 因為邏輯迴歸是學習神經元網路很好的開始
當學習神經元網路的時候,最開始學習的邏輯迴歸對我幫助很大。你可以將網路中的每個神經元當作一個邏輯迴歸:它有輸入,有權重,和閾值,並可以通過點乘,然後再應用某個非線性的函式得到輸出。更多的是,一個神經元網路的最後一層大多數情況下是一個簡單的線性模型,看一下最基本的神經元網路:
如果我們更深入地觀察一下output層,可以看到這是一個簡單的線性(或者邏輯)迴歸,有hidden layer 2作為輸入,有相應的權重,我們可以做一個點乘然後加上一個非線性函式(根據任務而定)。可以說,對於神經元網路,一個非常好的思考方式是:將NN劃分為兩部分,一個是 代表部分 ,一個是 分類/迴歸部分 。

第一部分(左側)嘗試從資料中學習並具有很好的代表性,然後它會幫助第二個部分(右側)來完成一個線性的分類或者回歸任務。
總結
成為一個數據科學家你可能需要掌握很多知識,第一眼看上去,好像學習演算法才是最重要的部分。實際的情況是:學習演算法確實是所有情況中最複雜的部分,需要花費大量的時間和努力來理解,但它也只是資料科學中的一個部分,把握整體更為關鍵。
原文釋出時間為:2018-10-16
本文作者:
AI派本文來自雲棲社群合作伙伴“ ofollow,noindex"> ”,瞭解相關資訊可以關注“ ”。