免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
一文徹底掌握自動機器學(xué)習(xí)AutoML:AutoGluon


這是自動機器學(xué)習(xí)系列文章的第10篇。?為便于理解,本文主要分為兩個部分。第一部分介紹 AutoML 的背景信息,并比較下近期較為流行的AutoML框架,第二部分介紹 AutoGluon(AutoML 框架之一)的端到端示例用例??靵砗托『镒右黄饘W(xué)習(xí)吧!?

AutoML 的基礎(chǔ)知識

典型的機器學(xué)習(xí)模型包括以下步驟:

  1. 數(shù)據(jù)采集
  2. 數(shù)據(jù)準備
  3. 算法選擇
  4. 模型訓(xùn)練
  5. 模型評估
  6. 參數(shù)調(diào)整
  7. 模型預(yù)測與解釋

從上面這一些列流程可以看出,實現(xiàn)機器學(xué)習(xí)模型所涉及的復(fù)雜性和學(xué)習(xí)量都是不小的。并且在選擇最佳模型之前,它還需要廣泛的領(lǐng)域?qū)I(yè)知識來生成和比較多個模型,最終才能獲得最佳模型來實現(xiàn)我們的最終目標(biāo)。

而自動機器學(xué)習(xí)AutoML生來就是來簡化以上繁瑣的過程,AutoML 被用于自動化構(gòu)建整個機器學(xué)習(xí)管道的過程,而人工干預(yù)最少。

一些流行的 AutoML 框架

  1. AutoGluon[1] (2020) :這個由 AWS 開發(fā)的 AutoML 開源工具包有助于在文本、圖像和表格數(shù)據(jù)的各種機器學(xué)習(xí)和深度學(xué)習(xí)模型中獲得強大的預(yù)測性能。支持在 Linux 、 Mac 和Windows操作系統(tǒng)安裝。
  2. TPOT[2](2018):基于樹的管道優(yōu)化工具(TPOT)也是流行的開源 AutoML 框架之一,它使用 scikit-learn 庫作為其 ML 列表的一部分。根據(jù)官方文檔,它使用遺傳編程來智能地探索數(shù)千種可能的管道,為給定的數(shù)據(jù)集找到性能最好的模型管道。注意,TPOT 不會對數(shù)據(jù)集執(zhí)行任何預(yù)處理,因此希望輸入的數(shù)據(jù)集是干凈的。 但是,它可以執(zhí)行特征處理、模型選擇和超參數(shù)優(yōu)化以返回性能最佳的模型。它是回歸和分類問題的不錯選擇,但不適用于 NLP。
    一文徹底搞懂自動機器學(xué)習(xí)AutoML:TPOT
  3. H2O AutoML[3] (2018):H2O AutoML 框架是一個開源工具包,最適合傳統(tǒng)神經(jīng)網(wǎng)絡(luò)和機器學(xué)習(xí)模型。它可用于自動化機器學(xué)習(xí)工作流程,即在指定時間段內(nèi)進行模型訓(xùn)練和模型的超參數(shù)調(diào)整。它可以執(zhí)行數(shù)據(jù)預(yù)處理、模型選擇和超參數(shù)調(diào)整。此外,它會返回模型的排行榜視圖及其性能結(jié)果。但要注意,由于 H2O AutoML 是用 java 開發(fā)的,因此需要 java 運行時環(huán)境。
    一文徹底搞懂自動機器學(xué)習(xí)AutoML:H2O
    不寫代碼也能玩自動機器學(xué)習(xí)AutoML:H2O Flow
  4. Auto-sklearn[4] (2015):這個 AutoML 框架由 Matthias Feurer 等人開發(fā),根據(jù)官方文檔,它基于貝葉斯優(yōu)化、元學(xué)習(xí)和集成構(gòu)建。算法選擇和超參數(shù)調(diào)整是使用這個框架自動化的。該框架僅支持基于 sklearn 的模型,即不適用于圖形模型或序列預(yù)測問題。
    一文徹底搞懂自動機器學(xué)習(xí)AutoML:Auto-Sklearn
  5. MLBox[5] (2017):另一個著名的基于 Python 的開源 AutoML 庫。它功能強大,提供與預(yù)處理(讀取和預(yù)處理數(shù)據(jù))、優(yōu)化(測試和/或優(yōu)化模型)和預(yù)測(預(yù)測測試數(shù)據(jù)集的結(jié)果)相關(guān)的三個子包。此外,它可以執(zhí)行特征選擇、超參數(shù)優(yōu)化、分類和回歸的自動模型選擇以及使用所選模型預(yù)測目標(biāo)變量。?一文徹底掌握自動機器學(xué)習(xí)AutoML:MLBox
  6. AutoWEKA[6] (2013): Auto-WEKA 使用全自動方法并利用貝葉斯優(yōu)化來選擇機器學(xué)習(xí)算法并設(shè)置其超參數(shù)。換句話說,它有助于自動為給定的分類或回歸任務(wù)應(yīng)用最佳參數(shù)設(shè)置,以獲得一個好的模型。
  7. Auto-PyTorch[7] (2019):該框架由Freiburg大學(xué)和Hannover大學(xué)的 AutoML 小組開發(fā)。它基于 PyTorch 深度學(xué)習(xí)框架,支持分類和回歸的表格數(shù)據(jù)。它還可以應(yīng)用于圖像數(shù)據(jù)進行分類。
  8. Autokeras[8] (2017):它是一個用于深度學(xué)習(xí)自動化任務(wù)的開源庫。它可以幫助獲得用于分類和回歸任務(wù)的良好神經(jīng)網(wǎng)絡(luò)模型。AutoML Toolkit 建立在由德克薩斯 A&M 大學(xué)的 Datalab 團隊開發(fā)的深度學(xué)習(xí)框架 Keras 之上。由于 Auto-Keras 遵循經(jīng)典的 Scikit-Learn API 設(shè)計,因此語法相似且易于使用。
  9. MLJAR[9] (2019) :該工具包與表格數(shù)據(jù)集一起使用,并在 AutoML 訓(xùn)練的每個步驟中為用戶提供透明度。有關(guān)訓(xùn)練模型的所有信息都保存在硬盤驅(qū)動器中,并且可供 ML 用戶訪問。

AutoML適用場景

AutoML 在結(jié)構(gòu)化數(shù)據(jù)上表現(xiàn)良好,即當(dāng)列名清晰標(biāo)記且數(shù)據(jù)格式正確時。由于這些工具執(zhí)行插補和歸一化,它們可以輕松處理數(shù)據(jù)集中的缺失值或偏度。

當(dāng)我們需要對模型進行快速評估時,AutoML 的表現(xiàn)非常出色。與較大的數(shù)據(jù)集相比,使用 AutoML 顯然可以更快地訓(xùn)練中小型數(shù)據(jù)集。在更大和更復(fù)雜的數(shù)據(jù)集上選擇使用 AutoML 顯得不是那么明智,因為它可能會因為使用更多資源而變得昂貴,或者由于超參數(shù)調(diào)整和模型優(yōu)化的多次實驗而可能非常緩慢。所以大家按需使用。

AutoGluon 基礎(chǔ)

到這里,小猴子將和大家一起探索 AutoGluon 自動執(zhí)行機器學(xué)習(xí)任務(wù)的不同功能。即使用 AutoGluon 以及它支持的其他預(yù)測類別來實現(xiàn)表格數(shù)據(jù)預(yù)測。我們將搞明白在使用 AutoGluon 時如何為特定機器學(xué)習(xí)任務(wù)獲得最合適的模型。

AutoGluon有如下優(yōu)勢:

  • 簡單性:只需幾行代碼即可實現(xiàn)分類和回歸模型的訓(xùn)練和部署。
  • 魯棒性:無需進行任何特征工程或數(shù)據(jù)操作,用戶應(yīng)該能夠使用原始數(shù)據(jù)。
  • 時間可控:在指定的時間約束下獲得最佳模型。
  • 容錯性:即使中斷也可以恢復(fù)訓(xùn)練,用戶可以檢查所有中間步驟。

AutoGluon 繼為機器學(xué)習(xí)的初學(xué)者也是為專家而設(shè)計。該工具涵蓋了深度學(xué)習(xí)、自動堆棧集成以及文本、圖像和表格數(shù)據(jù)的實際應(yīng)用程序。

安裝和使用

官方支持在 Linux 、 Mac 和Windows操作系統(tǒng)安裝。需要注意的是,在linux系統(tǒng)上使用較為方案,在Mac 和Windows上安裝或多或少有些許麻煩,需要注意的事項較多,建議根據(jù)官方教程進行安裝,有關(guān) AutoGluon 及其不同版本的安裝的所有詳細信息都在這里AutoGluon官方安裝教程 [10]。

pip3 install -U pip
pip3 install -U setuptools wheel

# CPU版本的pytorch占用空間更小
# 請參閱pytorch文檔中的安裝說明 --> https://pytorch.org/get-started/locally/
pip3 install torch==1.10.1+cpu -f https://download.pytorch.org/whl/cpu/torch_stable.html

pip3 install autogluon

AutoGluon 可用于以下類別:

  1. 結(jié)構(gòu)化數(shù)據(jù)預(yù)測
  2. 圖像預(yù)測
  3. 物體檢測
  4. 文本預(yù)測
  5. 多模態(tài)預(yù)測

AutoGluon 分類實例

將使用 Stroke 預(yù)測數(shù)據(jù)集。你可以從Kaggle[11]下載數(shù)據(jù)集。

數(shù)據(jù)準備

from pandas as pd
#拆分數(shù)據(jù)集
from sklearn.model_selection import train_test_split 
#處理表格數(shù)據(jù)并訓(xùn)練模型
from autogluon.tabular import TabularDataset, TabularPredictor 
df=pd.read_csv('/content/healthcare-dataset-stroke-data.csv')
# 分成訓(xùn)練集和測試集
df_train,df_test=train_test_split(df,test_size=0.33,random_state=1
df_train.shape, df_test.shape

((3423, 12), (1687, 12))

df.head()

從新創(chuàng)建的測試集中刪除目標(biāo)結(jié)果列。

test_data=df_test.drop(['stroke'],axis=1
test_data.head()

模型訓(xùn)練

現(xiàn)在,我們構(gòu)建一個分類器來訓(xùn)練具有給定條件的個體是否可能有中風(fēng)的風(fēng)險。指定“stroke” 目標(biāo)列,并在訓(xùn)練數(shù)據(jù)集上訓(xùn)練分類器。參數(shù)(可選)'verbosity=2' 將顯示預(yù)測器為達到最佳模型而采取的所有步驟,而 'presets='best_qualit'' 將確保從訓(xùn)練的模型中選擇最佳模型。官方文檔中還提到了其他附加參數(shù),可用于微調(diào)模型。

predictor = TabularPredictor(label ='stroke')
predictor.fit(train_data = df_train, 
              verbosity = 2,
              presets='best_quality')

該步驟將打印出很長的日志,我們截取其中一部分,觀察得到,即使我們沒有指定問題的類型,AutoGluon 也正確理解這是一個基于結(jié)果列中兩個唯一標(biāo)簽'0'和'1'的二元分類問題。

此外,還可以看到 AutoGluon 恰當(dāng)?shù)貫榇朔诸惾蝿?wù)選擇了'accuracy'指標(biāo)。

最佳模型

分類器訓(xùn)練完成后,可以使用以下命令打印它訓(xùn)練過的模型的摘要。

predictor.fit_summary()

本次示例中,AutoGluon 訓(xùn)練了 24 個模型,但我們更感興趣的是找出 AutoGluon 選擇的最佳模型。而我們只需使用 leaderboard() 命令即能查看到按順序排列訓(xùn)練好的模型。

predictor.leaderboard(
        df_train,silent=True)

特征重要性

是否能夠輸出特征重要性,也是大家非常關(guān)注的一點。在AutoGluon中,也是輕松實現(xiàn)。

predictor.feature_importance(
data=df_train)

在這里我們可以看到,它已將年齡和 bmi 確定為預(yù)測結(jié)果的最重要因素。

模型預(yù)測

接下來,將測試數(shù)據(jù)提供給分類器進行預(yù)測,可以將預(yù)測結(jié)果存儲在 DataFrame 中。

y_pred = predictor.predict(test_data) 
y_pred=pd.DataFrame(y_pred,columns=['stroke']) 
y_pred #打印DataFrame

模型評估

要了解評估指標(biāo)'accuracy',讓我們打印它的詳細信息。

predictor.evaluate(df_test)

