機器學習大致流程
2019-08-25
1.機器學習分類
機器學習主要分3大類,分別是:監督學習,強化學習,無監督學習,其中主要的區別如下所示。
1.1 監督學習
訓練數據的標簽(即樣本的輸出)已知,通過訓練數據的標簽作為反饋,對模型訓練的學習方法稱為監督學習;常見的子類有分類和回歸兩項;
1.2 強化學習
強化學習的訓練數據沒有明確的標簽,但其擁有反饋信號,類似於自動控制理論里的閉環反饋;通常這個反饋信號是由開發者定義的一個函數,由這個反饋函數產生對當前系統的評價,再通過這個反饋信號對系統進行訓練;
1.3 無監督系統
無監督系統的訓練數據即沒有明確的標簽,也沒有反饋函數,該系統的功能是在沒有標簽和反饋的情況下提取有效信息來探索數據的整體結構,常見子類有聚類和降維;
2.機器學習系統藍圖
機器學習的整個系統可以分為五大步:1)數據獲取,2)數據預處理,3)模型訓練,4)模型驗證,5)模型使用。
2.1 數據獲取
很重要,是機器學習的先決條件,關乎到算法訓練后的性能。
2.2 數據預處理
主要目的是提高機器學習算法的性能,具體有:1)在盡量不影響算法精度的前提下減小訓練的數據量,加快算法的訓練時間,2)通過數據處理提高算法的精度;
數據預處理技術有很多種,主要有下面幾個:
1)數據清洗:
2)數據填充:
3)數據格式轉換:
4)特征抽取及縮放:由於不同特征之間采取不同的量綱,導致可能不同的特征數據之間量級相差很大,數值較小的數據被數值大的數據淹沒,從而算法性能不佳;特征抽取及縮放是通過算法將不同特征的數據映射到[0,1]之間,或使其滿足方差為1,均值為0的標准正態分布,從而提高算法性能;
5)特征選擇:
6)降維:在數據已選擇的特征中很可能會有部分特征之間存在較強的耦合性,通過降維可以減小數據之間的耦合行,降低數據的儲存空間,加快算法的訓練以及運行速度;
7)抽樣:為了保證算法的一致性,我們不僅要求算法在訓練數據上有效,同時也要很好的應用於新數據,那么測試數據就必不可少;通過合理的分配訓練數據和測試數據(有時需要交叉驗證數據)也時保證算法有效的一個手段;
8)數據標准化等等。
2.2 模型訓練
模型訓練是機器學習的核心步驟,關乎着整個算法的效果;模型訓練中也有很多技術,常見的有:
1)模型選擇(很重要):不同的模型適合不同的業務場景,選擇合適的模型可以事半功倍;
2)目標函數:用於評估算法性能的函數;
3)優化算法:為達到目標函數要求而使用的方法即優化算法,常見的是”梯度下降法“;
4)訓練停止條件設定:為防止訓練過程無限制的運行而設定的終止訓練條件,可用迭代次數和目標函數閾值來組合為停止訓練的條件;
5)交叉驗證:一種通過將訓練集划分為”訓練集“+”驗證集“來降低模型過擬合的手段,簡單有效;一半用於超參調優過程中的模型性能評估,隔離測試集,防止過擬合。
6)超參優化:超參並非模型的參數,一般用於訓練過程中;比如正則化的系數,學習率,迭代次數等等,合適的超參可以降低模型的過擬合,加速訓練速度等;
7)······
2.3模型驗證
使用測試集來評估模型的性能。
模型性能指標有很多,比如在分類模型中常用的有錯誤率,精准率,召回率,F1指標,ROC等等。
2.4 模型使用
即使用訓練好的模型對新的數據進行輸出預測。
以上即一般的機器學習算法的大致流程,具體每個過程中都涉及到很多技術,在以后的文章里一點點的開始補充。