3.2 機器學習基本算法
根據不同的計算結果要求,機器學習可分成若幹種。這些不同的目的決定了機器學習在實際應用中可分成不同模型和分類。
前面已經提到,機器學習還是一門涉及多個領域的交叉學科,也是多個領域的新興學科,因此,它在實踐中會用到不同學科中經典的研究方法,即算法。
3.2.1 機器學習的算法流程
首先需要知道的是,對於機器學習來說,一個機器學習的過程是一個完整的項目周期,其中包括數據的采集、數據的特征提取與分類,以及之後采用何種算法去創建機器學習模型,從而獲得預測數據。整個機器學習的算法流程如圖3-2所示。
圖3-2 機器學習的算法流程
在一個機器學習的完整流程中,整個機器學習程序會使用數據去創建一個能夠
一個完整的機器學習項目包含以下內容:
l 輸入數據:通過自然采集的數據集,包含被標識的和未被標識的部分,作為機器學習的最基礎部分。
l 特征提取:通過多種方式對數據的特征值進行提取。一般而言,包含特征越多的數據,機器學習設計出的模型就越精確,處理難度也越大。因此恰當地尋找一個特征大小的平衡點是非常重要的。
l 模型設計:模型設計是機器學習中最重要的部分,根據現有的條件,選擇不同的分類,采用不同的指標和技術。模型的訓練更多的是依靠數據的收集和特征的提取,這點需要以上各部分的支持。
l 數據預測:通過對已訓練模式的認識和使用,使得學習機器能夠用於研究開發、模擬和擴展人的多重智能的方法、理論和技術。
整個機器學習的流程是一個完整的項目生命周期,每一步都是以上一步為基礎進行的。
3.2.2 基本算法的分類
根據輸入的不同數據和對數據的處理要求,機器學習會選擇不同種類的算法對模型進行訓練。算法訓練的選擇沒有特定的模式,一般而言,只需要考慮輸入的數據形式和復雜度以及使用者模型的使用經驗,之後據此進行算法訓練,從而獲得更好的學習結果。
根據基本算法的訓練模式,可將算法分成以下幾類(圖3-3):
l 無監督學習:完全黑盒訓練的一種訓練方法,對於輸入的數據在運行結束前沒有任何區別和標識,也無法進行分類。完全由機器對數據進行識別和分類,形成特有的分析模型。訓練過程完全沒有任何指導,分析結果也是不可控
l 有監督學習:輸入的數據被人為地分類,被人為地標記和識別。通過對人為標識的數據進行學習,不斷修正和改進模型,使模型能夠對給定的標識後的數據進行正確分類,達到分類的標準。
l 半監督學習:通過混合有標識數據和無標識數據,創建同一模型對數據進行分析和識別,算法的運行介於有監督和無監督之間,最終使得全部輸入數據能夠被區分。半監督學習主要用於有特征值缺失的數據分析。
l 強化學習:通過輸入不同的標識數據,使用已有的機器學習數據模型,進行學習、反饋並修正現有模型,從而建立一個新的能夠識別輸入數據的模型算法。
不同的算法有不同的目的和要求。機器學習在實際使用時有很多算法可供選擇,而不同的算法又有很多的修正和改變。對於某個特定的問題,選擇一個符合數據規則的算法是很困難的。
一般目前用得比較多的是有監督學習和無監督學習,但是由於大數據的普及,更多的數據會產生大量的特征值缺失,因此未來的一段時間,半監督學習逐漸變得熱門起來。
3.2 機器學習基本算法