本文只是對機器學習的流程做乙個簡單的描述,每個環節涉及的東西很多,不是本文介紹的範圍,對其中比較重要的知識點稍微提及一下,具體的可以參考其他文章學習。先上一張流程圖。
機器學習從資料準備到上線流程:
接下來根據流程圖,逐步分析機器學習的流程。
1. 資料來源:
機器學習的第乙個步驟就是收集資料,這一步非常重要,因為收集到的資料的質量和數量將直接決定**模型是否能夠建好。我們可以將收集的資料去重複、標準化、錯誤修正等等,儲存成資料庫檔案或者
csv格式檔案,為下一步資料的載入做準備。
2. 分析:
這一步驟主要是資料發現,比如找出每列的最大、最小值
、平均值、方差、中位數、三分位數、四分位數、某些特定值(比如零值)所佔比例
或者分布規律
等等都要有乙個大致的了解
。了解這些最好的辦法就是視覺化,谷歌的開源專案
facets
可以很方便的實現。另一方面要確定自變數
(x1...xn)
和因變數
y,找出因變數和自變數的相關性,確定相關係數。
3. 特徵選擇:
特徵的好壞很大程度上決定了分類器的效果。將上一步驟確定的自變數進行篩選,篩選可以手工選擇或者模型選擇,選擇合適的特徵,然後對變數進行命名以便更好的標記。命名檔案要存下來,在**階段的時候會用到。
4. 向量化:
向量化是對特徵提取結果的再加工,目的是增強特徵的表示能力,防止模型過於複雜和學習困難,比如對連續的特徵值進行離散化,
label
值對映成列舉值,用數字進行標識
。這一階段將產生乙個很重要的檔案:
label
和列舉值對應關係
,在**階段的同樣會用到。
5. 拆分資料集:
需要將資料分為兩部分。用於訓練模型的第一部分將是資料集的大部分。第二部分將用於評估我們訓練有素的模型的表現。通常以
8:2或者
7:3進行資料劃分。不能直接使用訓練資料來進行評估,因為模型只能記住「問題
」。6. 訓練:
進行模型訓練之前,要確定合適的演算法,比如線性回歸、決策樹、隨機森林、邏輯回歸、梯度提公升、
svm等等。選擇演算法的時候最佳方法是測試各種不同的演算法,然後通過交叉驗證選擇最好的乙個。但是,如果只是為問題尋找乙個
「足夠好
」的演算法,或者乙個起點,也是有一些還不錯的一般準則的,比如如果訓練集很小,那麼高偏差
/低方差分類器(如樸素貝葉斯分類器)要優於低偏差
/高方差分類器(如
k近鄰分類器),因為後者容易過擬合。然而,隨著訓練集的增大,低偏差
/高方差分類器將開始勝出(它們具有較低的漸近誤差),因為高偏差分類器不足以提供準確的模型。
7. 評估:
訓練完成之後,通過拆分出來的訓練的資料來對模型進行評估,通過真實資料和**資料進行對比,來判定模型的好壞。
模型評估的常見的五個方法:混淆矩陣、提公升圖
&洛倫茲圖、基尼係數、
ks曲線、
roc曲線。混淆矩陣不能作為評估模型的唯一標準,混淆矩陣是算模型其他指標的基礎。
混淆矩陣
**資料jg
真實資料jx1
x2gx3x4
備註:x1
為作出正確判斷的否定記錄
x2為作出錯誤判斷的肯定記錄
x3為作出錯誤判斷的否定記錄
x4為作出正確判斷的肯定記錄
可以通過以下三個指標來評估模型的好壞:
準確率:
p = x4/ ( x2 + x4)
召回率:
r = x4/ ( x3 + x4)
調和平均數:
f = 2pr/ ( r + p )
完成評估後,如果想進一步改善訓練,我們可以通過調整模型的引數來實現,然後重複訓練和評估的過程。
8. 檔案整理:
model
檔案、lable
編碼檔案、元資料檔案(演算法,引數和結果)、變數檔案(自變數名稱列表、因變數名稱列表)。
9. 介面封裝:
通過封裝封裝服務介面,實現對模型的呼叫,以便返回**結果。
10. 上線:
機器學習流程
機器學習其實就是利用現有資料,設計出演算法模型的過程。其流程如下 1 獲取資料 2 資料分析 3 設計演算法 4 測試演算法 5 驗證評估 6 提交演算法 對資料的處理分為四種情況 分類 聚類 回歸 降維。其中又以分類為主。分類思想主要分為兩種 1 利用歐式距離判定樣本屬於哪一類。2 利用概率大小進...
機器學習(介紹)
a computer program is said to learn from experienceewith respect to some class of taskstand performance measurep,if its performance at tasks int,as me...
機器學習介紹
本文主要參考scikit learn機器學習 常用演算法原理及程式設計實踐 原始碼連線 本文包括 介紹機器學習應用,機器學習的分類,機器學習開發的典型步驟 得益於摩爾定律,計算機硬體 cpu gpu 為很多通過大量資料學習的演算法提供很好的條件,這類演算法稱為機器學習演算法。傳統演算法 資料 人工設...