機器學習——幾種分類算法的匯總


機器學習——幾種分類算法的匯總

參考博客:http://www.apachecn.org/map/179.html
參考博客寫的很全面,也有例子,我這算是轉載縮減記錄方便自己記憶,有想參考的朋友可以參照原博客學習。
分類算法
分類:將實例數據划到合適的類別中。
標稱型 :標稱型目標變量的結果只在有限目標集中取值,如真與假(標稱型目標變量主要用於分類)
數值型 :數值型目標變量則可以從無限的數值集合中取值,如0.100,42.001等 (數值型目標變量主要用於回歸分析)
整個開發流程:收集數據——准備數據——分析數據——訓練算法——測試算法——使用算法
開發流程:
收集數據:收集樣本數據
准備數據:注意樣本格式
分析數據:為了確保數據集中是否存在垃圾數據。(若存在算法可處理的數據格式或可信任的數據源,則可以跳過該步驟;另外該步驟需要人工干預,會降低自動化系統價值)
訓練算法:無監督算法無目標變量,可跳過該步驟
測試算法:評估算法效果
使用算法:將機器學習算飯轉化為應用程序
1.k-近鄰(KNN)
工作原理:
開發流程:
收集數據:任何方法
准備數據:距離計算所需的數值,最好是結構化的數據格式
分析數據:任何方法
訓練算法:跳過
測試算法:計算錯誤率
使用算法:輸入樣本數據和結構化的輸出結果,然后運行k-近鄰算法判斷輸入數據分類屬於哪個分類,最后對計算出的分類執行后續處理。
算法特點:
優點:精度高、對異常值不敏感、無數據輸入假定
缺點:計算復雜度高、空間復雜度高
適用數據范圍:數值型和標稱型
2.決策樹(Decision Tree)
算法主要用來處理分類問題,是最經常使用的數據挖掘算法之一。
概念:
熵(entropy):指體系的混亂程度。
信息熵:是一種信息的度量方式,表示信息的混亂程度。
信息增益:在划分數據集前后信息發生的變化。
開發流程:
收集數據:任何方法
准備數據:樹構造算法只適用於標稱型數據,因此數值型數據必須離散化
分析數據:任何方法,構造樹完成后,應檢查圖形是都符合預期
訓練算法:構造樹的數據結構
測試算法:使用經驗樹計算錯誤率
使用算法:任何監督學習算法(決策樹)
算法特點:
優點:計算復雜度不高,輸出結果易於理解,對中間值的缺失不敏感,可以處理不相關特征數據。
缺點:可能會產生過度匹配問題。
適用數據類型:數值型和標稱型
3.朴素貝葉斯
朴素貝葉斯主要應用於文檔的自動分類
收集數據:任何方法
准備數據:需要數值型或布爾型數據
分析數據:有大量特征時,繪制特征作用不大,此時使用脂肪頭疼效果更好。
訓練算法:計算不同的獨立特征的條件概率
測試算法:計算錯誤率
使用算法:一個常見的朴素貝葉斯應是文檔分類(也可不是)。
算法特點:
優點:在數據較少的情況下依然有效,可以處理多類別問題。
缺點:對於輸入數據的准備方式較為敏感。
適用數據類型:標稱型數據
4.邏輯回歸
該算法是根據現有數據對分類邊界線建立回歸公式,以此進行分類。
概念:
回歸:用一條直線擬合數據點的過程,而擬合就是可以很好的將每個數據點用一條直線連接起來,連接數據點較少的過程叫做欠擬合,用曲線將所有數據點完整連接的過程叫做過擬合。
sigmoid函數:調整得到一個0~1之間的數值(大於0.5為1類)
梯度上升法:為了尋找最佳參數
開發流程:
收集數據:任何方法
准備數據:結構化數據格式(距離計算需要數值型數據)
分析數據:任何方法
訓練算法:訓練數據直到找到最佳的分類回歸系數
測試算法:一旦訓練步驟完成,分類將會很快
使用算法:首先,對輸入數據進行轉化,得到其對應結構化數值;其次基於訓練好的回歸系數對數值進行簡單的回歸計算,判定其類別。
算法特點:
優點:計算代價不高,易於理解和實現
缺點:容易欠擬合,分類精度可能不高
使用數據類型:數值型和標稱型數據
5.支持向量機
該算法是一個二類分類器
概念
支持向量(Support Vector):分離超平面最近的那些點。
機(Machine):表示一種算法,而不是表示機器。
超平面:分類的決策邊界。n維需要n-1維的超平面分隔。
步驟:
1.尋找最大分類間距
2.通過拉格朗日函數求優化問題
開發流程:
收集數據:任何方法
准備數據:數值型數據
分析數據:有助於可視化分隔超平面
訓練算法:訓練數據實現兩個參數的調優
測試算法:簡單計算過程
使用算法:幾乎所有的分類問題都可以用SVM。
算法特點:
優點:計算代價不高,易於理解和實現
缺點:容易欠擬合,分類精度可能不高
使用數據類型:數值型和標稱型數據
****************************************************************
集成算法(ensemble method):對其他算法進行組合的一種形式
1.投票算法(bagging):基於數據隨機重抽樣分類器構造的方法。例如隨機森林(random forest)
2.再學習(boosting):基於所有分類器的加權求和方法。
bagging和boosting的區別:
1.bagging是一種與boosting所使用的多個分類器的類型(數據量和特征量)都是一致的。
2.bagging是由不同的分類器(數據和特征隨機化)經過訓練,綜合得出的 出現最多的分類結果;boosting是通過調整已有分類器錯分的那些數據來獲得新的分類器, 得出目前最優的結果
3.bagging中的分類器權重是相等的;而boosting中的分類器加權求和,所以權重並不相等,每個權重代表的是其對應分類器的上一輪迭代中的成功過度。
****************************************************************
6.隨機森林
隨機森林指的是利用多棵樹對樣本進行訓練並預測的一種分類器。
開發流程:
收集數據:任何方法
准備數據:轉換樣本集
分析數據:任何方法
訓練算法:通過數據隨機化和特征隨機化,進行多實例的分類評估
測試算法:計算錯誤率
使用算法:輸入樣本數據,然后運行隨機森林算法,判斷輸入數據分類屬於哪個分類,最后對計算出的分類執行后續處理。
算法特點:
優點:幾乎無需輸入准備、可實現隱式特征選擇、訓練速度非常快、其他模型很難超越。
缺點:劣勢在於模型大小、是個很難去解釋的黑盒子。
使用數據類型:數值型和標稱型數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM