架構問題,關注藍圖網絡
獲取數據
儘量的自動化,以便獲取最新數據。架構
研究數據以獲取靈感機器學習
準備數據以更好地將低層模型暴 給機器學習算告函數
在數據的副本上工做(保持原始數據集不變)。工具
編寫適用於全部數據轉換的函數,緣由有五個:性能
能夠很容易地準備下一次獲得新數據時的數據 能夠在將來的項目中使用這些轉換 清理和準備測試數據集。 一旦解決方案失效,用來清理和準備新數據實例 能夠輕鬆地將你的準備選擇做爲超參數
1. 數據清理:單元測試
修復或刪除異常值(可選) 填充缺失值(例如,使用零、平均數、中位數等)或刪除該行(或列)
2. 特徵選擇(可選):學習
刪除不能爲任務提供任何有用信息的屬性。
3. 在適當狀況下,處理特徵:測試
離散連續特徵; 分解特徵性(如,分類、日期/時間等); 添加指望的特徵轉換(如, log(x)、sqrt(x)、x2等); 聚合特徵稱爲指望的新特徵
研究各類不一樣的模型,並列出最好的模型優化
1. 使用標準參數,從不一樣類別(例如,線性、樸素貝葉斯、SVM、隨機森林、神經網絡等)中訓練需求快速的不成熟的模型。
2. 測量並比較它們的性能。
對於每一個模型,使用N倍交叉驗證並計算N次摺疊的性能測試的均值和標準差。
3. 分析每一個算怯最重要的變量。
4. 分析模型產生的錯誤類型。
人類用什麼樣的數據避免這些錯誤?
5. 快速進行特徵選擇和處理。
6. 對前面五步進行一兩次快速迭代。
7. 列出前 到五個最有但願模型,傾向於選擇有不一樣錯誤類型的模型。
微調模型,並將其組合爲更好的解決方案
1. 使用交叉驗證微調超參數。
把數據轉換選擇看成超參數,尤爲是不肯定時(例如,應該用零或者平均值填充缺失值?或者直接刪除?)。 除非須要研究的超參數值不多,不然更喜歡在網格搜索上隨機搜索。若是訓練很長,你可能更喜歡貝葉斯優化方提(高斯過程進行先驗)
2. 嘗試組合方怯。組合多個好模型每每比單獨運行效果好。
3. 一旦你對最終模型有信心,在測試集上測 它的性能以估計泛化偏差。
提出解決方案
1. 文檔化工做。
2. 建立完美的橫示。
首先確保突出藍圖。
3. 解釋爲何你的解決方案達到了業務目標。
4. 不要忘記展現你發現的一些有趣的地方。
描述什麼能夠工做,什麼不行。 列出你的假設和系統的侷限。
5. 確保你的關鍵發現被完美展現或易於記憶的陳述。
啓動、監視、維護系統
1. 準備好生產環境的解決方案(插入生產數據輸入,寫單元測試等)。
2. 編寫監控代碼,按期檢查系統的性能,出問題時及時報警。
3. 按期對新數據從新建模(儘量自動化)。