機器學習應該以知足用戶需求爲目的進行設計算法
只有在回答這3W問題以後,你才能開始思考一些關於數據收集、特徵工程、建模、評估和監測系統的問題。數據庫
讓咱們繼續看看專門用於從數據中學習的Canvas的流程,它是由數據源、收集數據、特徵工程、建模等幾部分組成的。機器學習
數據源
這一部分提出了一個關於咱們可使用哪些原始數據源的問題。這一步不須要具體計劃收集哪些數據,但會迫使你開始思考要使用的數據源。你須要考慮的一些數據源示例包括內部數據庫、開放數據、域中的研究論文、API、網頁抓取以及其餘機器學習系統的輸出等。性能
收集數據
這一部分主要解決收集和準備數據的問題。若是沒有訓練數據集,機器學習項目就不可能存在。而且,訓練集最好包含大量已標記數據。這意味着你的學習系統將須要示例輸入和他們指望的輸出。只有從標有正確答案的數據中學習以後,機器學習模型才能用於對新數據進行預測。
一般,數據最初並非以標註形式提供的,制定數據集的計劃很是重要,該數據集將特徵過程用做預測的實際數據。只有輸入的數據正確,所開發的學習算法才具備良好的性能。
例如,若是你想創建一個算法來預測一個Instagram賬戶是假的仍是真的,首先你須要人類將賬戶標記爲真或假。對於一我的來講這不是一項複雜的任務,可是根據你須要的數據量,這可能會變得很昂貴。
可是,你能夠經過更具成本效益的方式獲取數據。例如,Instagram容許其用戶將其消息中的圖像和配置文件報告爲垃圾郵件。用戶免費爲Instagram算法標記數據,給喜歡的帖子點贊並將不當內容報告爲垃圾郵件。而後,Instagram使用這些用戶反饋來打擊欺詐和垃圾郵件賬戶,併爲每位客戶提供個性化的消息。
須要指出的是,迄今爲止最準確的機器學習系統都採用了「人爲介入」方法。這種方法利用了機器和人的智能。當機器不肯定它作出的預測是否正確時,它會依賴於人,而後將人的答案添加到其模型中。「人爲介入」這一方法有助於得到高質量的新數據,並隨着時間的推移提升模型的準確性。
還有一些項目能夠在沒有標註數據集的狀況下啓動,。這些是關於無監督機器學習任務的項目,例如異常檢測或觀衆分類。學習
特徵工程
一旦擁有已標註的數據,你須要將其轉換爲算法可接受的格式。在機器學習中,這個過程被稱爲特徵工程。最初的一組原始特徵多是冗餘、海量而沒法管理。所以,數據科學家須要選擇最重要的信息特徵來促進學習。特徵工程須要大量的實驗,並將自動化技術與直覺和領域專業知識相結合。測試
InDataLabs的數據科學家Eugeny表示:阿里雲
咱們使用簡單的機器學習技術,如梯度提高或線性迴歸來選擇和解釋特徵。迴歸模型的係數自動提供對特徵重要性的評估估計。咱們使用不一樣的超參數配置屢次訓練模型,以確保特徵的排序是可靠的,而且從實驗到實驗並無顯着變化。翻譯
若是你是領域專家(不是數據科學家),你應該從本身的角度指定哪些特徵是最重要的,這對將來的數據工程師很是有用。若是發現本身列出了太多功能,請嘗試將它們組合到特徵系列中。
許多機器學習專家認爲,正確選擇的特徵是有效構建模型的關鍵。設計
創建和更新模型
該部分解決了什麼時候使用新數據建立/更新模型的問題。主要有兩個緣由不斷使得你的模型不斷更新。首先,新數據能夠改善模型。其次,它容許捕捉模型運行中的任何變化。模型須要用更新的頻率取決於預測內容。
若是模型預測了短語的情感,就不須要天天或每週更新它。文本的結構變化很是緩慢甚至沒有改變。若是你得到了更多的訓練數據,這是你須要大規模的更新模型。
另外一方面,有一些模型在快速變化的狀況中工做。例如,若是對客戶行爲作出預測,則應常常檢查這一模型是否適用於新用戶。受衆規模和受衆結構的重大變化可能使得咱們須要使用新數據更新模型。
有時更新須要更多的時間和更多的處理能力。在這種狀況下,咱們須要在成本、時間和模型質量之間取捨。
這個部分的關鍵之處在於,你的模型不是一次性構建的,它應該隨着時間而改變,就像世界上的全部事物同樣。排序
Canvas主要致力於進行預測,並由機器學習任務、決策、預測、離線評估等部件組成。
機器學習任務
該部分旨在根據輸入、輸出和問題類型定義機器學習任務。最多見的機器學習任務是分類、排名和迴歸。
若是你預測某些物體是什麼,要預測的輸出的是類標籤。在二進制分類中,有兩種可能的輸出類別。在多類分類中,有兩個以上的可能類。咱們前面討論過的僞造Instagram帳戶的預測問題是二元分類的一個例子。輸入數據可能包括我的資料名稱、我的資料描述、帖子數量、關注者數量、輸出標籤多是「真的」或「假的「。
若是你試圖預測數值,那麼你正在處理迴歸任務。例如,當咱們試圖根據價格歷史和有關建築和市場的其餘信息來預測將來幾天的房地產價格時,咱們能夠將其視爲迴歸任務。
決策
如何使用預測來向最終用戶的決策提供建議?
在收集培訓數據並創建模型以前,你和團隊不得不闡述如何使用這些預測來作出爲最終用戶提供價值的決策。對於每一個項目來講,這是一個很是重要的問題,由於它與項目的盈利能力密切相關。如前文所述,一個成功的機器學習系統應該爲其用戶創造額外的價值。
機器學習系統必須以真正有意義的方式影響決策過程,預測必須按時交付。許多公司犯的一個常見錯誤是創建一個機器學習模型,該模型應該能夠在線進行預測,而後發現他們沒法得到實時數據。因此,在計劃您的機器學習項目時要注意時間,並確保在正確的時間提供正確的數據以提供您能夠採起行動的預測。
機器學習系統的輸出並不老是用戶正在尋找的結果。例如,流失預測模型有助於預測一個月內誰可能流失,但最終用戶須要的是流失預防(以具備成本效益的方式阻止客戶流失)。從流失預測到流失預防須要作不少步驟,機器學習項目的擁有者必須可以事先描述這些步驟。若是你不能解釋如何使用預測來作出爲最終用戶提供價值的決策,那麼在這裏停下來,不要向前走,除非你找到答案。
進行預測
該部分解決了如下問題:「咱們何時對新投入作出預測?」以及「咱們須要多長時間來設計新的投入並進行預測?」
有些模型容許分別更新每一個用戶的預測。在這種狀況下,你能夠考慮幾種模型更新方法:
還有一些系統,其中對不一樣用戶的預測是相互關聯的,而且在不更新整個系統的狀況下沒法爲一個用戶進行更新。這種通用更新須要更多時間和更多處理能力,所以須要更多計劃。預測更新所需的時間必須符合所需的更新頻率。
例如,若是您要構建影片推薦系統,請首先考慮建議應該多久更新一次新輸入,以便與用戶相關且有價值。那麼你應該檢查這是否可能,由於你的機器學習系統的速度有限。若是您想天天更新而且更新須要兩個小時,這對您來講是個好消息。若是您認爲您的建議只有每小時更新一次纔有價值,而更新須要兩個小時,則您須要再次在成本,時間和模型質量之間妥協。
離線評估
該模塊在投入生產以前解決模型性能評估的問題。規劃方法和指標以在部署以前評估系統很是重要。若是沒有驗證指標,您將沒法選擇可以作出最佳預測並回答的模型,模型是否足夠好以及什麼時候能夠投入生產。所以,請確保您具備表明您正在努力實現的指標。
要評估一個有監督的機器學習算法,咱們一般使用k-fold交叉驗證。該方法意味着對可用訓練數據的(k-1)個子集上的幾個機器學習模型進行訓練,並對保留用於評估的補充子集進行評估。這個過程重複k次,每次都有不一樣的驗證數據。這種技術有助於避免過分擬合,同時使用全部可用的數據進行訓練
InDataLabs的數據科學家Eugeny如是說。
離線評估的另外一種方法是對實時數據進行離線評估。例如,若是您正在創建預測房地產價格的模型,則只需等待實際銷售數據可用,並將您的預測與實時數據進行比較。
Canvas 的最後部分涵蓋了模型的在線評估和監測。在這裏,您將指定度量標準來監控部署後的系統性能(跟蹤度量標準),並衡量價值建立(業務度量標準)。調整這兩種指標將使公司中的每一個人都更快樂。理想狀況下,模型的質量與業務結果之間應有直接關係。
在線階段有其本身的測試程序。A/B測試是最經常使用的在線測試形式。這種方法至關簡單,但它有一些棘手的規則和原則,您須要遵循才能正確設置並解釋結果。
A/B測試的一個有但願的替代方法是稱爲多臂博弈的算法。若是您有多個競爭型號,而且您的目標是最大限度地提升用戶的總體滿意度,那麼您能夠嘗試運行多臂博弈算法。
當模型投入生產時,它與真實用戶進行交互,他們也能夠提供關於模型準確性信息。您能夠收集這種現場反饋,進行客戶訪談或分析評論和支持請求。
您還應該繼續跟蹤模型在實時數據驗證度量上的性能,並在模型質量對最終用戶不滿意以前進行模型更新。
本文由阿里云云棲社區組織翻譯。
文章原標題《How to Design Better Machine Learning Systems with Machine Learning Canvas》
詳情請閱讀原文