要了解 AutoML,咱們先得談談機器學習項目的生命週期,具體涵蓋數據清潔、特徵選擇 / 工程、模型選擇、參數優化以及最終模型驗證。儘管技術快速發展,傳統數據科學項目當中仍然包含大量既耗時又重複的手動操做流程。編程
圖片來源:R. Olson 等(2016 年),《在自動化數據科學場景下,對 TPOT(基於樹形結構的流水線優化工具)的評估》網絡
AutoML 可以自動完成從數據清潔到參數優化的整個流程,憑藉着出色的時間與性能改進效果,爲各種機器學習項目帶來巨大價值。app
1. Google Cloud AutoMLless
誕生於 2018 年的 Google Cloud AutoML 憑藉其友好的用戶界面與極高的性能表現,很快在市場上得以普及。下圖所示,爲 Google 與其餘 AutoML 平臺之間的性能比較(藍色柱形爲 Google AutoML)。機器學習
圖片來源:《在結構化數據上利用 AutoML 解決高價值業務問題》,2019 年 Cloud Next 大會ide
2. 微軟 Azure AutoML工具
一樣誕生於 2018 年的 Azure AutoML,爲不熟悉編程知識的用戶們帶來高透明度模型選擇流程。性能
3. H2o.ai學習
「H2O 已經成爲大規模模型構建領域的重要驅動力。面對數十億級別的參數規模,任何現成的標準開源技術都顯得無能爲力。」 — H2o.ai測試
H2o 誕生於 2012 年,同時提供開源軟件與商業 AutoML 服務(Driverless AI)兩種選項。自面世以來,H2O 已經在金融服務與零售等行業獲得普遍應用。
4. TPOT
TPOT(基於樹形結構的流水線優化工具)由賓夕法尼亞大學開發完成,是一款可無償使用的 Python 軟件包。該軟件雖然徹底免費,但功能方面不打一點折扣,並且在各種數據集上均擁有出色性能表現:Iris 數據集準確率約爲 97%,MNIS 數字識別數據集準確率 98%,波士頓房屋價格預測爲 10 MSE。
AutoML 對陣數據科學家
如今,咱們已經瞭解了 AutoML 的基本定義及其可用選項。下面來看核心問題:這些平臺會全面取代人類數據科學家嗎?
爲了找到使人信服的答案,咱們將經過一場***馬拉松,客觀評估 AutoML 與人類之間的分析能力差別。
成本比較
根據 Indeed.com 網站的統計,美國數據科學家的平均年薪爲 12 萬 1585 美圓。而 若是一家企業整年持續使用 AutoML(每週 40 小時,每一年 52 周),則費用每一年在 4160 美圓到 41600 美圓之間,具體視實際平臺選項而定。
誠然,這樣的直接比較並不合理,由於咱們都知道數據科學家在模型操做以外還有其餘工做須要處理。但在另外一方面,這種快速簡單的方法,仍能在必定程度上體現數據科學家與 AutoML 的成本差別。
數據科學家與 AutoML 之間的成本比較
性能比較:***馬拉松
下面,咱們將組織一場涵蓋兩套數據集的***馬拉松,進一步比較人類數據科學家與 AutoML 平臺之間的性能差別。每套數據集,對應一支人類數據科學家小組以及多個 AutoML 平臺。雙方將同步進行數據處理、特徵選擇 / 工程、模型選擇以及參數調整,並最終努力給出符合預約性能指標的最佳預測結果。
***馬拉松數據集 1:快速分類
***馬拉松數據集 2:ASHRAE(迴歸)
數據集 1:快速分類數據集數據集概述
該數據集收集自參與實驗性快速約會活動的人羣。在這些活動中,參與者會填寫一份調查表,其中包括我的信息以及他們理想中的伴侶所應具有的特徵。例如,他們會以從 1 到 10 幾個等級評論本身、本身從事的工做,以及但願伴侶表現出哪些特質。這套數據集的目標,在於根據我的喜愛預測其可否找到適合本身的匹配對象。這是一個典型的分類問題,咱們將「match」變量做爲因變量。
數據科學家的數據預處理與特徵工程
爲了得到優於 AutoML 平臺的結果,人類數據科學家須要對數據集進行特徵設計、處理類失衡問題、處理缺失值,並對分類變動執行獨熱編碼。因爲數據收集自調查問卷,所以必須存在嚴重的值缺乏問題——這是由於若是採訪者不肯意回答某個問題,則可直接留空。這些缺失值只能經過適當估算均值、中位數或者衆數等方式解決。因爲數據在某些自變量之間具備共線性,所以某些變量會被刪除。在全部標籤當中,只有 29% 的二進制值爲 1,其餘部分的二進制值則爲 0。爲了解決這個問題,咱們採用 SMOTE(合成少數過採樣技術)。SMOTE 可以從少數類當中建立合成樣本,而非簡單複製數據。獨熱編碼在谷歌平臺上每每難於實現,這是由於該平臺沒法以有意義的方式對提取到的信息進行分組。
如今,咱們將利用原始與特徵工程處理後的數據,對 Azure 及谷歌的 AutoML 平臺進行總體有效性分析。
數據科學家對陣 AutoML 平臺
數據科學家: 咱們嘗試了多種不一樣模型,然後發現 XGBoost 與神經網絡模型的性能最好。咱們在其中主要關注 AUC ROC 評分,以便將模型結果與 AutoML 平臺建立的模型進行比較。XGBoost 模型的 AUC ROC 得分爲 0.77,神經網絡模型的 AUC ROC 得分則爲 0.74。
使用原始數據的 AutoML 平臺: 一樣採用 XGBoost,谷歌的性能水平要比 Azure 了一些。谷歌的 AUC ROC 得分爲 0.881,Azure 則爲 0.865。因爲相關信息被劃定爲專有信息,所以咱們沒法得知谷歌平臺到底選擇了哪一種模型。另外一方面,Azure 則會準確告知其運行了多少個模型,每一個模型的得分是多少,以及訓練各個模型所花費的時間。
使用處理後數據的 AutoML 平臺: 如今,咱們但願測量通過特徵工程處理的數據集又將在 AutoML 上擁有怎樣的性能表現。咱們注意到:谷歌的性能有所降低,Azure 性能則得以改善。如前所述,谷歌 AutoML 在處理獨熱編碼方面存在問題,其設計思路在於自主進行特徵工程。所以,以獨熱碼變量的形式提供特徵工程數據,反而會致使其總體性能下滑。在這輪測試中,Azure 的性能由 0.865 提高到了 0.885。
下圖所示,爲 Azure 在數據集上運行的各套模型:
咱們也能夠看到谷歌與 Azure 平臺上的 Precison-Recall 圖、ROC 圖、混淆矩陣以及特徵重要度圖:
快速(約會)分類數據集測試結論:
Azure 在具體使用模型方面更爲透明;谷歌平臺則拒絕公開模型建立與選擇信息。
谷歌沒法很好地處理獨熱碼變量。
數據集 2: ASHRAE
數據集概述
這套數據集來自 ASHRAE Energy Prediction Kaggle 競賽,要求參賽者們開發出一套面向 1449 處建築物內熱水、冷水、蒸汽以及儀表計數的預測模型。這些數據源自建築物的一系列相關元數據,包括佔地面積、建成時間以及樓層總數;儀表類型與時間戳讀數;帶有時間戳的天氣數據,包括氣溫、雲量、降水量、風速、風向以及海平面壓力等。天氣數據由建築物所在地附近的氣象站提供。
數據科學家的數據預處理與特徵工程
天氣數據集當中一樣存在着嚴重的值缺失問題,能夠看到雲量與降水量這兩項特徵分別存在 50% 與 35% 的缺失比例。部分氣象站甚至壓根不提供雲量與降水量數據。爲了克服這一障礙,數據科學家們嘗試對氣溫、露水溫度、風速以及海平面壓力等特徵進行整理,藉此爲缺失部分創建插值,並利用這些插值爲雲量與降水量創建預測模型。
咱們利用 10 倍交叉驗證爲各項特徵選定插值方法,並將其應用於訓練與測試數據。咱們運行了一系列模型以預測雲量與降水量,但始終未能找到可準確生成缺失值的理想模型。風向測量存在間隔,所以咱們將每組數據重構爲一組分類變量;因爲存在明顯的右偏分佈,咱們對風速結果進行了對數轉換。此外,咱們還構建起其餘一些特徵,包括假期和週末,同時引入了影響滯後因素。總而言之,咱們額外構建起 19 項特徵,再加上 13 項原始特徵,總計 32 個變量。
最後,咱們刪除了一條由氣象站收集到的異常天氣數據,然後利用正向、反向與逐步迴歸找出最佳預報特徵,所以預測中實際使用的變量爲 13 個。
數據科學家對陣 AutoML 平臺
數據科學家: 咱們並無爲全部建築物構建通用模型,而是爲數據集內的每棟建築物構建起對立的光梯度加強模型,確保訓練與測試集內包含相同建築物的信息。經過這種方法,咱們得到了 0.773 RMSLE。
使用原始數據的 AutoML 平臺: 通過一個小時的訓練,谷歌雲得到了 1.017 RMSLE;再訓練三個小時,RMSLE 又進一步提高了 0.011。在這輪測試中,谷歌輕鬆超越 Azure,後者的 RMSLE 爲 2.22。固然,這一比較並不算徹底公平,由於咱們要求 Azure 強制使用隨機森林以返回 RMSLE 結果。
使用處理後數據的 AutoML 平臺: 咱們經過谷歌雲運行處理後的數據。在通過四個小時的訓練後,谷歌雲的 RMSLE 爲 1.7,這讓咱們至關驚訝。通過進一步調查,咱們發現本身的特徵選擇方法限制了 AutoML 的性能,由於 AutoML 平臺但願執行本身的特徵選擇。咱們再次經過兩套平臺運行處理後的數據,且使用所有 32 個變量——而非以前提到的 13 個。這一次,兩套平臺的性能都獲得了改善。通過一個小時的訓練,谷歌雲的 RMSLE 爲 0.755,四小時訓練後的 RMSLE 進一步達到 0.656——這遠遠超過了數據科學家們拿出的結果!通過一個小時的訓練,Azure 的 RMSLE 爲 3.826,四小時訓練後的結果則爲 3.653。
ASHRAE 數據集測試結論:
將訓練週期延長几個小時,能夠大大提升 AutoML 平臺的性能表現。
必須容許 AutoML 平臺自行選擇特徵,不然可能會嚴重影響其性能表現。
將數據科學家在業務問題上的專業知識,同 AutoML 強大的特徵選擇、特徵預處理、模型選擇以及超參數調優功能相結合,將迸發出強大的能量,爲咱們帶來寶貴的洞察看法與理想的預測結果。
結論最後,咱們用三個問題來結束此番討論。
AutoML 能替代數據科學家嗎?
答案是否認的。
雖然 AutoML 確實擅長構建模型,但仍然沒法勝任大部分數據科學家所熟悉的工做內容。咱們須要仰仗數據科學家來定義業務問題,須要他們運用本身的專業知識構建更多具備實際意義的特徵。現在,AutoML 還只能處理有限幾種問題類型,例如分類與迴歸問題;換言之,它們還沒法創建推薦與排名模型。更重要的是,咱們仍然須要由數據科學家從數據當中整理出可行洞察,這是單憑 AutoML 所沒法作到的。
可是,AutoML 仍能幫助數據科學家爲利益相關方創造出巨大的價值。所以,接下來要回答的問題是:咱們什麼時候該使用 AutoML?又該如何使用?
數據科學家該如何充分利用 AutoML 平臺?
在這裏,咱們能夠參考如下幾個潛在用例。
性能比可解釋性更重要時:
有時候,利益相關方可能只關注模型精度,而不要求模型必須擁有明確的可解釋性。根據咱們的實驗,保證 AutoML 具備合理的特徵工程發揮空間彷佛有助於性能提高。但在示例當中,兩套平臺只在特徵重要度方面體現出一點點可解釋性。換句話說,若是隻瞭解特徵重要度就夠了,那麼 AutoML 可能會成爲實現更高分析精度的理想選項。
生產速度很是重要時:
谷歌與 Azure 都提供將模型部署至生產環境中的便捷方法。例如,谷歌雲容許用戶經過幾回點擊快速實現批量與在線預測。它還容許用戶經過 API 將模型部署至自有網站。這些功能,將使得數據科學家顯著加快生產速度並減小實際工做量。
時間較爲緊迫時:
數據科學家肩上的擔子可不輕,因此時間對他們來講無比寶貴。在平常工做中,數據科學家須要沒完沒了地參加由產品經理、業務負責人、員工以及客戶組織的會議,維護現有模型、進行數據收集 / 清潔、爲下一次會議作準備等等等等。所以,AutoML 將成爲節約時間的重要工具,幾回點擊再幾塊小錢,就讓幫助咱們訓練出具有必定性能的模型。如此一來,你們就能專一於處理那些最具價值回報的關鍵任務(有時候,把 PPT 作得漂亮一點,可能要比把模型精度提高 1% 重要得多)。