
-- 原創(chuàng),未經(jīng)授權(quán),禁止轉(zhuǎn)載 2017.11.06 --
傳送門:
機(jī)器學(xué)習(xí)的基本概念(一):http://www.itdecent.cn/p/10fc7e397a3e
機(jī)器學(xué)習(xí)的基本概念(二):http://www.itdecent.cn/p/b3edf9c9f2c8
機(jī)器學(xué)習(xí)模型評(píng)估與選擇:http://www.itdecent.cn/p/c5111d585367
一、算法類別
機(jī)器學(xué)習(xí)的算法繁多,分類方式也很多,如:
- 生成模式 與 判別模式
- 參數(shù) 與 非參數(shù) 模式
- 監(jiān)督 與 非監(jiān)督 模式
- 基于學(xué)習(xí)任務(wù)
最有效的算法分類,是基于學(xué)習(xí)任務(wù)的,它在實(shí)踐中使用廣泛。那么,如何選擇合適的算法呢?
通常,我們根據(jù)算法的優(yōu)缺點(diǎn)、訓(xùn)練數(shù)據(jù)規(guī)模、數(shù)據(jù)質(zhì)量、任務(wù)目標(biāo),等等問(wèn)題綜合考慮。當(dāng)然,選擇大家認(rèn)可度高的算法,更容易得到“不錯(cuò)”的結(jié)果。
- 算法總結(jié)圖
算法按功能類別大致分為13種,下圖總結(jié)了不同類別算法的優(yōu)缺點(diǎn),以及著名代表算法。

二、基于學(xué)習(xí)任務(wù)的算法分類
上篇文章講到,機(jī)器學(xué)習(xí)中,學(xué)習(xí)方式我們主要分兩大類:
- 監(jiān)督學(xué)習(xí) :訓(xùn)練數(shù)據(jù)【有】標(biāo)記信息。
- 無(wú)監(jiān)督學(xué)習(xí):訓(xùn)練數(shù)據(jù)【沒有】標(biāo)記信息。
(其實(shí)還會(huì)分為半監(jiān)督學(xué)習(xí),強(qiáng)化學(xué)習(xí)等類型。這里不做過(guò)多探討。)
-
監(jiān)督學(xué)習(xí)中,最有代表性的任務(wù)是:
- 分類:對(duì)指定的模式進(jìn)行識(shí)別,預(yù)測(cè)值是離散的。
- 回歸:對(duì)指定的模式進(jìn)行識(shí)別,預(yù)測(cè)值是連續(xù)的。
-
無(wú)監(jiān)督學(xué)習(xí)中,最有代表性的任務(wù)是:
- 聚類:基于數(shù)據(jù)的內(nèi)部結(jié)構(gòu)尋找觀察樣本的自然族群(即集群)。
- 降維:在保留數(shù)據(jù)結(jié)構(gòu)和有用性的同時(shí)對(duì)數(shù)據(jù)進(jìn)行壓縮。
這里想討論的,是基于不同的學(xué)習(xí)任務(wù),常用的算法有哪些,優(yōu)缺點(diǎn)是什么。
如下圖:

