1.1。(正則化)線性回歸
線性回歸是回歸任務(wù)中最常用的算法之一。它最簡(jiǎn)單的形式是試圖將一個(gè)直的超平面整合到你的數(shù)據(jù)集中(即當(dāng)你只有兩個(gè)變量的時(shí)候,你只能得到一條直線)。正如您可能猜到的那樣,當(dāng)數(shù)據(jù)集的變量之間存在線性關(guān)系時(shí),它的效果是非常好的。
實(shí)際上,簡(jiǎn)單的線性回歸經(jīng)常被正則化的同類(lèi)算法(LASSO,Ridge和Elastic-Net)所忽略。正則化是一種懲罰大系數(shù)的技術(shù),以避免過(guò)度擬合,它應(yīng)該調(diào)整其懲罰的力度。
優(yōu)點(diǎn):線性回歸可以直觀地理解和解釋,并且可以正則化以避免過(guò)度擬合。另外,使用隨機(jī)梯度下降的新數(shù)據(jù)可以很容易地更新線性模型。
缺點(diǎn):當(dāng)存在非線性關(guān)系時(shí),線性回歸表現(xiàn)不佳。它們本身并不具有足夠的靈活性來(lái)捕捉更為復(fù)雜的模式,對(duì)于添加正確的交互作用項(xiàng)或者多項(xiàng)式來(lái)說(shuō)可能會(huì)非常棘手和耗時(shí)。
實(shí)現(xiàn):Python/ R
1.2。回歸樹(shù)(集成)
回歸樹(shù)(決策樹(shù)的一種)是通過(guò)將數(shù)據(jù)集反復(fù)分割成單獨(dú)的分支來(lái)實(shí)現(xiàn)分層化學(xué)習(xí),從而最大化每個(gè)分割信息的增益效果。這種分支結(jié)構(gòu)允許回歸樹(shù)自然地學(xué)習(xí)非線性關(guān)系。
隨機(jī)森林(RF)和梯度增強(qiáng)樹(shù)(GBM)等集成方法結(jié)合了許多單獨(dú)樹(shù)的特性。我們不會(huì)在這里介紹他們的基本機(jī)制,但是在實(shí)踐中,隨機(jī)森林通常表現(xiàn)地非常好,而梯度增強(qiáng)樹(shù)則很難調(diào)整,但是后者往往會(huì)有更高的性能上限。
優(yōu)點(diǎn):回歸樹(shù)可以學(xué)習(xí)非線性關(guān)系,并且對(duì)異常值相當(dāng)敏銳。在實(shí)踐中,回歸樹(shù)也表現(xiàn)地非常出色,贏得了許多經(jīng)典(即非深度學(xué)習(xí))的機(jī)器學(xué)習(xí)比賽。
缺點(diǎn):無(wú)約束的單個(gè)樹(shù)很容易過(guò)擬合,因?yàn)樗鼈兛梢员3址种е钡剿鼈冇涀×怂械挠?xùn)練數(shù)據(jù)。但是,這個(gè)問(wèn)題可以通過(guò)使用集成的方式來(lái)緩解。
實(shí)現(xiàn):隨機(jī)森林 - Python / R,梯度增強(qiáng)樹(shù) - Python / R
1.3。深度學(xué)習(xí)
深度學(xué)習(xí)是指能學(xué)習(xí)極其復(fù)雜模式的多層神經(jīng)網(wǎng)絡(luò)。他們使用輸入和輸出之間的“隱藏層”來(lái)模擬其他算法難以學(xué)習(xí)的數(shù)據(jù)中介碼。
他們有幾個(gè)重要的機(jī)制,如卷積和丟棄,使他們能夠有效地從高維數(shù)據(jù)中學(xué)習(xí)。然而,與其他算法相比,深度學(xué)習(xí)仍然需要更多的數(shù)據(jù)來(lái)訓(xùn)練,因?yàn)檫@些模型需要更多的參數(shù)來(lái)實(shí)現(xiàn)其更準(zhǔn)確的推測(cè)。
優(yōu)點(diǎn):深度學(xué)習(xí)是在諸如計(jì)算機(jī)視覺(jué)和語(yǔ)音識(shí)別等領(lǐng)域內(nèi),目前可以被利用的最先進(jìn)的方法。深度神經(jīng)網(wǎng)絡(luò)在圖像,音頻和文本數(shù)據(jù)上表現(xiàn)地非常出色,可以輕松地使用成批量的傳播方法來(lái)更新數(shù)據(jù)。它的體系結(jié)構(gòu)(即層的數(shù)量和結(jié)構(gòu))可以適應(yīng)許多類(lèi)型的問(wèn)題,并且它們的隱藏層減少了對(duì)特征工程的需要。
缺點(diǎn):深度學(xué)習(xí)算法不適合作為通用算法,因?yàn)樗鼈冃枰罅康臄?shù)據(jù)。事實(shí)上,對(duì)于傳統(tǒng)的機(jī)器學(xué)習(xí)問(wèn)題,它們的表現(xiàn)通常遜色于決策樹(shù)。另外,它們需要密集型的計(jì)算訓(xùn)練,而且需要更多的專業(yè)知識(shí)來(lái)做調(diào)試(即設(shè)置架構(gòu)和超參數(shù))。
實(shí)現(xiàn):Python/ R
1.4。特別提及:最近鄰居法
最近鄰居算法是“基于實(shí)例的”,這意味著它會(huì)保存每個(gè)訓(xùn)練觀察的結(jié)果。然后,通過(guò)搜索最相似的訓(xùn)練觀察值并匯集結(jié)果,來(lái)預(yù)測(cè)新的觀測(cè)值。
這些算法是內(nèi)存密集型的,對(duì)于高維度數(shù)據(jù)的表現(xiàn)不佳,并且需要有意義的距離函數(shù)來(lái)計(jì)算相似度。在實(shí)踐中,訓(xùn)練正則化回歸或決策樹(shù)可能會(huì)更節(jié)省你的時(shí)間。
2.分類(lèi)
分類(lèi)是建模和預(yù)測(cè)分類(lèi)變量的監(jiān)督學(xué)習(xí)任務(wù)。例如預(yù)測(cè)員工的流失,垃圾郵件,財(cái)務(wù)欺詐或者學(xué)生信件等級(jí)。
如你所見(jiàn),許多回歸算法都有分類(lèi)對(duì)應(yīng)。這種算法適用于預(yù)測(cè)類(lèi)(或類(lèi)概率)而不是實(shí)數(shù)類(lèi)。
9 K, }9 X: \2 }$ Y; Q
2.1。(正則化的)邏輯回歸
邏輯回歸是線性回歸的分類(lèi)對(duì)應(yīng)。它預(yù)測(cè)被映射到介于0和1之間的邏輯函數(shù),這意味著預(yù)測(cè)可以被解釋為類(lèi)概率。
模型本身仍然是“線性的”,所以當(dāng)你的類(lèi)是線性可分的(即它們可以被一個(gè)單一的決策表面分開(kāi))時(shí)候,邏輯回歸算法十分有效。邏輯回歸也可以通過(guò)具有可調(diào)懲罰強(qiáng)度的系數(shù)來(lái)實(shí)現(xiàn)正則化。
優(yōu)點(diǎn):數(shù)據(jù)的輸出有一個(gè)很好的概率解釋,算法可以正則化以避免過(guò)度擬合。邏輯回歸可以使用隨機(jī)梯度下降的方法使得新數(shù)據(jù)的更新變得更為輕松。
缺點(diǎn):當(dāng)存在多個(gè)或非線性的決策邊界時(shí),邏輯回歸往往表現(xiàn)不佳。它不夠靈活,無(wú)法自然地捕捉到更復(fù)雜的關(guān)系。
實(shí)現(xiàn):Python/ R
2.2。分類(lèi)樹(shù)(集成)
分類(lèi)樹(shù)是回歸樹(shù)的分類(lèi)對(duì)應(yīng)算法。它們倆被統(tǒng)稱為“決策樹(shù)”,或者被稱為“分類(lèi)和回歸樹(shù)(CART)”。
優(yōu)點(diǎn):與回歸樹(shù)一樣,集成分類(lèi)樹(shù)在實(shí)踐中的表現(xiàn)也很好。它們對(duì)于異常值的控制是可靠的和可擴(kuò)展的,并且由于它們的層次結(jié)構(gòu),能夠自然地對(duì)非線性決策邊界進(jìn)行建模。
缺點(diǎn):不受約束的單個(gè)樹(shù)容易過(guò)度擬合,但是這可以通過(guò)集成方法來(lái)緩解。
實(shí)現(xiàn):隨機(jī)森林 - Python / R,梯度增強(qiáng)樹(shù) - Python / R
2.3。深度學(xué)習(xí)
延續(xù)其一貫的趨勢(shì),深度學(xué)習(xí)也很容易適應(yīng)分類(lèi)問(wèn)題。實(shí)際上,深度學(xué)習(xí)往往是分類(lèi)中比較常用的方法,比如在圖像分類(lèi)中。
優(yōu)點(diǎn):在分類(lèi)音頻,文本和圖像數(shù)據(jù)時(shí),深度學(xué)習(xí)表現(xiàn)地非常出色。
缺點(diǎn):與回歸一樣,深度神經(jīng)網(wǎng)絡(luò)需要大量的數(shù)據(jù)進(jìn)行訓(xùn)練,所以它不被視為通用算法。
實(shí)現(xiàn):Python的/ R
2.4。支持向量機(jī)
支持向量機(jī)(SVM)使用稱為核心(kernels)的機(jī)制,它計(jì)算兩個(gè)觀察對(duì)象之間的距離。隨后支持向量機(jī)算法找到一個(gè)決策邊界,最大化不同類(lèi)別的最近成員之間的距離。
例如,具有線性內(nèi)核的支持向量機(jī)類(lèi)似于邏輯回歸。因此,在實(shí)踐中,支持向量機(jī)的好處通常來(lái)自于使用非線性的內(nèi)核來(lái)建模一種非線性的決策邊界。
優(yōu)點(diǎn):支持向量機(jī)可以模擬非線性決策邊界,并有許多內(nèi)核可供選擇。它們對(duì)于過(guò)度擬合的控制力也相當(dāng)強(qiáng)大,特別是在高維空間。
缺點(diǎn):然而,支持向量機(jī)是難以調(diào)整的內(nèi)存密集型算法,而且很依賴于選擇正確的核心,并且不能很好地?cái)U(kuò)展到較大的數(shù)據(jù)集里。目前在行業(yè)中,隨機(jī)森林通常優(yōu)于支持向量機(jī)。
實(shí)現(xiàn):Python/ R
2.5。樸素貝葉斯
樸素貝葉斯(NB)是一個(gè)基于條件概率和計(jì)數(shù)的非常簡(jiǎn)單的算法。從本質(zhì)上講,你的模型實(shí)際上是一個(gè)概率表,通過(guò)你的訓(xùn)練數(shù)據(jù)得到更新。為了預(yù)測(cè)一個(gè)新的觀察結(jié)果,您只需根據(jù)其“特征值”,在“概率表”中查找該類(lèi)的概率。
它被稱為“樸素的”,是因?yàn)樗鼦l件獨(dú)立的核心假設(shè)(即所有輸入特征是相互獨(dú)立的),這在現(xiàn)實(shí)世界中很少成立。
優(yōu)點(diǎn):即使條件獨(dú)立性假設(shè)很少成立,但樸素貝葉斯模型在實(shí)踐中表現(xiàn)得非常出色,特別是它十分簡(jiǎn)單。而且很容易實(shí)現(xiàn),并可以和數(shù)據(jù)集同步擴(kuò)展。
缺點(diǎn):由于其簡(jiǎn)單化的原因,樸素貝葉斯模型經(jīng)常被經(jīng)過(guò)適當(dāng)訓(xùn)練的其他模型和之前已經(jīng)列出的算法吊打。
實(shí)現(xiàn):Python/ R
3.聚類(lèi)
聚類(lèi)是一種無(wú)監(jiān)督的學(xué)習(xí)任務(wù),用于基于數(shù)據(jù)集中的固有結(jié)構(gòu)來(lái)發(fā)現(xiàn)自然的觀測(cè)分組(即聚類(lèi))。例子包括客戶細(xì)分,電子商務(wù)中的類(lèi)似項(xiàng)目分組以及社交網(wǎng)絡(luò)分析。
因?yàn)榫垲?lèi)是無(wú)監(jiān)督的(即沒(méi)有“正確答案”),所以通常使用可視化的數(shù)據(jù)來(lái)評(píng)估結(jié)果。如果有“正確的答案”(即你的訓(xùn)練集中有預(yù)標(biāo)記的聚類(lèi)),那么選擇分類(lèi)算法通常更合適。
![]()
3.1。K-Means算法
K-Means算法是一種通用算法,它根據(jù)點(diǎn)之間的幾何距離(即坐標(biāo)平面上的距離)進(jìn)行聚類(lèi)。這些集群圍繞著質(zhì)心分組,使它們成為球形,并具有相似的大小。
對(duì)于初學(xué)者來(lái)說(shuō),這是我們推薦的一種算法,因?yàn)樗芎?jiǎn)單,而且足夠靈活,可以為大多數(shù)問(wèn)題獲得合理的結(jié)果。
優(yōu)點(diǎn):K-Means算法是最流行的聚類(lèi)算法,因?yàn)槿绻腩A(yù)處理數(shù)據(jù)或者編譯有用的功能,它是一種快速,簡(jiǎn)單和擁有令人驚訝的靈活性的一種算法。
缺點(diǎn):用戶必須指定簇的數(shù)目,這并不總是很容易的。另外,如果數(shù)據(jù)中真實(shí)的底層聚類(lèi)不是球狀的,那么K-Means算法將產(chǎn)生錯(cuò)誤的聚類(lèi)。
實(shí)現(xiàn):Python/ R
3.2。近鄰傳播
近鄰傳播是一種相對(duì)較新的聚類(lèi)技術(shù),可以根據(jù)點(diǎn)之間的圖距進(jìn)行聚類(lèi)。集群傾向于變得更小和具有不均勻的大小。
優(yōu)點(diǎn):用戶不需要指定簇的數(shù)量(但是需要指定“樣本偏好”和“阻尼”超參數(shù))。
缺點(diǎn):近鄰傳播的主要缺點(diǎn)是速度很慢,占用內(nèi)存很大,難以擴(kuò)展到較大的數(shù)據(jù)集。另外,它也需要假設(shè)真正的底層集群是球狀的。
實(shí)現(xiàn):Python/ R
3.3。分層/凝聚
分層聚類(lèi),又名聚集聚類(lèi),是基于相同思想的一套算法:(1)從它自己的聚類(lèi)中的每個(gè)點(diǎn)開(kāi)始。(2)對(duì)于每個(gè)簇,根據(jù)一些標(biāo)準(zhǔn)將其與另一個(gè)簇合并。(3)重復(fù),直到只剩下一個(gè)群集,并留下一個(gè)簇的層次結(jié)構(gòu)。
優(yōu)點(diǎn):分層聚類(lèi)的主要優(yōu)點(diǎn)是不會(huì)假設(shè)球體是球狀的。另外,它可以很好地?cái)U(kuò)展到更大的數(shù)據(jù)集里。
缺點(diǎn):就像K-Means算法一樣,用戶必須選擇聚類(lèi)的數(shù)量(即在算法完成之后要保留的層次級(jí)別)。
實(shí)現(xiàn):Python/ R