標籤:

學習機器學習時需要儘早知道的三件事

作者簡介: Peadar Coyle,數據科學家,開源軟體貢獻者,演講家與作家。先後就職於 Amazon、Vodafone、JOB TODAY、Channel 4、Elevate Direct 等,在數據驅動解決方案設計開發中具有豐富的經驗。

我已經在學術界和工業界進行了許多年的機器學習建模工作,在看了一系列討論「大數據」實用性問題的優秀視頻 Scalable ML 後,我開始思考總結一些在學習機器學習時,我希望能夠儘早明白的事情。視頻來源於 Mikio Braun,介紹了 Scala 和 Spark 相關的知識。

我希望在學習機器學習時能夠儘早明白的事情有三項:

  1. 將模型應用到產品中並不是一件簡單的小事;
  2. 在課本中我們很難學習到真正的特徵選擇和特徵提取技巧;
  3. 模型評估階段非常重要。

下面讓我一個一個地介紹它們。

1. 將模型應用到產品中並不是一件簡單的小事

我在 Data-Product 上有一場介紹如何將常微分方程應用到產品中的演講。之後我花了好一段時間才意識到,自己一個人來處理包括模型衰退、產品中模型評價、開發與運維溝通等事務是多麼的困難。Yhat 的 ScienceOps 是針對這個問題的一個解決方案。一開始我並沒有意識到它有多棒,現在我發現我很難在市場中找到該產品的直接競爭者,我真的覺得他們正在解決這個非常重要的問題。漸漸地,我意識到我沒有聰明到可以處理運維成員負責的事務——所以我很樂意將這項工作外包。

2. 在課本中我們很難學習到真正的特徵選擇和特徵提取技巧

特徵選擇和提取方法和技巧常常無法從課本中學習。這些技巧只能從像 Kaggle 競賽或現實世界中的項目中學習,甚至有時候需要實際應用這些技巧和方法才能學會它們。而這些工作在整個數據科學項目流程中佔據了相當一部分比重。

3. 模型評估階段非常重要

除非你已經將模型應用到測試集數據上了,否則你都不能說已經進入到預測分析階段。像交叉驗證、評估指標等評估技巧都是非常寶貴的,因為它們只需將你的數據分離成測試集和訓練集。但是實際生活通常並不會將已經定義好測試集、訓練集的數據給你,所以將真實世界中的數據劃分為測試數據和訓練數據,是一項充滿創造性的工作,其中可能包含許多情感因素。在 Dato 上有許多討論模型評估的優秀文章。

我認為 Mikio Braun 對訓練集和測試集的解釋值得一讀。我也很喜歡他畫的圖並將其包含在文中,方便不熟悉訓練集和測試集概念的讀者理解。

我們在論文、會議甚至在討論我們解決問題時所用的方法的時候,經常忽略了模型評價。「我們在其中使用了 SVM 」這句話並沒有告訴我任何信息,這沒有告訴我你的數據來源,你選擇的特徵,你的模型評估方法,你如何將其應用到產品中,以及你在其中如何使用交叉驗證或模型查錯。我認為我們需要更多關於機器學習中這些「骯髒」的方面問題的討論。

我的朋友 Ian 在 Data Science Delivered 上有一個很好的筆記,適合需要為真實情況建立機器學習模型的任何層次的人員閱讀。同時也適合希望僱傭數據科學家的招聘人員或者與數據科學團隊打交道的經理閱讀——如果你正在找人詢問「你是如何處理這些骯髒的數據的」。

相關連接: Scalable ML: Practical Big Data [Video]

Data-Products:

How to get Data Science Models into production on a budget

ScienceOps:

Yhat: End-to-End Data Science Platform

Dato:

blog.dato.com

Mikio Braun:

Three Things About Data Science You Won"t Find In the Books

(本文數據工匠有譯文:書本不會告訴你,數據科學三件事 - 知乎專欄)

Data Science Delivered: github.com/ianozsvald/dsciencedelivered

推薦閱讀:

機器學習--感知機科普入門
Python · 神經網路(六)· 拓展
One-Page AlphaGo -- 10分鐘看懂AlphaGo的核心演算法
跟我學做菜吧!sklearn快速上手!用樸素貝葉斯/SVM分析新聞主題

TAG:机器学习 |