1)分類任務(wù)
a)概述
通過(guò)對(duì)已知分類的數(shù)據(jù)進(jìn)行訓(xùn)練和學(xué)習(xí),找到這些不同類的特征,再對(duì)未分類的數(shù)據(jù)進(jìn)行分類。
分類算法通常適用于預(yù)測(cè)一個(gè)類別(或類別的概率),而不是連續(xù)的數(shù)值。
- 分類算法的流程:
訓(xùn)練:訓(xùn)練集——>特征選取——>訓(xùn)練——>分類器
分類:新樣本——>特征選取——>分類——>判決
b)應(yīng)用:
- 判斷用戶的性別
- 預(yù)測(cè)用戶是否會(huì)購(gòu)買給定的品類
- 判斷一條評(píng)論是正面的還是負(fù)面的
c)算法解釋
-
邏輯回歸(Logistic Regression)
簡(jiǎn)單來(lái)說(shuō),邏輯回歸是一種用于解決二分類(0 or 1)問(wèn)題的機(jī)器學(xué)習(xí)方法,用于估計(jì)某種事物的可能性。它通過(guò) Logistic 函數(shù)(即 Sigmoid 函數(shù))將預(yù)測(cè)映射到 0 到 1 中間,不僅可以預(yù)測(cè)類別,還可得到近似概率的預(yù)測(cè),這對(duì)許多需要利用概率輔助的任務(wù)很有用。介紹一下Sigmoid函數(shù),也稱為邏輯函數(shù)(Logistic function):
其函數(shù)曲線如下:
從上圖可以看到sigmoid函數(shù)是一個(gè)s形的曲線,它的取值在[0, 1]之間,在遠(yuǎn)離0的地方函數(shù)的值會(huì)很快接近0或者1。它的這個(gè)特性對(duì)于解決二分類問(wèn)題十分重要。
求解過(guò)程:
1.首先假設(shè)誤差存在且為高斯分布,等價(jià)于真實(shí)數(shù)據(jù)的概率分布。
2.求出聯(lián)合概率分布,也就是似然函數(shù)。
3.進(jìn)行取對(duì)數(shù)運(yùn)算,得到對(duì)數(shù)似然函數(shù)l(θ)。
4.求l(θ)的最大值,得到了最小二乘的策略。
5.使用梯度下降,讓參數(shù)逐漸逼近最小二乘法中的最優(yōu)解。-
優(yōu)點(diǎn):
- 實(shí)現(xiàn)簡(jiǎn)單,廣泛的應(yīng)用于工業(yè)問(wèn)題上;
- 分類時(shí)計(jì)算量非常小,速度快,存儲(chǔ)資源低;
- 輸出有很好的概率解釋,算法可以正則化而避免過(guò)擬合;
-
缺點(diǎn):
- 在多條或非線性決策邊界時(shí)性能比較差;
- 容易欠擬合,一般準(zhǔn)確度不太高;
- 只能處理兩分類問(wèn)題(在此基礎(chǔ)上衍生出來(lái)的softmax可以用于多分類),且必須線性可分;
-
-
樸素貝葉斯(Naive Bayes, NB)
樸素貝葉斯是一種基于貝葉斯定理和特征條件獨(dú)立假設(shè)的分類方法。本質(zhì)上樸素貝葉斯模型就是一個(gè)概率表,通過(guò)訓(xùn)練數(shù)據(jù)更新這張表中的概率。為了預(yù)測(cè)一個(gè)新的觀察值,樸素貝葉斯算法就是根據(jù)樣本的特征值在概率表中尋找最大概率的那個(gè)類別。
之所以稱之為「樸素」,是因?yàn)樵撍惴ǖ暮诵木褪翘卣鳁l件獨(dú)立性假設(shè)(每一個(gè)特征之間相互獨(dú)立),而這一假設(shè)在現(xiàn)實(shí)世界中基本是不現(xiàn)實(shí)的。
-
優(yōu)點(diǎn):
- 容易實(shí)現(xiàn)并能隨數(shù)據(jù)集的更新而擴(kuò)展;
- 對(duì)小規(guī)模的數(shù)據(jù)表現(xiàn)很好,能個(gè)處理多分類任務(wù),適合增量式訓(xùn)練;
- 對(duì)缺失數(shù)據(jù)不太敏感,算法也比較簡(jiǎn)單,常用于文本分類。
-
缺點(diǎn):
- 需要計(jì)算先驗(yàn)概率;
- 需要條件獨(dú)立假設(shè),分類決策存在錯(cuò)誤率;
-
應(yīng)用場(chǎng)景:
- 情感分析、消費(fèi)者分類
-
-
AdaBoost
首先要解釋一個(gè)名詞,【集成學(xué)習(xí)】,就是將多個(gè)弱的學(xué)習(xí)器結(jié)合起來(lái)組成一個(gè)強(qiáng)的學(xué)習(xí)器。
目前主要有兩種生成方式:
- Boosting:個(gè)體學(xué)習(xí)器間存在強(qiáng)依賴關(guān)系,必須串行生成。
- Bagging與隨機(jī)森林:個(gè)體之間不存在強(qiáng)依賴關(guān)系,可并行生成。
Boosting族算法最著名的代表就是AdaBoost。
工作機(jī)制類似于:
1)給定初始訓(xùn)練數(shù)據(jù),由此訓(xùn)練出第一個(gè)基學(xué)習(xí)器;
2)根據(jù)基學(xué)習(xí)器的表現(xiàn)對(duì)樣本進(jìn)行調(diào)整,在之前學(xué)習(xí)器做錯(cuò)的樣本上投入更多關(guān)注;
3)用調(diào)整后的樣本,訓(xùn)練下一個(gè)基學(xué)習(xí)器;
4)重復(fù)上述過(guò)程 T 次,將 T 個(gè)學(xué)習(xí)器加權(quán)結(jié)合。-
優(yōu)點(diǎn):
- 可以自動(dòng)組合弱分類器,且分類精度很高;
- 在Adaboost的框架下,可以使用各種回歸分類模型來(lái)構(gòu)建弱學(xué)習(xí)器,非常靈活;
- 作為簡(jiǎn)單的二元分類器時(shí),構(gòu)造簡(jiǎn)單,結(jié)果可理解;
- 不易發(fā)生過(guò)擬合;
-
缺點(diǎn):
- 對(duì)異常樣本敏感,異常樣本在迭代中可能會(huì)獲得較高的權(quán)重,影響最終的強(qiáng)學(xué)習(xí)器的預(yù)測(cè)準(zhǔn)確性;
- 訓(xùn)練比較耗時(shí);
-
支持向量機(jī)SVM
對(duì)于分類學(xué)習(xí)最基本的想法就是基于訓(xùn)練集的樣本空間中,找到一個(gè)劃分超平面,將不同類別的樣本分開。超平面有很多,我們希望能找到一個(gè)邊界,在邊界范圍之內(nèi),都存在劃分超平面。如下圖中虛線所示,在虛線之內(nèi)的任意超平面,都能完全劃分出不同類別。
而處于虛線之上的向量,我們稱為【支持向量】。因?yàn)檫@兩個(gè)向量之間的距離,就是我們能找到的具有“最大間隔”的劃分超平面。
SVMSVM算法其實(shí)就是靠支持向量來(lái)計(jì)算最大Margin的一個(gè)算法,因此將其命名為支持向量機(jī)。
- 優(yōu)點(diǎn):
- 解決小樣本下機(jī)器學(xué)習(xí)問(wèn)題;
- 解決非線性問(wèn)題;
- 無(wú)局部極小值問(wèn)題(相對(duì)于神經(jīng)網(wǎng)絡(luò)等算法);
- 可以很好的處理高維數(shù)據(jù)集;
- 泛化能力比較強(qiáng);
- 缺點(diǎn):
- 對(duì)于核函數(shù)的高維映射解釋力不強(qiáng),尤其是徑向基函數(shù);
- 對(duì)缺失數(shù)據(jù)敏感;
- 很難調(diào)參,也不能擴(kuò)展到較大的數(shù)據(jù)集中;
- 應(yīng)用:
- 文本分類、圖像識(shí)別;
- 目前在工業(yè)界中,隨機(jī)森林通常優(yōu)于支持向量機(jī)算法;
- 優(yōu)點(diǎn):
-
K近鄰(K-nearest neighbors, KNN)
KNN即最近鄰算法,其主要過(guò)程為:- 計(jì)算訓(xùn)練樣本和測(cè)試樣本中每個(gè)樣本點(diǎn)的距離(常見的距離度量有歐式距離,馬氏距離等);
- 對(duì)上面所有的距離值進(jìn)行排序;
- 選前k個(gè)最小距離的樣本;
- 根據(jù)這k個(gè)樣本的標(biāo)簽進(jìn)行投票,得到最后的分類類別;
如何選擇一個(gè)最佳的K值,這取決于數(shù)據(jù)。一般情況下,在分類時(shí)較大的K值能夠減小噪聲的影響,但會(huì)使類別之間的界限變得模糊。
近鄰算法具有較強(qiáng)的一致性結(jié)果。隨著數(shù)據(jù)趨于無(wú)限,算法保證錯(cuò)誤率不會(huì)超過(guò)貝葉斯算法錯(cuò)誤率的兩倍。對(duì)于一些好的K值,K近鄰保證錯(cuò)誤率不會(huì)超過(guò)貝葉斯理論誤差率。
- 優(yōu)點(diǎn):
- KNN是一種在線技術(shù),新數(shù)據(jù)可以直接加入數(shù)據(jù)集而不必進(jìn)行重新訓(xùn)練;
- KNN理論簡(jiǎn)單,容易實(shí)現(xiàn);
- 缺點(diǎn):
- 對(duì)于樣本容量大的數(shù)據(jù)集計(jì)算量比較大;
- 樣本類別不平衡時(shí),預(yù)測(cè)偏差比較大;
- KNN每一次分類都會(huì)重新進(jìn)行一次全局運(yùn)算,訓(xùn)練時(shí)間復(fù)雜度為O(n);
- k值大小的選擇難;
- 應(yīng)用:
- 文本分類、模式識(shí)別、聚類分析,多分類領(lǐng)域
-
決策樹(Decision Tree, DT)
其本質(zhì)是一顆由多個(gè)判斷節(jié)點(diǎn)組成的樹,根據(jù)特征集取值不同,將樣本逐層劃分并建立規(guī)則,直到某一個(gè)樣本集合內(nèi)的所有樣本屬于同一類。在使用模型進(jìn)行預(yù)測(cè)時(shí),根據(jù)輸入?yún)?shù)依次在各個(gè)判斷節(jié)點(diǎn)進(jìn)行判斷游走,最后到葉子節(jié)點(diǎn)即為預(yù)測(cè)結(jié)果。
分類樹
如果目標(biāo)變量是標(biāo)稱的,稱為分類樹;如果目標(biāo)變量是連續(xù)的,稱為回歸樹。分類樹是使用樹結(jié)構(gòu)算法將數(shù)據(jù)分成離散類的方法。
它們通常都是指決策樹,或更嚴(yán)謹(jǐn)一點(diǎn)地稱之為「分類回歸樹(CART)」,這也就是非常著名的 CART 的算法。-
優(yōu)點(diǎn):
- 決策樹易于理解和解釋,可以可視化分析,容易提取出規(guī)則;
- 可以同時(shí)處理標(biāo)稱型和數(shù)值型數(shù)據(jù);
- 測(cè)試數(shù)據(jù)集時(shí),運(yùn)行速度比較快;
- 決策樹可以很好的擴(kuò)展到大型數(shù)據(jù)庫(kù)中,同時(shí)它的大小獨(dú)立于數(shù)據(jù)庫(kù)大??;
-
缺點(diǎn):
- 對(duì)缺失數(shù)據(jù)處理比較困難;
- 容易出現(xiàn)過(guò)擬合問(wèn)題;
- 忽略數(shù)據(jù)集中屬性的相互關(guān)聯(lián);
-
改進(jìn):
- 對(duì)決策樹進(jìn)行剪枝。可以采用交叉驗(yàn)證法和加入正則化的方法;
- 使用基于決策樹的combination算法,如bagging算法,randomforest算法,可以解決過(guò)擬合的問(wèn)題;
-
應(yīng)用:
- 企業(yè)管理實(shí)踐,企業(yè)投資決策;
-
深度學(xué)習(xí)
深度學(xué)習(xí)是指能學(xué)習(xí)極其復(fù)雜模式的多層神經(jīng)網(wǎng)絡(luò)。該算法使用在輸入層和輸出層之間的隱藏層對(duì)數(shù)據(jù)的中間表征建模,這也是其他算法很難學(xué)到的部分。
[圖片上傳失敗...(image-e97650-1510761156182)]
深度學(xué)習(xí)還有其他幾個(gè)重要的機(jī)制,如卷積和 drop-out 等,這些機(jī)制令該算法能有效地學(xué)習(xí)到高維數(shù)據(jù)。然而深度學(xué)習(xí)相對(duì)于其他算法需要更多的數(shù)據(jù),因?yàn)槠溆懈髷?shù)量級(jí)的參數(shù)需要估計(jì)。-
優(yōu)點(diǎn):
- 在圖像、音頻和文本等數(shù)據(jù)上表現(xiàn)優(yōu)異;
- 容易對(duì)新數(shù)據(jù)使用反向傳播算法更新模型參數(shù);
- 它們的架構(gòu)(即層級(jí)的數(shù)量和結(jié)構(gòu))能夠適應(yīng)于多種問(wèn)題,并且隱藏層也減少了算法對(duì)特征工程的依賴。
-
缺點(diǎn):
- 需要大量的數(shù)據(jù);
- 難調(diào)參;
-
-
隨機(jī)森林(Random Forest)RF
首先要講一個(gè)概念,Bagging(bootstrap aggregation)封袋算法。前面講AdaBoost算法,是Boosting的代表。隨機(jī)森林是Bagging的代表。
Bagging:并行式集成學(xué)習(xí)方法最著名的代表。它抽取訓(xùn)練樣本采用自助采樣法(bootstrap),所以就叫bootstrap aggregation算法。
1.從原始樣本集中抽取訓(xùn)練集。每輪從原始樣本集中使用Bootstraping的方法抽取n個(gè)訓(xùn)練樣本(有放回)。
共進(jìn)行k輪抽取,得到k個(gè)訓(xùn)練集。(k個(gè)訓(xùn)練集之間是相互獨(dú)立的)
2.每次使用一個(gè)訓(xùn)練集得到一個(gè)模型,k個(gè)訓(xùn)練集共得到k個(gè)模型。
3.對(duì)分類問(wèn)題:將上步得到的k個(gè)模型采用投票的方式得到分類結(jié)果;
對(duì)回歸問(wèn)題:計(jì)算上述模型的均值作為最后的結(jié)果。隨機(jī)森林(RF),顧名思義,是用隨機(jī)的方式建立一個(gè)森林,森林里面有很多的決策樹組成,隨機(jī)森林的每一棵決策樹之間是沒有關(guān)聯(lián)的。
在得到森林之后,當(dāng)有一個(gè)新的輸入樣本進(jìn)入的時(shí)候,就讓森林中的每一棵決策樹分別進(jìn)行一下判斷,看看這個(gè)樣本應(yīng)該屬于哪一類(對(duì)于分類算法),然后看看哪一類被選擇最多,就預(yù)測(cè)這個(gè)樣本為那一類。
在建立每一棵決策樹的過(guò)程中,有兩點(diǎn)需要注意--采樣與完全分裂。這是兩個(gè)隨機(jī)采樣的過(guò)程,RF對(duì)輸入的數(shù)據(jù)進(jìn)行 行和列 的采樣。
1.對(duì)于行采樣,采用有放回的方式,也就是在采樣得到的樣本集合中,可能有重復(fù)的樣本。
假設(shè)輸入樣本為N個(gè),那么采樣的樣本也為N個(gè)。這樣使得在訓(xùn)練的時(shí)候,每一棵樹的輸入樣本都不是全部的樣本,使得相對(duì)不容易出現(xiàn)over-fitting。
2.進(jìn)行列采樣,從M個(gè)feature中,選擇m個(gè)(m << M)。
3.對(duì)采樣之后的數(shù)據(jù)使用完全分裂的方式建立出決策樹。
這樣決策樹的某一個(gè)葉子節(jié)點(diǎn)要么是無(wú)法繼續(xù)分裂的,要么里面的所有樣本的都是指向的同一個(gè)分類。一般決策樹算法都需要--剪枝,但隨機(jī)森林不需要,因?yàn)閮蓚€(gè)隨機(jī)采樣過(guò)程保證了隨機(jī)性,所以不剪枝,也不會(huì)出現(xiàn)過(guò)擬合。
-
優(yōu)點(diǎn):
- 不容易出現(xiàn)過(guò)擬合,因?yàn)檫x擇訓(xùn)練樣本的時(shí)候就不是全部樣本。
- 既可以處理屬性為離散值的量,比如ID3算法來(lái)構(gòu)造樹,也可以處理屬性為連續(xù)值的量,比如C4.5算法來(lái)構(gòu)造樹。
- 對(duì)于高維數(shù)據(jù)集的處理能力令人興奮,它可以處理成千上萬(wàn)的輸入變量,并確定最重要的變量,因此被認(rèn)為是一個(gè)不錯(cuò)的降維方法。此外,該模型能夠輸出變量的重要性程度,這是一個(gè)非常便利的功能。
- 分類不平衡的情況時(shí),隨機(jī)森林能夠提供平衡數(shù)據(jù)集誤差的有效方法
-
缺點(diǎn):
- 隨機(jī)森林在解決回歸問(wèn)題時(shí)并沒有像它在分類中表現(xiàn)的那么好,這是因?yàn)樗⒉荒芙o出一個(gè)連續(xù)型的輸出。當(dāng)進(jìn)行回歸時(shí),隨機(jī)森林不能夠作出超越訓(xùn)練集數(shù)據(jù)范圍的預(yù)測(cè),這可能導(dǎo)致在對(duì)某些還有特定噪聲的數(shù)據(jù)進(jìn)行建模時(shí)出現(xiàn)過(guò)度擬合。
- 對(duì)于許多統(tǒng)計(jì)建模者來(lái)說(shuō),隨機(jī)森林給人的感覺像是一個(gè)黑盒子——你幾乎無(wú)法控制模型內(nèi)部的運(yùn)行,只能在不同的參數(shù)和隨機(jī)種子之間進(jìn)行嘗試。
-
2)回歸

