編者按:Medium博主James Le近日在網絡上分享了他認為的最適合新手的機器學習算法,并授權論智進行編譯。以下是我們對原文的編譯,如有錯誤還請指出。
在機器學習界,有這樣一個“沒有免費午餐”的定理。簡單地說,該理論認為,沒有一種算法能解決所有問題,尤其對監督學習而言。
例如,你不能認為神經網絡總比決策樹要好,或決策樹永遠優于神經網絡。這其中還有許多因素需要考慮,比如你的數據量大小和數據結構。
這樣就導致我們在面對一個問題時需要嘗試不同的算法,同時還要用測試的數據集來評估算法的性能,選出最合適的那一種。
當然,你所選的算法必須適合你的問題,就像當我們需要清理房子的時候,可以使用吸塵器、掃把或拖把,但不會用鏟子來挖地。
首要原則
然而,在為監督式機器學習創建預測模型之前,要記得一條最重要的原則:
機器學習算法可以看做學習一種目標函數(f),該函數是輸入變量(X)到輸出變量(Y)的完美映射:Y=f(X)
這是一個通用的學習任務,我們希望用新輸入的變量(X)能輸出預測變量(Y)。我們不知道函數(f)是什么樣子的,或者什么形式的。如果我們知道的話就直接使用了,不需要再用機器學習算法從大量的數據中學習它。
最常見的機器學習類型是學習映射Y=f(X),用它來預測Y的值。這被稱為預測建模或預測分析,我們的目標是做出最準確的預測。
對于想了解機器學習基礎知識的新手,以下是數據科學家最常用的10種機器學習算法。
1.線性回歸
線性回歸也許是數據科學和機器學習中最知名、最好理解的算法了吧。
預測建模主要關注的是,以可解釋性為基礎,將模型的誤差降到最小并盡量作出最準確的預測。我們將借鑒、多次使用甚至“竊取”包括數據統計在內的多個不同領域的算法,從而達到這一目的。
線性回歸用方程表示,通過找到作為輸入變量的系數(B)的特定權重來描述輸入變量(x)和輸出變量(y)之間的一條線。
線性回歸
例如:y=B0 + B1*x
給定x的值,我們將預測y的值。同時線性回歸學習算法的目標是找到系數B0和B1的值。
想從數據中建立線性回歸模型,可以用不同的方法。例如用于最小二乘和梯度下降優化的線性代數。
線性回歸已經存在了200多年,并被廣泛研究。通常人們會去除非常相似或相關的變量,并從數據中去除噪聲。對于新手來說,這是一個簡單易上手的技術。
2.邏輯回歸
邏輯回歸是機器學習從統計領域借鑒的另一個技術,這是二元分類問題的首選算法。
邏輯回歸與線性回歸類似的一點是,目標都是找出每個輸入變量加權的系數值。不同的是,輸出的預測結果需要用非線性的邏輯函數進行變換。
邏輯函數看起來像一個大寫的S,它可以將任何值轉化成一個0到1的數值。因此,我們可以將這一規則應用于邏輯函數的輸出,將值限定在0到1之間(例如,IF less than 0.5 then output 1),這樣就可以預測一個組值。
邏輯回歸
根據模型學習的方法,邏輯回歸生成的預測也可以用作0到1之間的給定數據的概率。這對于需要給出更多原理做出預測的問題很有用。
像線性回歸一樣,邏輯回歸在刪除與輸出變量無關的屬性以及非常相似的屬性之后,表現得效果更好。對于二元分類問題,這一模型很容易學習,并且效率也很高。
3.線性判別分析(LDA)
線性回歸通常只適用于二元分類問題。如果類別超過兩個,你可能就需要線性判別分析算法來解決分類問題了。
LDA的表示方法非常直接。它由數據的統計屬性構成,為每個類別計算。對于單個輸入變量,這包括:
每一類別的平均值; 計算所有類別的差異
線性判別分析
通過計算每個類別的識別值(discriminate value)并對具有最大值的類別進行預測,從而做出最終的預測,該技術假定數據的分布遵循高斯分布(鐘形曲線),因此在開始分析之前,需要移除數據中的異常值。對于分類預測建模問題來說,這是一種簡單而強大的方法。
4.分類與回歸樹
決策樹是機器學習預測建模的重要算法。
決策樹的模型是二叉樹,這是利用算法和數據結構構建的二叉樹,每個節點代表一個輸入變量(x)和該變量上的一個分裂點(假定變量是數字)。
決策樹
樹葉的節點包含用于進行預測的輸出變量(y)。預測是從樹叉開始,直到到達樹葉節點并輸出該節點的組值。
決策樹學習速度快,作出預測的速度也快。它們能解決許多領域的問題,所以無需對數據進行預處理。
5.樸素貝葉斯
樸素貝葉斯雖然簡潔,但對預測建模來說是一種非常強大的算法。
該模型由兩種類型的概率組成,可以從您的訓練數據中直接計算:1)每個類別的概率;2) 給定每個x值的每個類別的條件概率。計算出來后,概率模型就能用貝葉斯定理對新數據進行預測。當你的數據是實值時,通常假設一個高斯分布,這樣你可以很容易地預估這些概率。
樸素貝葉斯之所以被稱為樸素,是因為它假定每個輸入的變量都是獨立的。這個假設對于真實的數據是不實際的,但是,這種技術在大范圍復雜的問題上非常有效。
6.K-近鄰算法
KNN算法也很簡單有效。模型就是用整個訓練數據集表示的,非常簡單吧!
通過在整個數據集中搜索K個最相似的樣本(鄰居),將它們匯總后輸出變量來預測新的數據點。對于回歸問題,這可能是平均輸出變量;對分類問題,這可能是類值的眾數(最常見的值)。
重點在于如何確定數據樣本之間的相似性。如果你的數據規模相同(例如都以英寸為單位),最簡單的方法就是使用歐幾里得距離,如果是數字,你可以直接根據每個輸入變量之間的差異進行計算。
K-近鄰算法
KNN可能需要大量內存或空間來存儲所有的數據,但是只有在需要預測時才會工作(或學習)。您也可以隨時更新和管理訓練樣本,以保證預測的準確性。
距離或緊密性可能會在有大量的輸入變量時崩潰,這會導致算法性能下降,這被稱為維度的詛咒。所以建議只使用那些與預測輸出變量最相關的輸入變量。
7.學習向量量化(learning vector quantization)
K-近鄰算法的缺點之一是你需要利用整個數據集進行訓練,而學習向量量化算法(LVQ)是一種人工神經網絡算法,你可以選擇訓練樣本,并學習這些樣本應該是什么樣的。
LVQ
LVQ是由向量表的集合表示,這些在開始時是隨機選擇的,在學習過程中數次迭代后對訓練數據集做出最佳總結。在學習之后,這些向量表可以用來做類似K-緊鄰算法一樣的預測。通過計算每個向量編碼表和新數據樣本之間的距離來找到最近鄰居,然后返回最佳匹配單元的類值(或在回歸情況下的實際值)作為預測。如果你重新調整數據使其具有相同的范圍(如0到1之間),則可以獲得最佳結果。
如果您發現KNN能在你的數據集上表現良好,可以嘗試使用LVQ來減少存儲整個數據集的內存要求。
8.支持向量機
支持向量機(SVM)也許是最受歡迎的機器學習算法之一。
超平面是分割輸入變量空間的線。在SVM中,超平面能以最佳比例將輸入變量空間的點以它們的類別分開。在二維空間中,你可以將其視為一條線,假設輸入的所有點都可以被這條線完全分開。SVM學習算法可以找到能夠被超平面完美分割類別的系數。
SVM
超平面和最近數據點之間的距離被稱為間隔(margin)。能夠將兩類分開的最佳或最優的超平面往往是有最大間隔的線,只有這些點與超平面的定義和分類器的構造有關,這些點就是支持向量。它們支持或定義了超平面,在實踐中,可以使用優化算法來找到最大化間隔的系數的值。
9.Bagging和隨機森林
隨機森林是目前最流行、最強大的機器學習算法之一,它是一種由Bootstrap或Bagging集成的機器學習算法。
Bootstrap是從數據樣本中估算數量的強大的統計方法,就像一種平均值。你需要從你的數據中抽取大量樣本,計算平均值,然后再計算所有平均值的平均值,從而更好地估計真實平均值。
在Bagging中,可以用上述相同的方法估計整個數據模型,最常見的是決策樹。選取訓練數據中的多個樣本,然后構建模型。當你需要預測新數據時,每個模型都會做出預測,取平均值后以便更好地估計真實輸出值。
隨機森林是對以上方法的調整,在隨機森林中,決策樹是這樣創建的,不選擇最優分割點,而是通過引入隨機性選擇次優分割點。因此,針對每個數據樣本創建的模型與其它方式相比會有所不同,但仍然非常精確,結合預測的值可以更好地估計真實的潛在輸出價值。
如果較大方差的算法(如決策樹)能獲得較好結果,那么通常可以通過bagging獲得更好的結果。
10.Boosting和AdaBoost
Boosting是一種集成技術,它試圖從一些弱分類器中創建一個強分類器。通過從訓練數據中構建模型,然后創建第二個模型來嘗試糾正第一個模型的錯誤,直到模型能完美預測訓練數據集或已經添加了大量模型后,才會停止創建模型。
AdaBoost是為二元分類問題開發的第一個真正成功的boosting算法,這可以幫助我們更好地理解boosting。現在大多boosting方法都建立在AdaBoost上,最出名的就是隨機梯度上升。
AdaBoost與短決策樹一起使用,在第一棵樹創建之后,要使用每個訓練樣本上的樹的性能衡量下一棵樹應該對每個訓練樣本分配多少注意力。難以預測的訓練數據被分配的權重高,易于預測的樣本權重則少。依次創建模型后,每個模型都會在訓練樣本上更新權重。所有樹在建立之后,將會對新數據進行預測,每棵樹的性能由它們在訓練數據上的表現進行權衡。
由于大量的注意力都放在了糾正算法的錯誤上,所以清除異常數據是非常重要的。
結語
初學者在面對各種各樣機器學習算法時最常問的問題是:“我該使用那種算法?”回答這一問題要考慮許多因素,包括數據的尺寸、質量和性質、可用的計算時間、任務的緊迫性以及你想用數據做什么。
即使是一位經驗豐富的數據科學家,他也無法憑空判斷哪種算法表現得最好,一定是要嘗試之后才能下結論。除了上述10種算法外,還有其他很多機器學習算法,如果你是新手的話,這篇文章可以作為你的入門教程。
-
算法
+關注
關注
23文章
4612瀏覽量
92887 -
機器學習
+關注
關注
66文章
8418瀏覽量
132628 -
決策樹
+關注
關注
3文章
96瀏覽量
13551 -
線性回歸
+關注
關注
0文章
41瀏覽量
4307
原文標題:最適合機器學習新手的10種算法
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論