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

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

參考博客: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.隨機森林
隨機森林指的是利用多棵樹對樣本進行訓練並預測的一種分類器。
開發流程:
收集數據:任何方法
準備數據:轉換樣本集
分析數據:任何方法
訓練算法:經過數據隨機化和特徵隨機化,進行多實例的分類評估
測試算法:計算錯誤率
使用算法:輸入樣本數據,而後運行隨機森林算法,判斷輸入數據分類屬於哪一個分類,最後對計算出的分類執行後續處理。
算法特色:
優勢:幾乎無需輸入準備、可實現隱式特徵選擇、訓練速度很是快、其餘模型很難超越。
缺點:劣勢在於模型大小、是個很難去解釋的黑盒子。
使用數據類型:數值型和標稱型數據
相關文章
相關標籤/搜索