各種機(jī)器學(xué)習(xí)算法的應(yīng)用場景及優(yōu)缺點

應(yīng)用場景及優(yōu)缺點:

https://www.zhihu.com/question/26726794

https://blog.csdn.net/haipengdai/article/details/51981890

https://www.cnblogs.com/nolonely/p/6678256.html

機(jī)器學(xué)習(xí)分類情況、優(yōu)缺點:https://my.oschina.net/sunmin/blog/789809

一、k-means

1. 輸入數(shù)據(jù)

k-means是要計算距離的,所以只能應(yīng)用于連續(xù)型數(shù)據(jù),并且在聚類前要手動選擇分成幾類(可以事先畫圖看適合分成幾類)。

參考:https://blog.csdn.net/sinat_36710456/article/details/88019323

2. 初選中心、距離計算、求新的中心點、直到中心趨于穩(wěn)定

最常用歐式距離。為防止某些屬性數(shù)據(jù)值大影響距離的計算,可以歸一化處理。

參考:https://blog.csdn.net/github_39261590/article/details/76910689

http://www.itdecent.cn/p/5dbb677ff35c

3. 應(yīng)用場景

解決聚類問題。

4. 優(yōu)缺點

優(yōu)點:

① 算法簡單、快速

② 對處理大數(shù)據(jù)集,該算法是相對可伸縮的和高效率

③ 時間復(fù)雜度接近于線性,而且適合挖掘大規(guī)模數(shù)據(jù)集。K-Means聚類算法的時間復(fù)雜度是O(n×k×t) ,其中n代表數(shù)據(jù)集中對象的數(shù)量,t代表著算法迭代的次數(shù),k代表著簇的數(shù)目。

④ 當(dāng)簇是密集、球狀或團(tuán)狀的,簇與簇之間區(qū)別明顯時,它的聚類效果很好。

不適合非凸面形狀的簇,或者大小差別很大的簇。

缺點:

① 它只有在簇的平均值被定義的情況下才能使用,涉及有分類屬性的數(shù)據(jù)就不適用

② 必須給出要生成的簇的數(shù)目k,而這個k值有時不知道確定為幾。

對初值敏感。需要不斷調(diào)整參數(shù)。因此當(dāng)數(shù)據(jù)量非常大時,算法時間開銷是很大的。

對“噪聲”和“孤立點”敏感。少量的該類數(shù)據(jù)能夠?qū)ζ骄诞a(chǎn)生極大影響。

⑤ 可能收斂到局部最優(yōu),最終解的質(zhì)量很大程度上取決于初始化的分組。

⑥ 算法假設(shè):均方誤差是計算群組分散度的最佳參數(shù)

改進(jìn):

一是數(shù)據(jù)預(yù)處理:歸一化處理。

二是初始聚類中心選擇:k-means++思想,初始的聚類中心之間的相互距離要盡可能遠(yuǎn)。(步驟:先隨機(jī)選第一個類中心,根據(jù)較遠(yuǎn)距離選擇第二中心,重復(fù)直到k個中心都選出來)

三是對于孤立點的改進(jìn)——基于距離法。

找出孤立點并移除:首先掃描一次數(shù)據(jù)集, 計算每一個數(shù)據(jù)對象與其臨近對象的距離, 累加求其距離和, 并計算出距離和均值。如果某個數(shù)據(jù)對象的距離和大于距離和均值, 則視該點為孤立點。

二、決策樹

應(yīng)用場景:分類或回歸問題

優(yōu)點:容易可視化;算法完全不受數(shù)據(jù)縮放的影響,決策樹算法不需要特征預(yù)處理,比如歸一化或標(biāo)準(zhǔn)化;特別特征的尺度完全不一樣時或者二元特征和連續(xù)特征同時存在時,決策樹的效果很好。

缺點:容易過擬合,泛化能力差(預(yù)剪枝)。往往使用集成方法(隨機(jī)森林)

1. C4.5

1.1 輸入數(shù)據(jù)要求

離散型和連續(xù)性屬性

1.2 計算熵、計算信息增益、計算分裂信息度量、計算信息增益率、根據(jù)信息增益率進(jìn)行選擇屬性集中的屬性作為樹節(jié)點

熵:值越大,不確定性越大。熵計算公式:H(X)=- ∑ pi * logpi,i=1,2, ... , n

信息增益(經(jīng)驗熵):g(D,A)=H(D)?H(D|A)? ? ? 實際上就是特征A和D的互信息

分裂信息度量和信息增益率:

避免ID3不足的一個度量就是不用信息增益來選擇Feature,而是用信息增益比率(gainratio),增益比率通過引入一個被稱作分裂信息(Splitinformation)的項來懲罰取值較多的Feature,分裂信息用來衡量Feature分裂數(shù)據(jù)的廣度和均勻性。

但是當(dāng)某個Di的大小跟D的大小接近的時候,

SplitInformation(D,A)→0,GainRatio(D,A)→∞,

為了避免這樣的屬性,可以采用啟發(fā)式的思路,只對那些信息增益比較高的屬性才應(yīng)用信息增益比率。

1.3 優(yōu)缺點

優(yōu)點:

① 克服了ID3算法中以信息增益為分裂依據(jù)的不足

② 除了離散型屬性,還能處理連續(xù)型屬性