從結(jié)果看,在 AutoGluon 中進行了數(shù)據(jù)預(yù)處理和特征工程,模型訓(xùn)練過程也包括了交叉驗證。因此,我們只用兩行代碼就得到了 95% 準確率的訓(xùn)練分類器(用于分類器訓(xùn)練和預(yù)測)。如果它是一個傳統(tǒng)的 ML 模型,我們將花費很長時間來完成整個過程,包括 EDA、數(shù)據(jù)清理以及設(shè)置多個模型的編碼。由此可見,AutoGluon 讓這一切變得非常簡單。

AutoGluon 回歸實例

我們嘗試另一個示例來探索 AutoGluon 如何處理回歸問題。這里我們將使用 sklearn 數(shù)據(jù)集庫中的“波士頓價格”數(shù)據(jù)集。本次執(zhí)行步驟與分類類似。

數(shù)據(jù)準備

#導(dǎo)入數(shù)據(jù)集
import numpy as np 
import pandas as pd 
from sklearn.datasets import load_boston 
boston= load_boston() 
boston.keys() 
print(boston.DESCR)#使用此命令了解數(shù)據(jù)集的更多信息
df=pd.DataFrame(data=boston.data,columns=boston.feature_names) 
#將價格列添加到數(shù)據(jù)框
df['PRICE'] = boston.target 
df.head()

拆分數(shù)據(jù)集