a)概述
回歸算法用于連續(xù)型分布預(yù)測(cè),針對(duì)的是數(shù)值型的樣本,使用回歸,可以在給定輸入的時(shí)候預(yù)測(cè)出一個(gè)數(shù)值,這是對(duì)分類方法的提升,因?yàn)檫@樣可以預(yù)測(cè)連續(xù)型數(shù)據(jù)而不僅僅是離散的類別標(biāo)簽。
回歸的目的就是建立一個(gè)回歸方程用來(lái)預(yù)測(cè)目標(biāo)值,回歸的求解就是求這個(gè)回歸方程的回歸系數(shù)。
b)應(yīng)用:
房?jī)r(jià)預(yù)測(cè)、股票走勢(shì)或測(cè)試成績(jī)等連續(xù)變化的案例。
c)算法解釋:
-
線性回歸(Linear Regression)
線性回歸是處理回歸任務(wù)最常用的算法之一。該算法的形式十分簡(jiǎn)單,它期望使用一個(gè)超平面擬合數(shù)據(jù)集(只有兩個(gè)變量的時(shí)候就是一條直線)。如果數(shù)據(jù)集中的變量存在線性關(guān)系,那么其就能擬合地非常好。[圖片上傳失敗...(image-13b723-1510761156182)]
在實(shí)踐中,簡(jiǎn)單的線性回歸通常被使用正則化的回歸方法(LASSO、Ridge 和 Elastic-Net)所代替。正則化其實(shí)就是一種對(duì)過(guò)多回歸系數(shù)采取懲罰以減少過(guò)擬合風(fēng)險(xiǎn)的技術(shù)。當(dāng)然,我們還得確定懲罰強(qiáng)度以讓模型在欠擬合和過(guò)擬合之間達(dá)到平衡。-
優(yōu)點(diǎn):
- 實(shí)現(xiàn)簡(jiǎn)單,計(jì)算簡(jiǎn)單;
- 解釋性好,還能通過(guò)正則化來(lái)降低過(guò)擬合的風(fēng)險(xiǎn);
- 容易使用隨機(jī)梯度下降和新數(shù)據(jù)更新模型權(quán)重;
-
缺點(diǎn):
- 不能擬合非線性數(shù)據(jù);
邏輯回歸與線性回歸的關(guān)系?
邏輯回歸(Logistic Regression)與線性回歸(Linear Regression)都是一種廣義線性模型(generalized linear model)。邏輯回歸假設(shè)因變量 y 服從伯努利分布,而線性回歸假設(shè)因變量 y 服從高斯分布。
因此與線性回歸有很多相同之處,去除Sigmoid映射函數(shù)的話,邏輯回歸算法就是一個(gè)線性回歸。
可以說(shuō),邏輯回歸是以線性回歸為理論支持的,但是邏輯回歸通過(guò)Sigmoid函數(shù)引入了非線性因素,因此可以輕松處理0/1分類問(wèn)題。
-
-
回歸樹
回歸樹(決策樹的一種)通過(guò)將數(shù)據(jù)集重復(fù)分割為不同的分支而實(shí)現(xiàn)分層學(xué)習(xí),分割的標(biāo)準(zhǔn)是最大化每一次分離的信息增益。這種分支結(jié)構(gòu)讓回歸樹很自然地學(xué)習(xí)到非線性關(guān)系。集成方法,如隨機(jī)森林(RF)或梯度提升樹(GBM)則組合了許多獨(dú)立訓(xùn)練的樹。
這種算法的主要思想就是組合多個(gè)弱學(xué)習(xí)算法而成為一種強(qiáng)學(xué)習(xí)算法。在實(shí)踐中 RF 通常很容易有出色的表現(xiàn),而 GBM 則更難調(diào)參,不過(guò)通常梯度提升樹具有更高的性能上限。
- 優(yōu)點(diǎn):
- 參考決策樹;
- 缺點(diǎn):
- 參考決策樹;
- 優(yōu)點(diǎn):
3)聚類