③ 構(gòu)造決策樹之后進(jìn)行剪枝操作,提高泛化能力;能夠處理有缺失屬性值的訓(xùn)練數(shù)據(jù);分類規(guī)則易于理解,準(zhǔn)確率較高(決策樹共有優(yōu)點

缺點:

① 構(gòu)造樹過程中,多次順序掃描和排序,導(dǎo)致計算效率較低,特別是含有連續(xù)型屬性樣本時

② 算法在選擇分裂屬性時,沒有考慮到條件屬性間的相關(guān)性,只計算數(shù)據(jù)集中每一個條件屬性與決策屬性之間的期望信息,有可能影響到屬性選擇的正確性。

2. CART(二叉樹)

2.1 輸入數(shù)據(jù)

離散值、連續(xù)值

2.2 計算基尼系數(shù)/均方差之和、進(jìn)行分裂、直到停止

分裂標(biāo)準(zhǔn):

分類樹:基尼系數(shù)(最小)——損失度量

回歸樹:每一類的均方差、均方差之和(最?。獡p失度量

2.3 剪枝

CCP(代價復(fù)雜度)剪枝:選擇增益值最小的非葉子節(jié)點,刪除其左右子節(jié)點;若有多個非葉子節(jié)點增益值相同小,則選擇子節(jié)點數(shù)最多的刪除。

2.4 缺點

① 無論ID3,C4.5,CART都是選擇一個最優(yōu)的特征做分類決策,但大多數(shù),分類決策不是由某一個特征決定,而是一組特征。這樣得到的決策樹更加準(zhǔn)確,這種決策樹叫多變量決策樹(multi-variate decision tree)。在選擇最優(yōu)特征的時,多變量決策樹不是選擇某一個最優(yōu)特征,而是選擇一個最優(yōu)的特征線性組合做決策。

② 樣本一點點改動,樹結(jié)構(gòu)劇烈改變??梢杂?b>隨機(jī)森林方法改進(jìn)。

3. 隨機(jī)森林

隨機(jī)森林是通過集成學(xué)習(xí)的bagging思想將多顆樹集成的一種算法,它的基本單元是決策樹。

參考:https://blog.csdn.net/qq_34106574/article/details/82016442

三、KNN

1. 非參、惰性

2. 優(yōu)缺點

優(yōu)點:

① 簡單易用,相比其他算法,KNN算是比較簡潔明了的算法。即使沒有很高的數(shù)學(xué)基礎(chǔ)也能搞清楚它的原理。

② 模型訓(xùn)練時間快。

③ 預(yù)測效果好。

④ 對異常值不敏感

缺點:

①?對內(nèi)存要求較高,因為該算法存儲了所有訓(xùn)練數(shù)據(jù)

②?預(yù)測階段可能很慢

③?對不相關(guān)的功能和數(shù)據(jù)規(guī)模敏感

當(dāng)需要使用分類算法,且數(shù)據(jù)比較大的時候就可以嘗試使用KNN算法進(jìn)行分類了。

四、邏輯回歸

1. 數(shù)據(jù)要求

線性回歸模型:因變量是連續(xù)變量

邏輯回歸:因變量是定性變量,是分類問題

2. 由于線性回歸擬合結(jié)果容易受異常值的影響,邏輯回歸將線性回歸的判別函數(shù)轉(zhuǎn)換,將得到的結(jié)果放在[0,1]區(qū)間里,表示為出現(xiàn)正例的概率。而具體的判定閾值需要視具體情況而定。

3. 邏輯回歸對樣本類別數(shù)目差距很大時,預(yù)測效果不好。這時我們需要對數(shù)據(jù)進(jìn)行欠采樣/重采樣。

五、AdaBoost

1.?Adaboost算法是經(jīng)過調(diào)整的Boosting算法,其能夠?qū)θ鯇W(xué)習(xí)得到的弱分類器的錯誤進(jìn)行適應(yīng)性調(diào)整。每一次迭代,都要對權(quán)重進(jìn)行更新。更新的規(guī)則是:減小弱分類器分類效果較好的數(shù)據(jù)的概率,增大弱分類器分類效果較差的數(shù)據(jù)的概率。最終的分類器是個弱分類器的加權(quán)平均。

2. 優(yōu)缺點

優(yōu)點:

? ? ?(1)Adaboost提供一種框架,在框架內(nèi)可以使用各種方法構(gòu)建子分類器??梢允褂煤唵蔚娜醴诸惼?,不用對特征進(jìn)行篩選。

? ? ?(2)Adaboost算法不需要弱分類器的先驗知識,最后得到的強(qiáng)分類器的分類精度依賴于所有弱分類器。無論是應(yīng)用于人造數(shù)據(jù)還是真實數(shù)據(jù),Adaboost都能顯著的提高學(xué)習(xí)精度。

? ? ?(3)Adaboost算法不需要預(yù)先知道弱分類器的錯誤率上限,且最后得到的強(qiáng)分類器的分類精度依賴于所有弱分類器的分類精度,可以深挖分類器的能力。Adaboost可以根據(jù)弱分類器的反饋,自適應(yīng)地調(diào)整假定的錯誤率,執(zhí)行的效率高。

? ? ?(4)Adaboost對同一個訓(xùn)練樣本集訓(xùn)練不同的弱分類器,按照一定的方法把這些弱分類器集合起來,構(gòu)造一個分類能力很強(qiáng)的強(qiáng)分類器,即“三個臭皮匠賽過一個諸葛亮”。

缺點:

? ? ?在Adaboost訓(xùn)練過程中,Adaboost會使得難于分類樣本的權(quán)值呈指數(shù)增長,訓(xùn)練將會過于偏向這類困難的樣本,導(dǎo)致Adaboost算法易受噪聲干擾。此外,Adaboost依賴于弱分類器,而弱分類器的訓(xùn)練時間往往很長。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容