選自Dataconomy
機器之心編譯
參與:王宇欣、吳攀、蔣思源
近段時間以來,
我們頻頻聽到「機器學習(machine learning)」這個詞(通常在預測分析(predictive analysis)和人工智慧(artificial intelligence)的上下文中)。
幾十年來,
機器學習實際上已經變成了一門獨立的領域。
由於現代計算能力的進步,
我們最近才能夠真正大規模地利用機器學習。
而實際上機器學習是如何工作的呢?答案很簡單:演算法(algorithm)。
機器學習是人工智慧(artificial intelligence)的一種, 其本質上講, 就是電腦可以在無需程式設計的情況下自己學習概念(concept)。 這些電腦程式一旦接觸新的資料, 就將會改變它們的「思考」(或者輸出)。 為了實現機器學習,
機器學習演算法經常被用於預測分析。 在商業中, 預測分析可以用於告訴企業未來最有可能發生什麼。 例如, 使用預測分析演算法, 線上 T 恤零售商可以使用當前的資料來預測下個月他們將會售出多少 T 恤。
回歸或分類
雖然機器學習也可以用於其它的用途, 但是我們將在本指南中著重於預測。 預測是一種基於輸入變數來估計輸出變數的過程。 比如, 如果我們輸入特定房子的特徵, 則可以預測售價。
預測問題分為兩大類:
回歸問題(Regression Problems):我們想要預測的變數是數位(例如, 房子的價格)
分類問題(Classification Problems):我們想要預測的變數是「是/否」的答案(例如,
現在我們已經介紹了機器學習在預測方面的應用, 我們可以討論機器學習演算法, 其分為 3 個組別:線性模型(linear models)、樹型模型(tree-based models)、和神經網路(neural networks)。
什麼是線性模型演算法
線性模型使用簡單的公式通過一組資料點來查找「最優擬合」線。 通過你已知的變數方程(比如, 原料), 你可以求出你想要預測的變數(例如, 烘烤蛋糕需要多長時間)。 為了求出預測量, 我們輸入已知的變數得到答案。 換句話說, 為了求出烘烤蛋糕需要多長時間, 我們只需要輸入原料。
例如, 要烘烤蛋糕, 分析過後我們得到這個方程:t = 0.5x + 0.25y, 其中 t 烤蛋糕的時間, x 為蛋糕糊的重量, y = 1 表示為巧克力蛋糕而 0 表示為非巧克力蛋糕。 所以讓我們假設,
有不同形式的線性模型演算法, 我們將要討論線性回歸(linear regression)和邏輯回歸(logistic regression)。
線性回歸
線性回歸, 也稱為「最小二乘回歸(least squares regression)」, 是線性模型的最標準的形式。 對於回歸問題(我們設法預測的變數是數位), 線性回歸是最簡單的線性模型。
邏輯回歸
邏輯回歸是為分類問題進行簡單調整過的線性回歸(我們設法預測的變數是「是/否」的答案)。 由於其構造, 邏輯回歸非常適合於分類問題
線性回歸和邏輯回歸的缺點
線性回歸和邏輯回歸都有著相同的缺點。 兩者都具有「過擬合(overfit)」的趨勢, 這意味著模型太適應於資料而犧牲了推廣到先前未知的資料的能力。
什麼是樹型模型
樹型模型有助於探索資料集, 並視覺化預測的決策規則。
決策樹(decision tree)
決策樹是一種使用分支方法(branching method)來顯示決策的每個可能結果的圖。 例如, 如果你想要訂購萵苣、澆頭和沙拉醬, 決策樹可以繪製出所有可能的結果(或者你可能最終得到的沙拉的品種)。
為了創建或者訓練決策樹, 我們採用我們過去訓練模型的資料, 並找出哪些屬性可以最佳分割目標訓練集。
例如, 我們在信用卡欺詐中使用決策樹。 我們可以發現最佳的欺詐風險預測的屬性是消費明細(例如, 有信用卡用戶有非常大的消費)。 這可能是第一次分割(或分支)——那些有著異常高消費的卡和沒有的卡。 然後我們使用第二個最佳屬性(例如,經常使用的信用卡)來創建下一次分割。然後我們可以繼續直到我們有足夠的屬性來滿足我們的需要。
隨機森林(random forest)
隨機森林是許多決策樹的平均,每個決策樹都用資料的隨機樣本訓練。森林中的每個獨立的樹都比一個完整的決策樹弱,但是通過將它們結合,我們可以通過多樣性獲得更高的整體表現。
隨機森林是當今機器學習中非常流行的演算法。它非常容易訓練(或構建),且它往往表現良好。它的缺點是,相比於其他演算法,其輸出預測可能較慢。所以當你需要快如閃電般地預測,你也許不會使用它。
梯度提升(gradient boosting)
梯度提升和隨機森林類似,都是由「弱」決策樹構成的。最大的區別是,在梯度提升中樹是被一個接一個相繼訓練的。每個隨後的樹主要用被先前樹錯誤識別的資料進行訓練。這使得梯度提升更少地集中在容易預測的情況並更多地集中在困難的情況。
梯度提升訓練速度也很快且表現非常好。然而,訓練資料的小變化可以在模型中產生徹底的改變,因此它可能不會產生最可解釋的結果。
什麼是神經網路
生物學中的神經網路是互相交換資訊的相互連接的神經元。這個想法現在已經適用於機器學習的世界,並被稱為人工神經網路(ANN)。深度學習(deep learning)是一個經常出現的詞,是指幾層連續放置的人工神經網路。
人工神經網路(ANN)包含了許多可以學習類似人腦的認知能力的模型。其它演算法不能處理的極其複雜的任務(如圖像識別),神經網路就可以辦到。然而,就像人類的大腦,它需要很長時間來訓練模型,且需要很多的能量(想一想我們為了保持大腦的工作,我們吃了多少東西)。
然後我們使用第二個最佳屬性(例如,經常使用的信用卡)來創建下一次分割。然後我們可以繼續直到我們有足夠的屬性來滿足我們的需要。
隨機森林(random forest)
隨機森林是許多決策樹的平均,每個決策樹都用資料的隨機樣本訓練。森林中的每個獨立的樹都比一個完整的決策樹弱,但是通過將它們結合,我們可以通過多樣性獲得更高的整體表現。
隨機森林是當今機器學習中非常流行的演算法。它非常容易訓練(或構建),且它往往表現良好。它的缺點是,相比於其他演算法,其輸出預測可能較慢。所以當你需要快如閃電般地預測,你也許不會使用它。
梯度提升(gradient boosting)
梯度提升和隨機森林類似,都是由「弱」決策樹構成的。最大的區別是,在梯度提升中樹是被一個接一個相繼訓練的。每個隨後的樹主要用被先前樹錯誤識別的資料進行訓練。這使得梯度提升更少地集中在容易預測的情況並更多地集中在困難的情況。
梯度提升訓練速度也很快且表現非常好。然而,訓練資料的小變化可以在模型中產生徹底的改變,因此它可能不會產生最可解釋的結果。
什麼是神經網路
生物學中的神經網路是互相交換資訊的相互連接的神經元。這個想法現在已經適用於機器學習的世界,並被稱為人工神經網路(ANN)。深度學習(deep learning)是一個經常出現的詞,是指幾層連續放置的人工神經網路。
人工神經網路(ANN)包含了許多可以學習類似人腦的認知能力的模型。其它演算法不能處理的極其複雜的任務(如圖像識別),神經網路就可以辦到。然而,就像人類的大腦,它需要很長時間來訓練模型,且需要很多的能量(想一想我們為了保持大腦的工作,我們吃了多少東西)。