最近在看hands-on machine learning with scikit-learn and tensorflow,其中提到機器學習處理解決乙個完成的任務需要的步驟,做個簡單記錄
機器學習完整工程大概有以下8個步驟:
總覽問題和目標,希望得到什麼結果
獲取資料
探索資料,進一步獲取更深層次的信心。
準備,預處理資料,以便模型訓練最合適的資料。
選擇不同的模型加以訓練,得到最好的乙個或幾個。
微調模型(超引數), 有必要時進行模型組合。
演示,部署模型
啟動,監視和維護模型。
最後,根據需求進行調節選擇。
下面針對每一步做個大概說明:
用機器學習的術語定義目標
如何使用解決方案
目前的解決方案/變通方案(如果有的話)是什麼?
怎麼進行效能評估
有類似的問題嗎?是否可以重用解決方案和工具
列出所有可能的假設
如果可能的話,確認這些假設。
盡量做到自動化,這樣可以更方便得到新的資料。
列出所需要的資料
找到並記錄可以在哪獲取這些資料
檢查需要占用的空間
有必要的話,檢查法律,獲取授權
新建乙個工作目錄,要有足夠的空間
獲取資料
對資料進行格式轉換,以便維護(不能修改資料)
確認是否需要隱藏部分資訊
檢查資料的大小和型別,比如時間序列,樣本,和地理位置。
隨機(分層)抽樣出乙個測試集,用於最後測試,不能做資料分析。
建立資料集的乙個副本。如有必要,取樣到適合大小。
建立jupyter檔案,儲存資料探索的過程。
研究每個屬性及其特徵
如果是監督問題,確定標記出目標值。
視覺化資料
研究不同屬性間的相關性(corr)
研究通常怎麼解決該問題
確定您可能想要應用的有希望的轉換。
記錄所得到的結果
注意: 處理副本資料(保持原資料集的完整性) 將可能應用到的轉換寫成函式,優點如下:
資料清洗
特徵選擇(可選)
在適當的地方進行特徵工程
特徵縮放,標準化或者歸一化
注意: 使用標準引數,從不同的類別(例如線性、樸素貝葉斯、svm、隨機森林、神經網路等)快速訓練基本的模型。
度量,比較不同模型之間的效能
分析對每個演算法最重要的特徵
分析模型所犯的錯誤型別,通常怎麼處理
快速進行特徵工程和特徵選擇
再次快速對以上步驟進行一兩次迭代
列出最優的3到5個模型,尤其是有不同型別錯誤的模型
注意:希望在此步驟中使用盡可能多的資料,尤其是在接近微調的末尾時。
自動化處理。
使用交叉驗證微調超引數
嘗試整合方法,對表現最好的模型進行組合,通常比單獨的模型要好。
一旦確信這就是最終的模型,接著在測試集測量效能,估計泛化錯誤。
記錄已經完成的工作
做乙個好的演講,首先確保突出目標
解釋為什麼該方案實現了目標
不要忘記展示有趣的點
確保你的關鍵發現是通過漂亮的視覺化或容易記住的陳述來傳達。
為生產環境準備解決方案
編寫監控**,檢查系統的實時效能,並在它下降時觸發警報。 3.隨著新資料的加入定期重新訓練模型(自動化)
機器學習所需的數學基礎
數學 l1 regularization 這篇文章解釋了l1 regularization為什麼會產生稀疏解,很不錯 拉格朗日乘子法和kkt條件 對偶問題 傅利葉變換 拉普拉斯變換和z變換的意義 特徵值 特徵向量的意義 似然性 最大似然估計 無約束最優化 從線搜尋講到牛頓法 擬牛頓法 bfgs lb...
1 0 機器學習所需的數學
從大學到現在,課堂上學的和自學的數學其實不算少了,可是在研究的過程中總是發現需要補充新的數學知識。learning和vision都是很多種數學的交匯場。看著不同的理論體系的交匯,對於乙個researcher來說,往往是非常exciting的enjoyable的事情。不過,這也代表著要充分了解這個領域...
機器學習之特徵工程
在工業界一直流行著一句話,資料的質量決定了模型的上線了,而特徵工程與模型的選擇只是盡可能的去逼近這個上線,當我們在資料無法改變的情況,特徵工程的優化便顯得尤為重要。我們輸入模型中,模型只認識資料,並不知道某一列所代表的含義,例如樹模型,它只會按照一定的規則去不停的分支,並不知道分支所代表的含義,而特...