“數(shù)據(jù)+算法=模型”。面對(duì)具體的問題,選擇切合問題的模型進(jìn)行求解十分重要。有經(jīng)驗(yàn)的數(shù)據(jù)科學(xué)家根據(jù)日常算法的積累,往往能在最短時(shí)間內(nèi)選擇更適合該問題的算法,因此構(gòu)建的模型往往更準(zhǔn)確高效。
本文歸納了機(jī)器學(xué)習(xí)的10大算法,并分別整理了各算法的優(yōu)缺點(diǎn)及主要特征,供大家學(xué)習(xí)參考。讀完本文,你將掌握以下機(jī)器學(xué)習(xí)10大算法的基本概念及主要適用情況,是機(jī)器學(xué)習(xí)過程不可錯(cuò)過的基礎(chǔ)概念篇。
本文涵蓋的機(jī)器學(xué)習(xí)領(lǐng)域10大算法包括:
·決策樹算法
·樸素貝葉斯算法
·K最近鄰算法
·AdaBoost算法
·PageRank算法
·EM算法(期望最大化算法)
·Apriori算法
·SVM算法
·K均值聚類算法
·線性回歸算法 Linear Regression
下面我們將具體展開介紹。
1.決策樹算法
決策樹,是一個(gè)類似于流程圖的樹形結(jié)構(gòu),樹內(nèi)部的每一個(gè)節(jié)點(diǎn)代表的是對(duì)一個(gè)特征的測(cè)試,樹的分支代表該特征的每一個(gè)測(cè)試結(jié)果,而樹的每一個(gè)葉子節(jié)點(diǎn)代表一個(gè)類別。樹的最高層就是根節(jié)點(diǎn)。
決策樹的生成過程主要分為以下3個(gè)部分:
1.特征選擇: 特征選擇是指從訓(xùn)練數(shù)據(jù)中眾多的特征中選擇一個(gè)特征作為當(dāng)前節(jié)點(diǎn)的分裂標(biāo)準(zhǔn),如何選擇特征有著很多不同量化評(píng)估標(biāo)準(zhǔn)標(biāo)準(zhǔn),從而衍生出不同的決策樹算法。
2.決策樹生成: 根據(jù)選擇的特征評(píng)估標(biāo)準(zhǔn),從上至下遞歸地生成子節(jié)點(diǎn),直到數(shù)據(jù)集不可分則停止決策樹停止生長(zhǎng)。 樹結(jié)構(gòu)來說,遞歸結(jié)構(gòu)是最容易理解的方式
3.剪枝: 決策樹容易過擬合,一般來需要剪枝,縮小樹結(jié)構(gòu)規(guī)模、緩解過擬合。剪枝技術(shù)有預(yù)剪枝和后剪枝兩種。
樹模型和線性模型之間的區(qū)別
樹形模型是一個(gè)一個(gè)特征進(jìn)行處理,線性模型是所有特征給予權(quán)重相加得到一個(gè)新的值。決策樹與邏輯回歸的分類區(qū)別也在于此,邏輯回歸是將所有特征變換為概率后,通過大于某一概率聞值的劃分為一類,小于某一概率聞值的為另一類,而決策樹是對(duì)每一個(gè)特征做一個(gè)劃分。另外邏輯回歸只能找到線性分割(輸入特征x與logit之間是線性的,除非對(duì)x進(jìn)行多維映射),而決策樹可以找到非線性分割。
而樹形模型更加接近人的思維方式,可以產(chǎn)生可視化的分類規(guī)則,產(chǎn)生的模型具有可解釋性(可以抽取規(guī)則)。樹模型擬合出來的函數(shù)其實(shí)是分區(qū)間的階梯函數(shù)。
算法優(yōu)點(diǎn):
·學(xué)習(xí)以及預(yù)測(cè)的速度都非???;
·并且樹模型適用于各種各樣的問題,不需要對(duì)數(shù)據(jù)進(jìn)行任何特殊的處理。
算法缺點(diǎn):
·對(duì)連續(xù)性的字段比較難預(yù)測(cè)。
·容易出現(xiàn)過擬合。
·對(duì)于各類別樣本數(shù)量不一致的數(shù)據(jù),在決策樹當(dāng)中,信息增益的結(jié)果偏向于那些具有更多數(shù)值的特征。
決策樹的典型算法包括ID3,C4.5,CART等,下面重點(diǎn)介紹一下C4.5和CART。
C4.5
國(guó)際權(quán)威的學(xué)術(shù)組織,數(shù)據(jù)挖掘國(guó)際會(huì)議ICDM (the IEEE International Conference on Data Mining)在2006年12月評(píng)選出了數(shù)據(jù)挖掘領(lǐng)域的十大經(jīng)典算法中,C4.5算法排名第一。C4.5算法是機(jī)器學(xué)習(xí)算法中的一種分類決策樹算法,其核心算法是ID3算法。
C4.5算法繼承了ID3算法的優(yōu)點(diǎn),并在以下幾方面對(duì)ID3算法進(jìn)行了改進(jìn):
1)用信息增益率來選擇屬性,克服了用信息增益選擇屬性時(shí)偏向選擇取值多的屬性的不足;
2)在樹構(gòu)造過程中進(jìn)行剪枝;
3)能夠完成對(duì)連續(xù)屬性的離散化處理;
4)能夠?qū)Σ煌暾麛?shù)據(jù)進(jìn)行處理。
C4.5算法有如下優(yōu)點(diǎn):產(chǎn)生的分類規(guī)則易于理解,準(zhǔn)確率較高。其缺點(diǎn)是:在構(gòu)造樹的過程中,需要對(duì)數(shù)據(jù)集進(jìn)行多次的順序掃描和排序,因而導(dǎo)致算法的低效。
CART
CART(ClassificaTIon andRegression Tree)分類回歸樹是一種決策樹構(gòu)建算法。不同于ID3與C4.5,CART為一種二分決策樹,是滿二叉樹。CART算法由Breiman等人在 1984 年提出,它采用與傳統(tǒng)統(tǒng)計(jì)學(xué)完全不同的方式構(gòu)建預(yù)測(cè)準(zhǔn)則,它是以二叉樹的形式給出,易于理解、使用和解釋。
CART是在給定輸入隨機(jī)變量X條件下輸出隨機(jī)變量Y的條件概率分布的學(xué)習(xí)方法。CART假設(shè)決策樹是二叉樹,內(nèi)部結(jié)點(diǎn)特征的取值為“是”和“否”,左分支是取值為“是”的分支,右分支是取值為“否”的分支。這樣的決策樹等價(jià)于遞歸地二分每個(gè)特征,將輸入空間即特征空間劃分為有限個(gè)單元,并在這些單元上確定預(yù)測(cè)的概率分布,也就是在輸入給定的條件下輸出的條件概率分布。
CART算法既可以處理離散型問題,也可以處理連續(xù)型問題。這種算法在處理連續(xù)型問題時(shí),主要通過使用二元切分來處理連續(xù)型變量,即特征值大于某個(gè)給定的值就走左子樹,或者就走右子樹。
CART優(yōu)點(diǎn):
·可以生成可以理解的規(guī)則;
·計(jì)算量相對(duì)來說不是很大;
·可以處理連續(xù)和種類字段;
·決策樹可以清晰的顯示哪些字段比較重要。
CART缺點(diǎn):
·對(duì)連續(xù)性的字段比較難預(yù)測(cè);
·對(duì)有時(shí)間順序的數(shù)據(jù),需要很多預(yù)處理的工作;
·當(dāng)類別太多時(shí),錯(cuò)誤可能就會(huì)增加的比較快;
·一般的算法分類的時(shí)候,只是根據(jù)一個(gè)字段來分類。
2.樸素貝葉斯算法
貝葉斯分類是一類分類算法的總稱,這類算法均以貝葉斯定理為基礎(chǔ),故統(tǒng)稱為貝葉斯分類。而樸素貝葉斯(Naive Bayes)分類是貝葉斯分類中最簡(jiǎn)單,也是常見的一種分類方法。
樸素貝葉斯算法的核心思想是通過考慮特征概率來預(yù)測(cè)分類,即對(duì)于給出的待分類樣本,求解在此樣本出現(xiàn)的條件下各個(gè)類別出現(xiàn)的概率,哪個(gè)最大,就認(rèn)為此待分類樣本屬于哪個(gè)類別。
在機(jī)器學(xué)習(xí)中如KNN、邏輯回歸、決策樹等模型都是判別方法,也就是直接學(xué)習(xí)出特征輸出Y 和特征X 之間的關(guān)系(決策函數(shù)Y = f ( X ) 或者條件分布P(Y∣X))。但樸素貝葉斯是生成方法,它直接找出特征輸出Y和特征X的聯(lián)合分布P ( X , Y ),進(jìn)而通過P ( Y ∣ X ) = P ( X , Y ) |P ( X ) 計(jì)算得出結(jié)果判定。
基于貝葉斯定理的貝葉斯模型是一類簡(jiǎn)單常用的分類算法。在「假設(shè)待分類項(xiàng)的各個(gè)屬性相互獨(dú)立」的情況下,構(gòu)造出來的分類算法就稱為樸素的,即樸素貝葉斯算法。
所謂「樸素」,是假定所有輸入事件之間是相互獨(dú)立。進(jìn)行這個(gè)假設(shè)是因?yàn)楠?dú)立事件間的概率計(jì)算更簡(jiǎn)單。
算法優(yōu)點(diǎn):
樸素貝葉斯算法假設(shè)了數(shù)據(jù)集屬性之間是相互獨(dú)立的,因此算法的邏輯性十分簡(jiǎn)單,并且算法較為穩(wěn)定,當(dāng)數(shù)據(jù)呈現(xiàn)不同的特點(diǎn)時(shí),樸素貝葉斯的分類性能不會(huì)有太大的差異。換句話說就是樸素貝葉斯算法的健壯性比較好,對(duì)于不同類型的數(shù)據(jù)集不會(huì)呈現(xiàn)出太大的差異性。當(dāng)數(shù)據(jù)集屬性之間的關(guān)系相對(duì)比較獨(dú)立時(shí),樸素貝葉斯分類算法會(huì)有較好的效果。
算法缺點(diǎn):
屬性獨(dú)立性的條件同時(shí)也是樸素貝葉斯分類器的不足之處。數(shù)據(jù)集屬性的獨(dú)立性在很多情況下是很難滿足的,因?yàn)閿?shù)據(jù)集的屬性之間往往都存在著相互關(guān)聯(lián),如果在分類過程中出現(xiàn)這種問題,會(huì)導(dǎo)致分類的效果大大降低。
3.K最近鄰算法
鄰近算法,或者說K最鄰近(KNN,K-NearestNeighbor)分類算法是數(shù)據(jù)挖掘分類技術(shù)中最簡(jiǎn)單的方法之一。所謂K最近鄰,就是K個(gè)最近的鄰居的意思,說的是每個(gè)樣本都可以用它最接近的K個(gè)鄰近值來代表。近鄰算法就是將數(shù)據(jù)集合中每一個(gè)記錄進(jìn)行分類的方法。
KNN算法是一種基于實(shí)例的學(xué)習(xí),或者是局部近似和將所有計(jì)算推遲到分類之后的惰性學(xué)習(xí)。用最近的鄰居(k)來預(yù)測(cè)未知數(shù)據(jù)點(diǎn)。k 值是預(yù)測(cè)精度的一個(gè)關(guān)鍵因素,無(wú)論是分類還是回歸,衡量鄰居的權(quán)重都非常有用,較近鄰居的權(quán)重比較遠(yuǎn)鄰居的權(quán)重大。
距離或緊密度的概念可能會(huì)在高維環(huán)境(大量輸入變量)下崩潰,這會(huì)對(duì)算法造成負(fù)面影響。這類事件被稱為維度詛咒。它也暗示了你應(yīng)該只使用那些與預(yù)測(cè)輸出變量最相關(guān)的輸入變量。
算法優(yōu)點(diǎn):
KNN方法思路簡(jiǎn)單,易于理解,易于實(shí)現(xiàn),無(wú)需估計(jì)參數(shù)。
算法缺點(diǎn):
·該算法在分類時(shí)有個(gè)主要的不足是,當(dāng)樣本不平衡時(shí),如一個(gè)類的樣本容量很大,而其他類樣本容量很小時(shí),有可能導(dǎo)致當(dāng)輸入一個(gè)新樣本時(shí),該樣本的K個(gè)鄰居中大容量類的樣本占多數(shù)
·該方法的另一個(gè)不足之處是計(jì)算量較大,因?yàn)閷?duì)每一個(gè)待分類的文本都要計(jì)算它到全體已知樣本的距離,才能求得它的K個(gè)最近鄰點(diǎn)。
·惰性學(xué)習(xí)
KNN算法是懶散學(xué)習(xí)方法(lazy learning,基本上不學(xué)習(xí)),一些積極學(xué)習(xí)的算法要快很多。
4.AdaBoost算法
Boosting是一種從一些弱分類器中創(chuàng)建一個(gè)強(qiáng)分類器的集成技術(shù)。 它先由訓(xùn)練數(shù)據(jù)構(gòu)建一個(gè)模型,然后創(chuàng)建第二個(gè)模型來嘗試糾正第一個(gè)模型的錯(cuò)誤。 不斷添加模型,直到訓(xùn)練集完美預(yù)測(cè)或已經(jīng)添加到數(shù)量上限。
AdaBoost是為二分類開發(fā)的第一個(gè)真正成功的Boosting算法,同時(shí)也是理解Boosting的最佳起點(diǎn)。
AdaBoost算法是Adaptive Boost的簡(jiǎn)稱,Adaboost是一種迭代算法,其核心思想是針對(duì)同一個(gè)訓(xùn)練集訓(xùn)練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個(gè)更強(qiáng)的最終分類器(強(qiáng)分類器)。
AdaBoost算法流程:
1. 先通過對(duì)N個(gè)訓(xùn)練樣本的學(xué)習(xí)得到第一個(gè)弱分類器;
2. 將分錯(cuò)的樣本和其他的新數(shù)據(jù)一起構(gòu)成一個(gè)新的N個(gè)的訓(xùn)練樣本,通過對(duì)這個(gè)樣本的學(xué)習(xí)得到第二個(gè)弱分類器 ;
3. 將1和2都分錯(cuò)了的樣本加上其他的新樣本構(gòu)成另一個(gè)新的N個(gè)的訓(xùn)練樣本,通過對(duì)這個(gè)樣本的學(xué)習(xí)得到第三個(gè)弱分類器;
4. 最終經(jīng)過提升的強(qiáng)分類器。即某個(gè)數(shù)據(jù)被分為哪一類要由各分類器權(quán)值決定。
以做錯(cuò)題為例做一個(gè)形象的比喻:
做正確的題,下次少做點(diǎn),反正都會(huì)了;
做錯(cuò)的題,下次多做點(diǎn),集中在錯(cuò)題上;
隨著學(xué)習(xí)的深入,做錯(cuò)的題會(huì)越來越少。
算法優(yōu)點(diǎn):
·很好的利用了弱分類器進(jìn)行級(jí)聯(lián);
·可以將不同的分類算法作為弱分類器;
·AdaBoost具有很高的精度;
·相對(duì)于bagging算法和Random Forest算法,AdaBoost充分考慮的每個(gè)分類器的權(quán)重;
算法缺點(diǎn):
·AdaBoost迭代次數(shù)也就是弱分類器數(shù)目不太好設(shè)定,可以使用交叉驗(yàn)證來進(jìn)行確定;
·數(shù)據(jù)不平衡導(dǎo)致分類精度下降;
·訓(xùn)練比較耗時(shí),每次重新選擇當(dāng)前分類器最好切分點(diǎn)。
5.PageRank算法
PageRank,網(wǎng)頁(yè)排名,又稱佩奇排名。谷歌的兩位創(chuàng)始人,佩奇 (Larry Page) 和布林 (Sergey Brin) 開始了對(duì)網(wǎng)頁(yè)排序問題的研究。他們的借鑒了學(xué)術(shù)界評(píng)判學(xué)術(shù)論文重要性的通用方法, 那就是看論文的引用次數(shù)。由此想到網(wǎng)頁(yè)的重要性也可以根據(jù)這種方法來評(píng)價(jià)。
于是PageRank的核心思想就誕生了,非常簡(jiǎn)單:
如果一個(gè)網(wǎng)頁(yè)被很多其他網(wǎng)頁(yè)鏈接到的話說明這個(gè)網(wǎng)頁(yè)比較重要,也就是PageRank值會(huì)相對(duì)較高;
如果一個(gè)PageRank值很高的網(wǎng)頁(yè)鏈接到一個(gè)其他的網(wǎng)頁(yè),那么被鏈接到的網(wǎng)頁(yè)的PageRank值會(huì)相應(yīng)地因此而提高。
算法優(yōu)點(diǎn):
是一個(gè)與查詢無(wú)關(guān)的靜態(tài)算法,全部網(wǎng)頁(yè)的PageRank值通過離線計(jì)算獲得;有效降低在線查詢時(shí)的計(jì)算量,極大降低了查詢響應(yīng)時(shí)間。
算法缺點(diǎn):
·人們的查詢具有主題特征,PageRank忽略了主題相關(guān)性,導(dǎo)致結(jié)果的相關(guān)性和主題性減少;
·舊的頁(yè)面等級(jí)會(huì)比新頁(yè)面高。由于即使是非常好的新頁(yè)面也不會(huì)有非常多上游鏈接,除非它是某個(gè)網(wǎng)站的子網(wǎng)站。
6.EM算法(期望最大化算法)
EM算法全稱Expectation Maximization算法,即期望最大化算法,由Arthur P. Dempster,Nan Laird和Donald Rubin 1977年正式提出,是一種在已知部分相關(guān)變量的情況下,估計(jì)未知變量的迭代算法。EM算法是最常見的隱變量估計(jì)方法,在機(jī)器學(xué)習(xí)中有極為廣泛的用途,例如常被用來學(xué)習(xí)高斯混合模型(Gaussian mixture model,簡(jiǎn)稱GMM)的參數(shù);隱式馬爾科夫算法(HMM)、LDA主題模型的變分推斷等等。
EM算法包含兩個(gè)步驟,E步和M步。E步也就是我們求期望的步驟,M步將E步所求的期望最大化,重復(fù)E步和M步直到收斂,也就是我們估計(jì)的模型參數(shù)不再發(fā)生變化或者變化幅度很小,這就是EM算法的基本概括。
以分菜為例做一個(gè)形象的比喻。
比如說食堂的大師傅炒了一份菜,要等分成兩份給兩個(gè)人吃,顯然沒有必要拿來天平一點(diǎn)一點(diǎn)的精確的去稱分量,最簡(jiǎn)單的辦法是先隨意的把菜分到兩個(gè)碗中,然后觀察是否一樣多,把比較多的那一份取出一點(diǎn)放到另一個(gè)碗中,這個(gè)過程一直法代地執(zhí)行下去,直到大家看不出兩個(gè)碗所究納的菜有什么分量上的不同為止。EM算法就是這樣,假設(shè)我們估計(jì)知道A和B兩個(gè)參數(shù),在開始狀態(tài)下二者都是未知的,并且知道了A的信息就可以得到B的信息,反過來知道了B也就得到了A??梢钥紤]首先賦予A某種初值,以此得到B的估計(jì)值,然后從B的當(dāng)前值出發(fā),重新估計(jì)A的取值,這個(gè)過程一直持續(xù)到收斂為止。
算法優(yōu)點(diǎn):
·聚類;
·算法計(jì)算結(jié)果穩(wěn)定、準(zhǔn)確;
·EM算法自收斂,既不需要事先設(shè)定類別,也不需要數(shù)據(jù)間的兩兩比較合并等操作。
算法缺點(diǎn):
·對(duì)初始化數(shù)據(jù)敏感;
·EM算法計(jì)算復(fù)雜,收斂較慢,不適于大規(guī)模數(shù)據(jù)集和高維數(shù)據(jù);
·當(dāng)所要優(yōu)化的函數(shù)不是凸函數(shù)時(shí),EM算法容易給出局部最優(yōu)解,而不是全局最優(yōu)解。
7.Apriori算法
Apriori 算法是一種最有影響力的挖掘布爾關(guān)聯(lián)規(guī)則的頻繁項(xiàng)集的算法,它是由Rakesh Agrawal 和RamakrishnanSkrikant 提出的,例如著名的購(gòu)物籃問題中顧客在買完尿布之后通常會(huì)買啤酒。作為第一個(gè)關(guān)聯(lián)規(guī)則挖掘算法,它開創(chuàng)性的使用了基于支持度的剪枝技術(shù)。
它使用一種稱作逐層搜索的迭代方法,k- 項(xiàng)集用于探索(k+1)- 項(xiàng)集。首先,找出頻繁 1- 項(xiàng)集的集合。該集合記作L1。L1 用于找頻繁2- 項(xiàng)集的集合 L2,而L2 用于找L2,如此下去,直到不能找到 k- 項(xiàng)集。每找一個(gè) Lk 需要一次數(shù)據(jù)庫(kù)掃描。為提高頻繁項(xiàng)集逐層產(chǎn)生的效率,一種稱作Apriori 性質(zhì)的重要性質(zhì),用于壓縮搜索空間。其運(yùn)行定理在于一是頻繁項(xiàng)集的所有非空子集都必須也是頻繁的,二是非頻繁項(xiàng)集的所有父集都是非頻繁的。
Apriori算法過程分為兩個(gè)步驟:
第一步通過迭代,檢索出事務(wù)數(shù)據(jù)庫(kù)中的所有頻繁項(xiàng)集,即支持度不低于用戶設(shè)定的閾值的項(xiàng)集;
第二步利用頻繁項(xiàng)集構(gòu)造出滿足用戶最小信任度的規(guī)則。
算法優(yōu)點(diǎn):
·適合稀疏數(shù)據(jù)集;
·算法原理簡(jiǎn)單,易實(shí)現(xiàn);
·適合事務(wù)數(shù)據(jù)庫(kù)的關(guān)聯(lián)規(guī)則挖掘。
算法缺點(diǎn):
·可能產(chǎn)生龐大的候選集;
·算法需多次遍歷數(shù)據(jù)集,算法效率低,耗時(shí)。
8.SVM算法
支持向量機(jī),英文全稱“Support Vector Machines”(簡(jiǎn)稱 SVM),它是機(jī)器學(xué)習(xí)中最常用的一種“分類算法”,可廣泛地應(yīng)用于統(tǒng)計(jì)分類以及回歸分析。它是將向量映射到一個(gè)更高維的空間里,在這個(gè)空間里建立有一個(gè)最大間隔超平面。在分開數(shù)據(jù)的超平面的兩邊建有兩個(gè)互相平行的超平面,分隔超平面使兩個(gè)平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總誤差越小。
對(duì)于支持向量機(jī)而言有三個(gè)重要構(gòu)件,分別是:最大間隔、高維映射、核函數(shù)。
上述三者是 SVM 支持向量機(jī)的核心,用一句話來總結(jié)這三個(gè)部件的作用,那就是“最大間隔是標(biāo)尺,高維映射是關(guān)鍵,最終結(jié)論看核函數(shù)”。
算法優(yōu)點(diǎn):
·使用核函數(shù)可以向高維空間進(jìn)行映射;
·使用核函數(shù)可以解決非線性的分類;
·分類思想很簡(jiǎn)單,就是將樣本與決策面的間隔最大化。
·分類效果較好
算法缺點(diǎn):
·SVM算法對(duì)大規(guī)模訓(xùn)練樣本難以實(shí)施;
·用SVM解決多分類問題存在困難;
·對(duì)缺失數(shù)據(jù)敏感,對(duì)參數(shù)和核函數(shù)的選擇敏感?! ?/span>
9.K均值聚類算法
k均值聚類算法(k-means clustering algorithm)是一種迭代求解的聚類分析算法,其步驟是,預(yù)將數(shù)據(jù)分為K組,則隨機(jī)選取K個(gè)對(duì)象作為初始的聚類中心,然后計(jì)算每個(gè)對(duì)象與各個(gè)種子聚類中心之間的距離,把每個(gè)對(duì)象分配給距離它最近的聚類中心。聚類中心以及分配給它們的對(duì)象就代表一個(gè)聚類。每分配一個(gè)樣本,聚類的聚類中心會(huì)根據(jù)聚類中現(xiàn)有的對(duì)象被重新計(jì)算。這個(gè)過程將不斷重復(fù)直到滿足某個(gè)終止條件。終止條件可以是沒有(或最小數(shù)目)對(duì)象被重新分配給不同的聚類,沒有(或最小數(shù)目)聚類中心再發(fā)生變化,誤差平方和局部最小。
算法優(yōu)點(diǎn):
·是解決聚類問題的一種經(jīng)典算法,簡(jiǎn)單、快速;
·對(duì)處理大數(shù)據(jù)集,該算法保持可伸縮性和高效性;
·當(dāng)簇接近高斯分布時(shí),它的效果較好。
算法缺點(diǎn):
·在 K-means 算法中 K 是事先給定的,K 值的選定難以估計(jì);
·在 K-means 算法中,首先需要根據(jù)初始聚類中心來確定一個(gè)初始劃分,然后對(duì)初始劃分進(jìn)行優(yōu)化。這個(gè)初始聚類中心的選擇對(duì)聚類結(jié)果有較大的影響,一旦初始值選擇的不好,可能無(wú)法得到有效的聚類結(jié)果(可能會(huì)陷入死循環(huán));
·該算法需要不斷地進(jìn)行樣本分類調(diào)整,不斷地計(jì)算調(diào)整后的新的聚類中心,因此當(dāng)數(shù)據(jù)量非常大時(shí),算法的時(shí)間開銷是非常大的;
·若簇中含有異常點(diǎn),將導(dǎo)致均值偏離嚴(yán)重(即:對(duì)噪聲和孤立點(diǎn)數(shù)據(jù)敏感)
10. 線性回歸算法 Linear Regression
回歸分析(Regression Analysis)是統(tǒng)計(jì)學(xué)的數(shù)據(jù)分析方法,目的在于了解兩個(gè)或多個(gè)變量間是否相關(guān)、相關(guān)方向與強(qiáng)度,并建立數(shù)學(xué)模型以便觀察特定變量來預(yù)測(cè)其它變量的變化情況。
線性回歸算法(Linear Regression)的建模過程就是使用數(shù)據(jù)點(diǎn)來尋找最佳擬合線。公式,y = mx + c,其中 y 是因變量,x 是自變量,利用給定的數(shù)據(jù)集求 m 和 c 的值。
線性回歸又分為兩種類型,即 簡(jiǎn)單線性回歸(simple linear regression),只有 1 個(gè)自變量;多變量回歸(multiple regression),至少兩組以上自變量。
算法優(yōu)點(diǎn):
·思想簡(jiǎn)單,實(shí)現(xiàn)容易。建模迅速,對(duì)于小數(shù)據(jù)量、簡(jiǎn)單的關(guān)系很有效;
·是許多強(qiáng)大的非線性模型的基礎(chǔ);
·線性回歸模型十分容易理解,結(jié)果具有很好的可解釋性,有利于決策分析;
·蘊(yùn)含機(jī)器學(xué)習(xí)中的很多重要思想;
·能解決回歸問題。
算法缺點(diǎn):
·對(duì)于非線性數(shù)據(jù)或者數(shù)據(jù)特征間具有相關(guān)性多項(xiàng)式回歸難以建模;
·難以很好地表達(dá)高度復(fù)雜的數(shù)據(jù)。
經(jīng)典的機(jī)器學(xué)習(xí)算法還有很多,歡迎大家補(bǔ)充交流。
聯(lián)系客服