Machine Learning-常見演算法優缺點匯總
08-16
Machine Learning-常見演算法優缺點匯總
推薦閱讀:
來自專欄 Python程序員56 人贊了文章
作者:阿Sam Python愛好者社區專欄作者
個人公眾號:SAMshare
前文傳送門:
Machine Learning-演算法匯總介紹 Machine Learning-模型調優備忘錄 Machine Learning-模型結果的應用之道機器學習演算法我們了解了很多,但是放在一起來比較優缺點是缺少的,本篇文章就一些常見的演算法來進行一次優缺點梳理。
決策樹演算法一、決策樹優點1、決策樹易於理解和解釋,可以可視化分析,容易提取出規則。2、可以同時處理標稱型和數值型數據。3、測試數據集時,運行速度比較快。4、決策樹可以很好的擴展到大型資料庫中,同時它的大小獨立於資料庫大小。
二、決策樹缺點1、對缺失數據處理比較困難。2、容易出現過擬合問題。3、忽略數據集中屬性的相互關聯。4、ID3演算法計算信息增益時結果偏向數值比較多的特徵。三、改進措施1、對決策樹進行剪枝。可以採用交叉驗證法和加入正則化的方法。2、使用基於決策樹的combination演算法,如bagging演算法,randomforest演算法,可以解決過擬合的問題
四、常見演算法一)C4.5演算法ID3演算法是以資訊理論為基礎,以信息熵和信息增益度為衡量標準,從而實現對數據的歸納分類。ID3演算法計算每個屬性的信息增益,並選取具有最高增益的屬性作為給定的測試屬性。C4.5演算法核心思想是ID3演算法,是ID3演算法的改進,改進方面有:- 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足;
- 在樹構造過程中進行剪枝;
- 能處理非離散的數據;
- 能處理不完整的數據。
2)C4.5隻適合於能夠駐留於內存的數據集,當訓練集大得無法在內存容納時程序無法運行。
二)CART分類與回歸樹是一種決策樹分類方法,採用基於最小距離的基尼指數估計函數,用來決定由該子數據集生成的決策樹的拓展形。如果目標變數是標稱的,稱為分類樹;如果目標變數是連續的,稱為回歸樹。分類樹是使用樹結構演算法將數據分成離散類的方法。優點1)非常靈活,可以允許有部分錯分成本,還可指定先驗概率分布,可使用自動的成本複雜性剪枝來得到歸納性更強的樹。2)在面對諸如存在缺失值、變數數多等問題時CART 顯得非常穩健。分類演算法
一、KNN演算法KNN演算法的優點 1、KNN是一種在線技術,新數據可以直接加入數據集而不必進行重新訓練2、KNN理論簡單,容易實現KNN演算法的缺點1、對於樣本容量大的數據集計算量比較大。2、樣本不平衡時,預測偏差比較大。如:某一類的樣本比較少,而其它類樣本比較多。3、KNN每一次分類都會重新進行一次全局運算。
4、k值大小的選擇。KNN演算法應用領域文本分類、模式識別、聚類分析,多分類領域二、支持向量機(SVM)支持向量機是一種基於分類邊界的方法。其基本原理是(以二維數據為例):如果訓練數據分布在二維平面上的點,它們按照其分類聚集在不同的區域。基於分類邊界的分類演算法的目標是,通過訓練,找到這些分類之間的邊界(直線的――稱為線性劃分,曲線的――稱為非線性劃分)。對於多維數據(如N維),可以將它們視為N維空間中的點,而分類邊界就是N維空間中的面,稱為超面(超面比N維空間少一維)。線性分類器使用超平面類型的邊界,非線性分類器使用超曲面。支持向量機的原理是將低維空間的點映射到高維空間,使它們成為線性可分,再使用線性劃分的原理來判斷分類邊界。在高維空間中是一種線性劃分,而在原有的數據空間中,是一種非線性劃分。SVM優點1、解決小樣本下機器學習問題。2、解決非線性問題。
3、無局部極小值問題。(相對於神經網路等演算法)4、可以很好的處理高維數據集。5、泛化能力比較強。SVM缺點1、對於核函數的高維映射解釋力不強,尤其是徑向基函數。2、對缺失數據敏感。SVM應用領域文本分類、圖像識別、主要二分類領域三、樸素貝葉斯演算法
樸素貝葉斯演算法優點1、對大數量訓練和查詢時具有較高的速度。即使使用超大規模的訓練集,針對每個項目通常也只會有相對較少的特徵數,並且對項目的訓練和分類也僅僅是特徵概率的數學運算而已。2、支持增量式運算。即可以實時的對新增的樣本進行訓練。3、樸素貝葉斯對結果解釋容易理解。樸素貝葉斯缺點1、由於使用了樣本屬性獨立性的假設,所以如果樣本屬性有關聯時其效果不好。樸素貝葉斯應用領域文本分類、欺詐檢測中使用較多四、Logistic回歸演算法
logistic回歸優點1、計算代價不高,易於理解和實現logistic回歸缺點1、容易產生欠擬合。2、分類精度不高。logistic回歸應用領域用於二分類領域,可以得出概率值,適用於根據分類概率排名的領域,如搜索排名等。Logistic回歸的擴展softmax可以應用於多分類領域,如手寫字識別等。聚類演算法一、K means 演算法是一個簡單的聚類演算法,把n的對象根據他們的屬性分為k個分割,k< n。 演算法的核心就是要優化失真函數J,使其收斂到局部最小值但不是全局最小值。其中N為樣本數,K是簇數,rnk b表示n屬於第k個簇,uk 是第k個中心點的值。然後求出最優的uk優點:演算法速度很快缺點:分組的數目k是一個輸入參數,不合適的k可能返回較差的結果。二、EM最大期望演算法EM演算法是基於模型的聚類方法,是在概率模型中尋找參數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數。E步估計隱含變數,M步估計其他參數,交替將極值推向最大。EM演算法比K-means演算法計算複雜,收斂也較慢,不適於大規模數據集和高維數據,但比K-means演算法計算結果穩定、準確。EM經常用在機器學習和計算機視覺的數據集聚(Data Clustering)領域。集成演算法(AdaBoost演算法)一、 AdaBoost演算法優點1、很好的利用了弱分類器進行級聯。2、可以將不同的分類演算法作為弱分類器。3、AdaBoost具有很高的精度。4、相對於bagging演算法和Random Forest演算法,AdaBoost充分考慮的每個分類器的權重。二、Adaboost演算法缺點1、AdaBoost迭代次數也就是弱分類器數目不太好設定,可以使用交叉驗證來進行確定。2、數據不平衡導致分類精度下降。3、訓練比較耗時,每次重新選擇當前分類器最好切分點。三、AdaBoost應用領域模式識別、計算機視覺領域,用於二分類和多分類場景人工神經網路演算法一、神經網路優點1、分類準確度高,學習能力極強。2、對雜訊數據魯棒性和容錯性較強。3、有聯想能力,能逼近任意非線性關係。二、神經網路缺點1、神經網路參數較多,權值和閾值。2、黑盒過程,不能觀察中間結果。3、學習過程比較長,有可能陷入局部極小值。三、人工神經網路應用領域目前深度神經網路已經應用與計算機視覺,自然語言處理,語音識別等領域並取得很好的效果。排序演算法(PageRank)PageRank是google的頁面排序演算法,是基於從許多優質的網頁鏈接過來的網頁,必定還是優質網頁的回歸關係,來判定所有網頁的重要性。(也就是說,一個人有著越多牛X朋友的人,他是牛X的概率就越大。)一、PageRank優點完全獨立於查詢,只依賴於網頁鏈接結構,可以離線計算。二、PageRank缺點1)PageRank演算法忽略了網頁搜索的時效性。2)舊網頁排序很高,存在時間長,積累了大量的in-links,擁有最新資訊的新網頁排名卻很低,因為它們幾乎沒有in-links。關聯規則演算法(Apriori演算法)Apriori演算法是一種挖掘關聯規則的演算法,用於挖掘其內含的、未知的卻又實際存在的數據關係,其核心是基於兩階段頻集思想的遞推演算法 。Apriori演算法分為兩個階段:1)尋找頻繁項集2)由頻繁項集找關聯規則演算法缺點:1)在每一步產生侯選項目集時循環產生的組合過多,沒有排除不應該參與組合的元素;2) 每次計算項集的支持度時,都對資料庫中 的全部記錄進行了一遍掃描比較,需要很大的I/O負載。Python愛好者社區歷史文章大合集:Python愛好者社區歷史文章列表(每周append更新一次)推薦閱讀:
TAG:深度學習DeepLearning | 機器學習 | 數據挖掘 |