a)概述
聚類,就是根據(jù)數(shù)據(jù)的"相似性"將數(shù)據(jù)分為多類的過(guò)程。
所有的聚類算法都試圖找到數(shù)據(jù)的內(nèi)在結(jié)構(gòu),以便按照最大的共同點(diǎn)將數(shù)據(jù)進(jìn)行歸類。
b)應(yīng)用:
細(xì)分客戶、新聞聚類、文章推薦等。
c)算法解釋:
-
k均值算法 K-means
K-means算法是發(fā)現(xiàn)給定數(shù)據(jù)集的k個(gè)簇的算法。簇個(gè)數(shù)k是用戶給定的,每個(gè)簇通過(guò)其質(zhì)心(centroid),即簇中所有點(diǎn)的中心來(lái)描述。簡(jiǎn)單來(lái)說(shuō),是將相似的對(duì)象歸到同一個(gè)蔟中。蔟內(nèi)的對(duì)象越相似,聚類的效果就越好。
聚類的度量基于樣本點(diǎn)之間的幾何距離(即在坐標(biāo)平面中的距離)。集群是圍繞在聚類中心的族群,而集群呈現(xiàn)出類球狀并具有相似的大小。
聚類和分類最大的不同在于,分類的目標(biāo)事先已知,而聚類則不一樣。其產(chǎn)生的結(jié)果和分類相同,而只是類別沒有預(yù)先定義。
步驟
1.創(chuàng)建k個(gè)點(diǎn)作為k個(gè)簇的起始質(zhì)心(經(jīng)常隨機(jī)選擇)。
2.分別計(jì)算剩下的元素到k個(gè)簇中心的相異度(距離),將這些元素分別劃歸到相異度最低的簇。
3.根據(jù)聚類結(jié)果,重新計(jì)算k個(gè)簇各自的中心,計(jì)算方法是取簇中所有元素各自維度的算術(shù)平均值。
4.將D中全部元素按照新的中心重新聚類。
5.重復(fù)第4步,直到聚類結(jié)果不再變化。
6.最后,輸出聚類結(jié)果。[圖片上傳失敗...(image-18be97-1510761156182)]
-
優(yōu)點(diǎn):
- 聚類問(wèn)題的經(jīng)典算法,算法簡(jiǎn)單、快速。
- 對(duì)處理大數(shù)據(jù)集,該算法是相對(duì)可伸縮的和高效率的,因?yàn)樗膹?fù)雜度大約是O(nkt),其中n是所有對(duì)象的數(shù)目,k是簇的數(shù)目,t是迭代的次數(shù)。通常k<<n。這個(gè)算法通常局部收斂。
- 算法嘗試找出使平方誤差函數(shù)值最小的k個(gè)劃分。當(dāng)簇是密集的、球狀或團(tuán)狀的,且簇與簇之間區(qū)別明顯時(shí),聚類效果較好。
-
缺點(diǎn):
- k-平均方法只有在簇的平均值被定義的情況下才能使用,且對(duì)有些分類屬性的數(shù)據(jù)不適合。
- 要求用戶必須事先給出要生成的簇的數(shù)目k。
- 對(duì)初值敏感,對(duì)于不同的初始值,可能會(huì)導(dǎo)致不同的聚類結(jié)果。
- 不適合于發(fā)現(xiàn)非凸面形狀的簇,或者大小差別很大的簇。
- 對(duì)于"噪聲"和孤立點(diǎn)數(shù)據(jù)敏感,少量的該類數(shù)據(jù)能夠?qū)ζ骄诞a(chǎn)生極大影響。
-
-
層次聚類
試圖在不同層次對(duì)數(shù)據(jù)集進(jìn)行劃分,從而形成樹形的聚類結(jié)構(gòu)。數(shù)據(jù)集的劃分可采用“自底向上”的聚合策略,也可采用“自頂向下”的分拆策略。 代表算法:AGNES
算法過(guò)程:
1、將每個(gè)對(duì)象歸為一類, 共得到N類, 每類僅包含一個(gè)對(duì)象. 類與類之間的距離就是它們所包含的對(duì)象之間的距離.
2、 找到最接近的兩個(gè)類并合并成一類, 于是總的類數(shù)少了一個(gè).
3、 重新計(jì)算新的類與所有舊類之間的距離.
4、重復(fù)第2步和第3步, 直到最后合并成一個(gè)類為止(此類包含了N個(gè)對(duì)象).[圖片上傳失敗...(image-3d2ef-1510761156182)]
- 優(yōu)點(diǎn):
- 集群不再需要假設(shè)為類球形,也可以擴(kuò)展到大數(shù)據(jù)集。
- 缺點(diǎn):
- 需要設(shè)定集群的數(shù)量(即在算法完成后需要保留的層次)。
- 優(yōu)點(diǎn):
4)降維
a)概述
降維,通過(guò)某種數(shù)學(xué)變換將原始高維屬性空間轉(zhuǎn)變?yōu)橐粋€(gè)低維子空間,在這個(gè)子空間中樣本密度大幅提高,距離計(jì)算也變得更加容易。
降維的方法可以分為:
- 線性方法:PCA、LDA;
- 非線性方法:核PCA、多層自動(dòng)編碼;
說(shuō)到維度,其目的是用來(lái)進(jìn)行特征選擇和特征提取,注意特征選擇和特征提取這二者的不同之處:
【特征選擇】:選擇重要特征子集,刪除其余特征。
【特征提取】:由原始特征形成較少的新特征。
- 降維的作用:
- 降低時(shí)間復(fù)雜度和空間復(fù)雜度;
- 節(jié)省了提取不必要特征的開銷;
- 去掉數(shù)據(jù)集中夾雜的噪聲;
- 較簡(jiǎn)單的模型在小數(shù)據(jù)集上有更強(qiáng)的魯棒性;
- 當(dāng)數(shù)據(jù)能有較少的特征進(jìn)行解釋,我們可以更好的解釋數(shù)據(jù),使得我們可以提取知識(shí);
- 實(shí)現(xiàn)數(shù)據(jù)可視化;
c)算法解釋
-
主成分分析算法 (Principal Component Analysis) PCA
主成分分析算法是最常用的線性降維方法,它的目標(biāo)是通過(guò)某種線性投影,將高維的數(shù)據(jù)映射到低維的空間中表示,并期望在所投影的維度上數(shù)據(jù)的方差最大,以此使用較少的數(shù)據(jù)維度,同時(shí)保留住較多的原數(shù)據(jù)點(diǎn)的特性。通俗的理解,如果把所有的點(diǎn)都映射到一起,那么幾乎所有的信息(如點(diǎn)和點(diǎn)之間的距離關(guān)系)都丟失了,而如果映射后方差盡可能的大,那么數(shù)據(jù)點(diǎn)則會(huì)分散開來(lái),以此來(lái)保留更多的信息。
可以證明,PCA是丟失原始數(shù)據(jù)信息最少的一種線性降維方式。(實(shí)際上就是最接近原始數(shù)據(jù),但是PCA并不試圖去探索數(shù)據(jù)內(nèi)在結(jié)構(gòu))
image-
優(yōu)點(diǎn):
- 可處理大規(guī)模數(shù)據(jù)集
- 無(wú)需在數(shù)據(jù)上進(jìn)行假設(shè)
-
缺點(diǎn):
- 難以搞定非線性數(shù)據(jù)
- 難以理解結(jié)果的意義
-
結(jié)束
算法還有很多,且學(xué)且珍惜~~
最后,我的目的是成為一名ai pm,求推薦~
- 參考文章:
http://blog.jobbole.com/60809/
http://blog.csdn.net/starzhou/article/details/72614795
http://www.itdecent.cn/p/a0e405dffa3a
-- 原創(chuàng),未經(jīng)授權(quán),禁止轉(zhuǎn)載 2017.11.06 --






