自動化學習框架(AutoML)的性能比較

摘要:

AutoML作為一個有效的工具可以幫助很多企業方便地實施和加速人工智能方面的應用落地。對於還不具備數據科學團隊的公司來說,AutoML可以是全自動化的模型構建工具來使用,即便對於具備一定數據科學能力的公司,AutoML仍然可以幫助他們更加專注在人工智能落地中最為重要的事情上。在文本中,主要講解目前常用的四個自動化學習平臺,auto-sklearn, TPOT, auto_ml 和H2O,以及他們之間的性能比較。

為什麼需要AutoML?

機器學習建模是一個流程化的過程。首先我們需要拿到數據,其次就是數據的預處理、特徵工程,接著要做模型的構建,並通過調參的方式來尋找最好的模型參數。如果效果不佳,我們經常需要回到特徵工程,重新再走整個的流程。顯然,在實際工程上,我們需要花費大量的精力在這些每個流程上的優化(包括特徵選取,調參等等)。如果一個工具或者框架能夠幫助我們把所有流程優化好,那會極大地提升工作效率。在這個情況下,我們只需要把輸入數據傳遞給一個框架或者平臺,則可以拿到最後已經訓練好的模型。其實這就是AutoML所做的事情。

Auto_ml

設計的目標為幫助公司快速從數據中提取有價值的信息,它用來自動化機器學習系統構建中的大部分流程。不僅可以用來完成通常花費最長時間的特徵工程,比如對於自然語言處理的if-idf特徵構建,特徵編碼等,還可以對於維度非常高的數據嘗試降維操作。

Auto_ml底層使用了Scikit-Learn, XGBoost, TensorFlow, Keras, LightGBM等工具來確保運行時的高效。除了這些優點,Auto_ml也存在一些可擴展性缺點,而且對於多分類問題表現出(multi-class classification)比較差的表現。

Auto-sklearn

自動化學習框架(AutoML)的性能比較

顧名思義,Auto-sklearn是scikit-learn基礎上搭建的自動化學習平臺。它包含自動化特徵工程部分,而且整個流程由Bayesian search來優化並得到最好的模型。

Auto-sklearn的最大優勢在於它建立在sklearn的生態上,所以具有更好的可擴展性以及兼容性,畢竟sklearn是目前為止最為流行的機器學習工具。 但相反,對於自然語言處理的數據,缺乏一些有效的工具。

TPOT

自動化學習框架(AutoML)的性能比較

TPOT是基於樹狀的流程優化工具,它的核心基於遺傳算法(genetic algorithm)。它延伸了sklearn的框架,但基於自己的基礎類。它的缺點也是對於自然語言數據的處理並不友好。

H20

H20是基於Java編寫的框架,跟sklearn也比較類似。它包含常用的模型比如GLM、深度學習模型、GBM, 隨機森林等。它支持多種類型的Grid search來找到最好的超參數(hyperparameter)。最後生成的模型是一個集成模型,結合了多個模型。

實驗中利用的數據集

為了驗證每個框架的性能,文本主要在OpenML的數據上做了測試,選取了57個用來分類的數據集,30個用來回歸分析的收集。

部分用於分類問題的數據集:


自動化學習框架(AutoML)的性能比較


部分用於迴歸分析的數據集:

自動化學習框架(AutoML)的性能比較

實驗1: 對於發生異常情況的統計:

本文統計出了在進行實驗過程中遇到的異常情況,如下表所示。同表中可以看出H20在異常次數上佔據最高,這也證實了H20框架的一個缺點,就是對於資源管理的問題。


自動化學習框架(AutoML)的性能比較


實驗2: 對於預測準確率方面的統計

以下是針對分類和歸回問題的預測統計。這個結果是基於所有數據集上的統計結果。從這個結果裡可以看出,auto-sklearn在分類問題上要明顯優於所有其他的框架。但在迴歸問題上,tpot要優於其他所有的框架。


自動化學習框架(AutoML)的性能比較


自動化學習框架(AutoML)的性能比較


論文地址:https://arxiv.org/pdf/1808.06492.pdf


分享到:


相關文章: