- 收集數據
- 準備輸入數據
- 分析輸入數據
- 訓練算法
- 測試算法
- 使用算法
機器學習就是計算機利用已有的數據或經驗,通過訓練得出模型,并使用測試數據對該模型進行評估,若性能達到所需要求,則可用該模型測試其他的數據,否則,調整算法重新訓練模型并評估,直到構建出符合性能需求的模型為止。
二、預處理的步驟- 數據選取、數據處理、數據集成、數據變換、數據規約。
- 數據初步選取。數據選取需要遵循三個基本原則:
(1)選擇能夠賦予屬性名和屬性值明确含義的屬性數據。
(2)避免選擇重複數據。
(3)合理選擇與學習内容關聯性高的屬性數據。
2. 數據清理。數據清理是預處理中最重要的一步,主要處理缺失數據、噪聲數據、識别和删除孤立點等。
3. 數據集成。數據集成就是将多個數據源中的數據合并在一起形成一個數據倉庫/數據庫的技術和過程。需要解決數據中的3個主要問題:多個數據集匹配、數據冗餘、數據沖突。
4. 數據變換。數據變換有數據标準化、數據白化處理。
5. 數據歸約。數據歸約通常采用維歸約、數值歸約方法實現。維歸約指通過減少屬性的方式壓縮數據量,通過移除不相關的屬性,可以提高模型效率。
三、分類學習器基本操作流程- 對于構建機器學習應用,通常包括五個部分,分别是數據導入、數據的探索和特征選擇、訓練模型、比較模型、輸出模型。
啟動分類學習器。可以通過直接在命令行窗口輸入“Classification Learner”,或者在MATLAB的菜單欄中選擇“應用程序”選項卡下的分類學習器應用“Classification Learner”。
- 輸入數據。導入數據的方式有兩種,一種是單擊CLASSIFICATION LEARNER選項卡下FILE組中的New Session下拉按鈕,然後選擇From Workspace,其含義是導入MATLAB工作空間的函數數據;另一種是選擇From File,其含義是通過數據文件導入數據。
2. 數據的探索和特征的選擇。設置訓練數據的相關屬性、标簽及設置驗證集,導入數據并設置好交叉驗證後單擊Start Session按鈕。
3. 訓練模型。選擇一個合适的算法後單擊“Train”進行訓練。
4. 比較模型。觀察每個類預測的準确率。
5. 輸出模型。可以在“Export Model”下拉列表中可以選擇不同的導出方式。導入工作空間的方法:選擇“Export Model”下拉列表中的“Export Compact Model”選項,輸入導入模型的名稱,采用默認值,單擊“确定”按鈕。
四、k緊鄰算法(KNN算法)- 原理:
如果一個樣本在特征空間中的k個最相似的樣本中的大多數屬于某一個類别,則該樣本也屬于這個類别。
當無法判定當前待分類點從屬于已知分類中的哪一類時,可以依據統計學的理論看它所處的位置特征,衡量它周圍鄰居的權重,而把它歸為到權重更大的那一類,這就是k近鄰算法的核心思想。
k緊鄰算法使用的模型實際上對應于特征空間的劃分。k值的選擇、距離度量和分類決策規則是該算法的3個基本要素。
(1)在實際應用中,k值一般選擇一個較小的數值,通常采用交叉驗證的方法來選擇最優的k值。
(2)算法中的分類決策規則往往是多數表決,即由輸入實例的k個最鄰近的訓練實例中的多數類決定輸入實例的類别。
(3)距離度量一般采用歐式距離表示,在度量之前,應該将每個屬性的值規範化,以防止具有較大初始值域的屬性比具有較小初始值域的屬性的權重大。
2. 優點:
(1)簡單、有效、複雜度低、無須參數估計、無須訓練。
(2)精度高、對噪聲不敏感。
(3)适用于類域的交叉或重疊較多的待分樣本集。
(4)适用于多分類問題,其表現性能比SVM效果更好。
3. 缺點:
(1)計算量大。
(2)可解釋性差。
(3)樣本不均衡時,如果一個類樣本容量很大,而其他樣本容量很小時,有可能導緻當輸入一個新樣本時,該樣本的k個鄰近樣本中很可能該類占大多數。
(4)樣本容量較小的類域使用該算法容易産生誤分。
(5)k值的選取對分類效果有較大影響。
五、決策樹- 原理:
決策樹是在已知各種情況發生概率的基礎上,通過構成決策樹來評估項目風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種圖解法。在機器學習中,決策樹是一個預測模型,其代表的是對象屬性與對象值之間的一種映射關系。
決策樹可以看作一個樹狀預測模型,它是由結點和有向分支組成的層次結構。樹中包含3種結點:根結點、内部結點、葉子結點。決策樹隻有一個根結點,是全體訓練數據的集合。樹中每個内部結點都是一個分裂問題。每個葉子結點都是帶有分類标簽的數據集合,即為樣本所屬的分類。
2. 優點:
(1)決策樹易于理解和實現。
(2)速度快,計算量相對較小,且容易轉化成分類規則。
3. 缺點:在處理大樣本集時,易出現過拟合現象,降低分類的準确性。
六、支持向量機(SVM)- 原理:支持向量機将向量映射到一個更高維的空間中,在這個空間中建立一個最大間隔的超平面。在分開數據的超平面的兩邊建有兩個互相平行的臨界超平面,建立方向合适的分隔超平面将使兩個與之平行的超平面之間的距離最大化。其假定為,平行超平面間的距離或差距越大,分類器的總誤差就越小。
2. 優點:
(1)算法專門針對有限樣本設計,其目标是獲得現有信息下的最優解,而不是樣本趨于無窮時的最優解。
(2)算法最終轉化為求解一個二次凸規劃問題,能求得理論上的全局最優解,解決了一些傳統方法無法避免的局部極值問題。
(3)算法将實際問題通過非線性變換映射到高維的特征空間中,在高維特征空間中構造線性最佳逼近來解決原空間中的非線性逼近問題。保證了機器學習具有良好的泛化能力,同時巧妙地解決了維數災難問題。
3. 缺點:對缺失數據敏感,内存消耗大,難以解釋。
七、樸素貝葉斯算法(Bayes算法)- 原理:樸素貝葉斯算法具有分類準确率較高并且運算速度快的特點。對于給出的待分類項,求解在此項出現的條件下各個類别出現的概率,哪個最大就認為此待分類項屬于哪個類别。
2. 優點:
(1)算法形式簡單,規則清楚易懂,可擴展性強。
(2)算法實施的時間和空間開銷小。
(3)算法性能穩定,模型的健壯性比較好。
3. 缺點:
(1)算法假設屬性之間都是條件獨立的,然而在社會活動中,數據集中的變量之間往往存在較強的相關性,忽視這種性質會對分類結果産生很大影響。
(2)算法将各特征屬性對于分類決策的影響程度都看作是相同的,這不符合實際運用的需求。
(3)算法在使用中通常要将定類數據以上測量級的數據離散化,這樣很可能會造成數據中有用信息的損失,對分類效果産生影響。
八、線性回歸- 原理:線性回歸是利用數理統計中回歸分析,來确定兩種或兩種以上變量之間相互依賴的定量關系的一種統計分析方法。其表達式為:y=wT e,e為殘差,服從均值為0的正态分布。
2. 優點:
(1)訓練速度和預測速度較快。
(2)結果可解釋。
(3)當新增數據時,易于更新模型。
3. 缺點:
(1)預測精确度較低。
(2)可能會出現過度拟合。
(3)分離信号和噪聲的效果不理想,在使用前需要先去掉不相關的特征。
九、邏輯回歸- 原理:邏輯回歸是基于線性模型的,為了解決分類問題,把線性模型的輸出做一個變換,使用Sogmoid函數,把實數域的輸出映射到(0,1)區間,為輸出提供了很好的概率解釋。但是從本質上來說,邏輯回歸還是一種廣義的線性模型,采用了交叉熵損失函數。最後為了最小化損失函數,邏輯回歸采用了梯度下降方法。綜合這3個因素,就構成了邏輯回歸算法。
2. 優點:
(1)預測結果的概率為0~1。
(2)可以适用于離散型和連續型變量。
(3)容易使用和解釋。
3. 缺點:
(1)對模型中自變量多重共線性較為敏感。
(2)預測結果呈“S”形,導緻很多區間的變量變化對目标概率的影響沒有區分度,無法确定阈值。
十、神經網絡(NN)- 原理:人工神經網絡(ANN)是一種模仿動物神經網絡行為特征,進行分布式并行信息處理的算法數學模型。這種網絡依靠系統的複雜程度,通過調整内部大量結點之間相互連接的關系,從而達到處理信息的目的。
2. 優點:
(1)具有較強的非線性映射能力。
(2)具有高度的自學習和自适應的能力。
(3)具有良好的泛化能力和一定的容錯能力。
3. 缺點:
(1)存在局部極小化問題。
(2)收斂速度慢。
(3)神經網絡結構選擇不一。神經網絡結構的選擇一般隻能由經驗選定,若選擇過大,易出現過度拟合,若選擇過小,又可能造成網絡不收斂。網絡的結構直接影響網絡的逼近能力及推廣性質。
十一、數據集成(AdaBoost算法)- 原理:AdaBoost是一種叠代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然後把這些分類器集合起來,構成一個更強的最終分類器(強分類器)。其自适應性在于:前一個基本分類器分錯的樣本會得到加強,加權後的全體數據再次被用來訓練下一個基本分類器。同時,在每一輪中加入一個新的弱分類器,直到達到某個預定的足夠小錯誤率或達到預先指定的最大叠代次數。
2. 優點:泛化錯誤率低;易編碼;可用于絕大部分分類器;無參數調整。
3. 缺點:對離群點敏感。
十二、k均值算法(k-means算法)- 原理:k均值算法是典型的基于距離的動态聚類算法,以距離作為相似性的評價指标,即認為兩個對象的距離越近,其相似度就越大。使用誤差平方和準則作為聚類準則,尋求的是使誤差平方和準則函數最小化的聚類結果。
2. 優點:
(1)算法簡單、快速。
(2)對大數據集具有較高的效率并且是可伸縮性的。
(3)時間複雜度近于線性,而且适合挖掘大規模數據集。
3. 缺點:
(1)在k-means算法中的k值必須是事先給定的,但是k值的選定是非常難以估計的。
(2)初始聚類中心的選擇在k-means算法中是随機的,一旦初始值選擇得不合理,就可能無法得到有效的聚類結果。
(3)該算法需要不斷地進行樣本分類調整,不斷地計算調整後的新的聚類中心,因此當數據量非常大時,算法需要的時間是非常多的。
十三、K中心點算法- 原理:k中心點算法在分類上屬于動态聚類算法。算法的基礎是在每個簇中選出一個實際的對象來代表該簇,其餘的每個對象聚類到與其最相似性的代表性對象所在的簇中,然後重複叠代,直到每個代表對象都成為它所在的簇實際中心點或最靠近中心點的對象為止。
2. 優點:減輕了k均值算法對孤立點的敏感性。
3. 缺點:與k均值算法的缺點相似。
參考教材:《機器學習入門到實戰 MATLAB實踐應用》(冷雨泉主編)
,