超详细!上线一个机器学习项目你需要哪些准备?
摘要:?Canvas是用于設計和記錄機器學習系統的模板。它比簡單的文本文檔具有優勢,因為Canvas用簡單的部件通過部件之間的相關性來尋找機器學習系統的關鍵組件。這個工具已經很流行,因為它對復雜項目進行了可視化操作。 在本文中,我們通過列舉數據科學家遇到的實際問題和實用的技巧來描述Canvas的每個部分。
價值主張
機器學習應該以滿足用戶需求為目的進行設計
- 誰是預測系統的最終用戶?
- 我們需要他們做些什么?
- 服務的目標是什么?目標的意義又是什么?
只有在回答這3W問題之后,你才能開始思考一些關于數據收集、特征工程、建模、評估和監測系統的問題。
從數據中學習
讓我們繼續看看專門用于從數據中學習的Canvas的流程,它是由數據源、收集數據、特征工程、建模等幾部分組成的。
數據源
這一部分提出了一個關于我們可以使用哪些原始數據源的問題。這一步不需要具體計劃收集哪些數據,但會迫使你開始思考要使用的數據源。你需要考慮的一些數據源示例包括內部數據庫、開放數據、域中的研究論文、API、網頁抓取以及其他機器學習系統的輸出等。
收集數據
這一部分主要解決收集和準備數據的問題。如果沒有訓練數據集,機器學習項目就不可能存在。并且,訓練集最好包含大量已標記數據。這意味著你的學習系統將需要示例輸入和他們期望的輸出。只有從標有正確答案的數據中學習之后,機器學習模型才能用于對新數據進行預測。
通常,數據最初并不是以標注形式提供的,制定數據集的計劃非常重要,該數據集將特征過程用作預測的實際數據。只有輸入的數據正確,所開發的學習算法才具有良好的性能。
例如,如果你想建立一個算法來預測一個Instagram帳戶是假的還是真的,首先你需要人類將帳戶標記為真或假。對于一個人來說這不是一項復雜的任務,但是根據你需要的數據量,這可能會變得很昂貴。
但是,你可以通過更具成本效益的方式獲取數據。例如,Instagram允許其用戶將其消息中的圖像和配置文件報告為垃圾郵件。用戶免費為Instagram算法標記數據,給喜歡的帖子點贊并將不當內容報告為垃圾郵件。然后,Instagram使用這些用戶反饋來打擊欺詐和垃圾郵件帳戶,并為每位客戶提供個性化的消息。
需要指出的是,迄今為止最準確的機器學習系統都采用了“人為介入”方法。這種方法利用了機器和人的智能。當機器不確定它做出的預測是否正確時,它會依賴于人,然后將人的答案添加到其模型中。“人為介入”這一方法有助于獲得高質量的新數據,并隨著時間的推移提高模型的準確性。
還有一些項目可以在沒有標注數據集的情況下啟動,。這些是關于無監督機器學習任務的項目,例如異常檢測或觀眾分類。
特征工程
一旦擁有已標注的數據,你需要將其轉換為算法可接受的格式。在機器學習中,這個過程被稱為特征工程。最初的一組原始特征可能是冗余、海量而無法管理。因此,數據科學家需要選擇最重要的信息特征來促進學習。特征工程需要大量的實驗,并將自動化技術與直覺和領域專業知識相結合。
InDataLabs的數據科學家Eugeny表示:
我們使用簡單的機器學習技術,如梯度提升或線性回歸來選擇和解釋特征。回歸模型的系數自動提供對特征重要性的評估估計。我們使用不同的超參數配置多次訓練模型,以確保特征的排序是可靠的,并且從實驗到實驗并沒有顯著變化。
如果你是領域專家(不是數據科學家),你應該從自己的角度指定哪些特征是最重要的,這對未來的數據工程師非常有用。如果發現自己列出了太多功能,請嘗試將它們組合到特征系列中。
許多機器學習專家認為,正確選擇的特征是有效構建模型的關鍵。
建立和更新模型
該部分解決了何時使用新數據創建/更新模型的問題。主要有兩個原因不斷使得你的模型不斷更新。首先,新數據可以改善模型。其次,它允許捕捉模型運行中的任何變化。模型需要用更新的頻率取決于預測內容。
如果模型預測了短語的情感,就不需要每天或每周更新它。文本的結構變化非常緩慢甚至沒有改變。如果你獲得了更多的訓練數據,這是你需要大規模的更新模型。
另一方面,有一些模型在快速變化的情況中工作。例如,如果對客戶行為做出預測,則應經常檢查這一模型是否適用于新用戶。受眾規模和受眾結構的重大變化可能使得我們需要使用新數據更新模型。
有時更新需要更多的時間和更多的處理能力。在這種情況下,我們需要在成本、時間和模型質量之間取舍。
這個部分的關鍵之處在于,你的模型不是一次性構建的,它應該隨著時間而改變,就像世界上的所有事物一樣。
進行預測
Canvas主要致力于進行預測,并由機器學習任務、決策、預測、離線評估等部件組成。
機器學習任務
該部分旨在根據輸入、輸出和問題類型定義機器學習任務。最常見的機器學習任務是分類、排名和回歸。
如果你預測某些物體是什么,要預測的輸出的是類標簽。在二進制分類中,有兩種可能的輸出類別。在多類分類中,有兩個以上的可能類。我們前面討論過的偽造Instagram賬戶的預測問題是二元分類的一個例子。輸入數據可能包括個人資料名稱、個人資料描述、帖子數量、關注者數量、輸出標簽可能是“真的”或“假的“。
如果你試圖預測數值,那么你正在處理回歸任務。例如,當我們試圖根據價格歷史和有關建筑和市場的其他信息來預測未來幾天的房地產價格時,我們可以將其視為回歸任務。
決策
如何使用預測來向最終用戶的決策提供建議?
在收集培訓數據并建立模型之前,你和團隊不得不闡述如何使用這些預測來做出為最終用戶提供價值的決策。對于每個項目來說,這是一個非常重要的問題,因為它與項目的盈利能力密切相關。如前文所述,一個成功的機器學習系統應該為其用戶創造額外的價值。
機器學習系統必須以真正有意義的方式影響決策過程,預測必須按時交付。許多公司犯的一個常見錯誤是建立一個機器學習模型,該模型應該可以在線進行預測,然后發現他們無法獲得實時數據。所以,在計劃您的機器學習項目時要注意時間,并確保在正確的時間提供正確的數據以提供您可以采取行動的預測。
機器學習系統的輸出并不總是用戶正在尋找的結果。例如,流失預測模型有助于預測一個月內誰可能流失,但最終用戶需要的是流失預防(以具有成本效益的方式阻止客戶流失)。從流失預測到流失預防需要做很多步驟,機器學習項目的擁有者必須能夠事先描述這些步驟。如果你不能解釋如何使用預測來做出為最終用戶提供價值的決策,那么在這里停下來,不要向前走,除非你找到答案。
進行預測
該部分解決了以下問題:“我們什么時候對新投入做出預測?”以及“我們需要多長時間來設計新的投入并進行預測?”
有些模型允許分別更新每個用戶的預測。在這種情況下,你可以考慮幾種模型更新方法:
- 每次用戶打開您的應用程序時都會進行新的預測
- 新的預測是根據請求做出的,用戶可以通過點擊應用程序中的特殊按鈕來請求更新
- 預測更新由某個事件觸發,例如用戶提交新的重要信息
- 對所有用戶按計劃進行新的預測,例如每周一次
還有一些系統,其中對不同用戶的預測是相互關聯的,并且在不更新整個系統的情況下無法為一個用戶進行更新。這種通用更新需要更多時間和更多處理能力,因此需要更多計劃。預測更新所需的時間必須符合所需的更新頻率。
例如,如果您要構建影片推薦系統,請首先考慮建議應該多久更新一次新輸入,以便與用戶相關且有價值。那么你應該檢查這是否可能,因為你的機器學習系統的速度有限。如果您想每天更新并且更新需要兩個小時,這對您來說是個好消息。如果您認為您的建議只有每小時更新一次才有價值,而更新需要兩個小時,則您需要再次在成本,時間和模型質量之間妥協。
離線評估
該模塊在投入生產之前解決模型性能評估的問題。規劃方法和指標以在部署之前評估系統非常重要。如果沒有驗證指標,您將無法選擇能夠做出最佳預測并回答的模型,模型是否足夠好以及何時可以投入生產。因此,請確保您具有代表您正在努力實現的指標。
要評估一個有監督的機器學習算法,我們通常使用k-fold交叉驗證。該方法意味著對可用訓練數據的(k-1)個子集上的幾個機器學習模型進行訓練,并對保留用于評估的補充子集進行評估。這個過程重復k次,每次都有不同的驗證數據。這種技術有助于避免過度擬合,同時使用所有可用的數據進行訓練
InDataLabs的數據科學家Eugeny如是說。
離線評估的另一種方法是對實時數據進行離線評估。例如,如果您正在建立預測房地產價格的模型,則只需等待實際銷售數據可用,并將您的預測與實時數據進行比較。
實時評估和監測
Canvas 的最后部分涵蓋了模型的在線評估和監測。在這里,您將指定度量標準來監控部署后的系統性能(跟蹤度量標準),并衡量價值創建(業務度量標準)。調整這兩種指標將使公司中的每個人都更快樂。理想情況下,模型的質量與業務結果之間應有直接關系。
在線階段有其自己的測試程序。A/B測試是最常用的在線測試形式。這種方法相當簡單,但它有一些棘手的規則和原則,您需要遵循才能正確設置并解釋結果。
A/B測試的一個有希望的替代方法是稱為多臂博弈的算法。如果您有多個競爭型號,并且您的目標是最大限度地提高用戶的整體滿意度,那么您可以嘗試運行多臂博弈算法。
當模型投入生產時,它與真實用戶進行交互,他們也可以提供關于模型準確性信息。您可以收集這種現場反饋,進行客戶訪談或分析評論和支持請求。
您還應該繼續跟蹤模型在實時數據驗證度量上的性能,并在模型質量對最終用戶不滿意之前進行模型更新。
原文鏈接
干貨好文,請關注掃描以下二維碼:
總結
以上是生活随笔為你收集整理的超详细!上线一个机器学习项目你需要哪些准备?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 惊呆了!颜值爆表的20+位阿里技术女神同
- 下一篇: 业务代码解构利器--SWAK