Auto_ml与TPOT的区别
?
摘要:
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
?
顧名思義,Auto-sklearn是scikit-learn基礎上搭建的自動化學習平臺。它包含自動化特征工程部分,而且整個流程由Bayesian search來優化并得到最好的模型。
?
Auto-sklearn的最大優勢在于它建立在sklearn的生態上,所以具有更好的可擴展性以及兼容性,畢竟sklearn是目前為止最為流行的機器學習工具。 但相反,對于自然語言處理的數據,缺乏一些有效的工具。
?
TPOT
?
TPOT是基于樹狀的流程優化工具,它的核心基于遺傳算法(genetic algorithm)。它延伸了sklearn的框架,但基于自己的基礎類。它的缺點也是對于自然語言數據的處理并不友好。
?
H20
H20是基于Java編寫的框架,跟sklearn也比較類似。它包含常用的模型比如GLM、深度學習模型、GBM, 隨機森林等。它支持多種類型的Grid search來找到最好的超參數(hyperparameter)。最后生成的模型是一個集成模型,結合了多個模型。
?
實驗中利用的數據集
為了驗證每個框架的性能,文本主要在OpenML的數據上做了測試,選取了57個用來分類的數據集,30個用來回歸分析的收集。
?
部分用于分類問題的數據集:
?
部分用于回歸分析的數據集:
?
實驗1: 對于發生異常情況的統計:
本文統計出了在進行實驗過程中遇到的異常情況,如下表所示。同表中可以看出H20在異常次數上占據最高,這也證實了H20框架的一個缺點,就是對于資源管理的問題。
?
實驗2: 對于預測準確率方面的統計
以下是針對分類和歸回問題的預測統計。這個結果是基于所有數據集上的統計結果。從這個結果里可以看出,auto-sklearn在分類問題上要明顯優于所有其他的框架。但在回歸問題上,tpot要優于其他所有的框架。
總結
以上是生活随笔為你收集整理的Auto_ml与TPOT的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AutoML Vision教程:训练模型
- 下一篇: 基于朴素贝叶斯的垃圾邮件分类-着重理解拉