# 分成訓(xùn)練測試集
df_train,df_test = train_test_split(df, test_size=0.33, random_state=1
df_train.shape,df_test.shape
((339, 14), (167, 14))

從測試數(shù)據(jù)集中刪除目標(biāo)列。

test_data=df_test.drop(['PRICE'],axis=1
test_data.head()

模型訓(xùn)練

設(shè)置預(yù)測器(回歸器)

predictor= TabularPredictor(label ='PRICE')
predictor.fit(train_data = df_train, 
              verbosity = 2,
              presets='best_quality'
predictor.leaderboard(df_train,silent=True)

模型預(yù)測

# 進行預(yù)測
y_pred = predictor.predict(test_data)

本例中,AutoGluon 也根據(jù)列的dtype=float和多個唯一值的存在正確地將問題類型識別為回歸。并且它還恰當(dāng)?shù)剡x擇了評估指標(biāo) 'root_mean_squared_error'

對于回歸問題,AutoGluon 訓(xùn)練了 11 個模型并推薦kNN (KNeighborsDist_BAG_L1)作為最佳模型,其次是 XGBoost (XGBoost_BAG_L1)

預(yù)測器的語法在分類和回歸問題中是相同的。從結(jié)果看,AutoGluon TabularPrediction 任務(wù)在不同的數(shù)據(jù)集上運行良好。為了簡化演示,我們選擇了較小的數(shù)據(jù)集,你可以試試它在使用更大的數(shù)據(jù)集時的表現(xiàn)會有怎么的驚喜。

AutoGluon 中的其他用例

最后,簡要介紹一下 AutoGluon 中的其他可用選項。

  1. 圖像預(yù)測:與結(jié)構(gòu)化數(shù)據(jù)預(yù)測一樣,AutoGluon 使用簡單的 'fit()' 命令根據(jù)圖像內(nèi)容對圖像進行分類,從而自動生成高質(zhì)量的圖像分類模型。
  2. 目標(biāo)檢測:目標(biāo)檢測是計算機視覺中的一項重要任務(wù),涉及檢測和定位圖像中的目標(biāo)的過程。AutoGluon 也提供了調(diào)用簡單的'fit()' 命令的選項,該命令將自動生成高質(zhì)量的目標(biāo)檢測模型,用于識別圖像中目標(biāo)的存在和位置。
  3. 文本預(yù)測:同樣對于監(jiān)督學(xué)習(xí)中的文本數(shù)據(jù)預(yù)測,我們可以使用一個簡單的 'fit()' 命令來自動生成高質(zhì)量的文本預(yù)測模型。數(shù)據(jù)中的每個訓(xùn)練示例可能是一個句子、一個短段落、文本中存在的一些附加數(shù)字/分類特征。一次調(diào)用 'predictor.fit()' 命令可以在給定的文本數(shù)據(jù)集上訓(xùn)練高度準確的神經(jīng)網(wǎng)絡(luò),其中用于預(yù)測的目標(biāo)值或標(biāo)簽可能是連續(xù)值或單個類別。盡管 TextPredictor 僅設(shè)計用于分類和回歸任務(wù),但如果數(shù)據(jù)被正確格式化為結(jié)構(gòu)化數(shù)據(jù)表,它也可以直接用于其他 NLP 任務(wù)。TextPredictor 僅使用 Transformer 神經(jīng)網(wǎng)絡(luò)模型。這些通過從BERT[12]、ALBERT[13]ELECTRA[14]等預(yù)訓(xùn)練 NLP 模型列表中遷移學(xué)習(xí)來擬合提供的數(shù)據(jù)。它還允許對包含文本、數(shù)字和分類列的多模態(tài)數(shù)據(jù)表以及可以通過超參數(shù)優(yōu)化 (HPO) 自動調(diào)整的神經(jīng)網(wǎng)絡(luò)超參數(shù)進行訓(xùn)練。
  4. 多模態(tài)預(yù)測:由文本、數(shù)字和分類列組成的多模態(tài)表格數(shù)據(jù)也可以由 AutoGluon 處理。原始文本數(shù)據(jù)被視為 AutoGluon 中數(shù)據(jù)表的一級子項。它可以幫助你訓(xùn)練和匹配各種模型,包括 LightGBM、RF、CatBoost 等經(jīng)典表格模型以及基于預(yù)訓(xùn)練 NLP 模型的多模式網(wǎng)絡(luò)。

寫在最后

從穩(wěn)重我們可以看到, AutoML 框架在構(gòu)建機器學(xué)習(xí)管道上非常簡單而高效。它可用于減少創(chuàng)建可用于生產(chǎn)的 ML 模型所需的時間,并且具有顯著的簡單性和效率。這加快了整個 ML 流程,從而為數(shù)據(jù)科學(xué)家騰出時間,更加專注于尋找現(xiàn)實問題的解決方案。

使用 AutoML 的最大好處可以歸因于它能夠自主地在各種數(shù)據(jù)集上訓(xùn)練和測試多種現(xiàn)有機器學(xué)習(xí)算法。此外,需要注意的是,使用 AutoML 并不會消除對整個建模過程的基本信息的理解需要,包括模型訓(xùn)練、數(shù)據(jù)基本信息和期望結(jié)果等。因此,AutoML 的成功可能取決于它在多長時間內(nèi)被接受、采用以及它為某個行業(yè)帶來的切實利益。

參考資料

[1]

AutoGluon: https://auto.gluon.ai/stable/index.html

[2]

TPOT: http://epistasislab.github.io/tpot/

[3]

H2O AutoML: https://www.h2o.ai/products/h2o-automl/

[4]

Auto-sklearn: https://automl.github.io/auto-sklearn/master/

[5]

MLBox: https://mlbox.readthedocs.io/en/latest/

[6]

AutoWEKA: https://www.cs.ubc.ca/labs/beta/Projects/autoweka/

[7]

Auto-PyTorch: https://github.com/automl/Auto-PyTorch

[8]

Autokeras: https://autokeras.com/

[9]

MLJAR: https://mljar.com/automl/

[10]

AutoGluon官方安裝教程 : https://auto.gluon.ai/stable/install.html

[11]

Stroke數(shù)據(jù)集: https://www.kaggle.com/fedesoriano/stroke-prediction-dataset

[12]

BERT: https://arxiv.org/pdf/1810.04805.pdf

[13]

ALBERT: https://arxiv.org/pdf/1909.11942.pdf

[14]

ELECTRA: https://openreview.net/pdf?id=r1xMH1BtvB

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ModelTrainer:基于AutoGluon的多因子合成AI量化通用流程
開發(fā)者新聞 | 在 AutoML 中提升最先進的技術(shù),現(xiàn)在使用 NVIDIA GPU 和 RAPID...
神器在手!python自動機器學(xué)習(xí)庫auto
iLearnPlus:核酸和蛋白質(zhì)序列分析、預(yù)測模型構(gòu)建和數(shù)據(jù)可視化的開源自動化機器學(xué)習(xí)平臺
干貨 :機器學(xué)習(xí)模型應(yīng)用方法綜述
亞馬遜推出用于DL的開源庫AutoGluon,“深度學(xué)習(xí)”時代來臨?
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服