機器學習之完整工程所需的步驟

2021-09-11 15:12:19 字數 1656 閱讀 6921

最近在看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的事情。不過,這也代表著要充分了解這個領域...

機器學習之特徵工程

在工業界一直流行著一句話,資料的質量決定了模型的上線了,而特徵工程與模型的選擇只是盡可能的去逼近這個上線,當我們在資料無法改變的情況,特徵工程的優化便顯得尤為重要。我們輸入模型中,模型只認識資料,並不知道某一列所代表的含義,例如樹模型,它只會按照一定的規則去不停的分支,並不知道分支所代表的含義,而特...