機器學習:AutoGluon介紹及示例

2019年12月14日18:50:09 科技 1118

介紹AutoGluon

AutoGluon是一個新的開源 AutoML庫,可針對涉及圖像,文本和表格數據集的實際應用,自動進行深度學習(DL)和機器學習(ML)。無論您是機器學習新手還是經驗豐富的從業人員,AutoGluon都能簡化您的工作流程。使用AutoGluon,您可以僅使用幾行Python代碼來開發和完善深度學習模型。

機器學習:AutoGluon介紹及示例 - 天天要聞

主要特點

從歷史上看,要創建機器學習模型,需要大量的背景知識,經驗和人力。數據準備,特徵工程,驗證拆分,缺失值處理和模型選擇只是機器學習應用程序必須解決的許多任務中的一部分。一個特別困難的任務是選擇超參數。

超參數代表用戶在構建模型時必須做出的許多選擇,例如數據處理步驟,神經網路體系結構以及訓練期間使用的優化程序。每個超參數都以不透明的方式影響機器學習模型的預測性能,而越強大的模型(如深度神經網路)需要調優的超參數越多。輕微的超參數修改可能會顯著地改變模型的質量。由於通常不清楚如何做出這些決策,開發人員通常手動調整他們的ML管道的各個方面,這可能需要多次迭代和艱苦的人力工作。
AutoGluon將前面提到的所有任務都自動化,從而創造了一種真正無需手動的體驗。AutoGluon將利用可用的計算資源來找到最強的ML方法。
AutoGluon使您能夠自動實現圖像分類、對象檢測、文本分類等監督學習任務。每個任務的超參數通過貝葉斯優化、超帶和強化學習等優化演算法自動選擇。使用AutoGluon,您不必熟悉底層模型,因為所有超參數都將自動調優到默認範圍內,這些默認範圍對於特定的任務和模型來說性能良好。
對於專業的ML從業人員,AutoGluon允許輕鬆地自定義此過程。例如,您可以為某些超參數指定要值範圍,也可以使用AutoGluon自動調整自定義模型的各個方面。如果您可以訪問多台機器,AutoGluon可以很容易地將其計算分布到這些機器上,以便更快地返回經過訓練的模型。

AutoGluon示例

安裝

# CUDA 10.0 and a GPU for object detection is recommended
# We install MXNet to utilize deep learning models
pip install --upgrade mxnet-cu100
pip install autogluon

機器學習:AutoGluon介紹及示例 - 天天要聞

對象檢測示例

我們以對象檢測的任務為例來演示AutoGluon的簡單介面。在對象檢測中,不僅要識別圖像中的對象,而且要用邊界框定位它們。

我們將使用AutoGluon在一個用於演示目的(以確保快速運行時)的數據集上訓練一個對象檢測器。數據集是使用VOC數據集的摩托車類別生成的。在下面的Python代碼中,我們首先導入AutoGluon,將將對象檢測指定為任務,將數據下載到我們的機器上,最後將數據載入到Python中:

import autogluon as ag
from autogluon import ObjectDetection as task
url = 'https://autogluon.s3.amazonaws.com/datasets/tiny_motorbike.zip'
data_dir = ag.unzip(ag.download(url))
dataset = task.Dataset(data_dir, classes=('motorbike',))

機器學習:AutoGluon介紹及示例 - 天天要聞

接下來,我們可以通過調用fit()函數來使用AutoGluon訓練一個檢測器模型:

detector = task.fit(dataset)

在這個對fit()的調用中,AutoGluon在不同的網路配置和優化超參數下訓練許多模型,選擇其中最好的作為最終返回的檢測器。在沒有任何用戶輸入的情況下,對fit()的調用還自動利用了最新的深度學習技術,例如預訓練的YOLOv3網路的遷移學習。我們可以使用predict()方法在新圖像上測試訓練過的檢測器:

url = 'https://autogluon.s3.amazonaws.com/images/object_detection_example.png'
filename = ag.download(url)
index, probabilities, locations = detector.predict(filename)

機器學習:AutoGluon介紹及示例 - 天天要聞

機器學習:AutoGluon介紹及示例 - 天天要聞

AutoGluon的predict函數自動載入測試圖像,並輸出每個被檢測對象的預測對象類別、類概率和邊界框位置。將自動生成如上所示的可視化圖像。

表格數據示例

最常見的數據形式是表格數據集。它們由結構化數據組成,通常位於CSV文件或資料庫中。在表格數據集中,每一列代表某個變數的測量值(也稱為特徵),每一行代表單獨的數據點。AutoGluon可用於訓練基於同一行中的其他列來預測特定列值的模型,並且能夠泛化到以前未見過的實例。
我們將要訓練的數據集是成人收入分類數據集。該數據集包含約48,000個人的信息,包括數字特徵(例如年齡)和分類特徵(例如職業)。該數據集通常用於預測個人收入。在此示例中,我們將預測一個人的年收入是否超過50,000美元。我們將使用80%的數據來訓練,並使用20%的數據來測試生成的AutoGluon預測器。使用AutoGluon,無需指定驗證數據。AutoGluon將使用提供的訓練數據最優地分配驗證集。
舉例來說,在Python代碼中,首先導入AutoGluon並指定一個任務,在這個任務中,我們將使用TabularPrediction處理表格數據。然後我們從S3上的CSV文件載入數據集。只需調用一次fit(), AutoGluon就可以處理數據並訓練一個稱為「預測器」的ML模型集合,該模型能夠預測數據中的「類」變數。它將使用其他列作為預測特徵,如個人的年齡、職業和教育程度。這個模型的集合包括ML中經過測試的演算法,如LightGBM、CatBoost和深度神經網路,它們始終優於邏輯回歸等更傳統的ML模型。
注意,我們不需要進行任何數據處理,特徵工程設計,甚至不需要聲明預測問題的類型。AutoGluon自動準備數據並推斷我們的問題是回歸還是分類(包括它是二元還是多元)。經過訓練的預測器模型將保存到task.fit()調用中指定的位置。

from autogluon import TabularPrediction as task
train_path = 'https://autogluon.s3.amazonaws.com/datasets/AdultIncomeBinaryClassification/train_data.csv'
train_data = task.Dataset(file_path=train_path)
predictor = task.fit(train_data, label='class', output_directory='ag-example-out/')

機器學習:AutoGluon介紹及示例 - 天天要聞

現在我們的預測器模型已經訓練完畢,我們將對以前看不見的測試數據進行預測。我們可以直接使用返回的預測變數,也可以從指定的輸出目錄中載入它。

predictor = task.load('ag-example-out/')
test_path = 'https://autogluon.s3.amazonaws.com/datasets/AdultIncomeBinaryClassification/test_data.csv'
test_data = task.Dataset(file_path=test_path)
y_test = test_data['class']
test_data_nolabel = test_data.drop(labels=['class'],axis=1)
y_pred = predictor.predict(test_data_nolabel)
y_pred_proba = predictor.predict_proba(test_data_nolabel)
print(list(y_pred[:5]))
print(list(y_pred_proba[:5]))

機器學習:AutoGluon介紹及示例 - 天天要聞

['<= 50K','<= 50K','> 50K','<= 50K','<= 50K']
[0.077471,0.0093894,0.973065,0.0021249,0.001387]
現在我們來看一下模型排行榜:

leaderboard = predictor.leaderboard(test_data)

機器學習:AutoGluon介紹及示例 - 天天要聞

AutoGluon的模型排行榜

該排行榜顯示了AutoGluon訓練的每個模型,它們在測試和驗證數據上的得分以及訓練時間(以秒為單位)。可以看出,weighted_ensemble在驗證和測試集上表現得最好,達到了87.76%的準確性。

最後

在本文中,我們介紹了AutoGluon,它旨在為ML專家和新手提供最佳的機器學習和深度學習體驗。

科技分類資訊推薦

機器狗Go1存在後門安全漏洞,宇樹科技回應;OpenAI重大變化!任命了一位新CEO,奧特曼讓出部分職權丨AI周報 - 天天要聞

機器狗Go1存在後門安全漏洞,宇樹科技回應;OpenAI重大變化!任命了一位新CEO,奧特曼讓出部分職權丨AI周報

全球AI產業周報為你精選過去一周(5.3-5.9)最值得關注的AI新聞和國內外熱門AI投融資事件,幫助大家及時了解全球AI市場動向。本周AI熱點資訊國內大事宇樹科技回應機器狗Go1存在後門漏洞記者了解到,針對此前一些博主聲稱「宇樹科技的Go1機器狗存在後門漏洞」的情況,宇樹科技公布了調查結果。宇樹科技表示,黑客非法獲取了...
2025一季度算力領域增長最快的10家公司 - 天天要聞

2025一季度算力領域增長最快的10家公司

近日,據2025年5月相關消息,一季度算力增長較快的公司有縱橫通信、邁信林、鴻博股份、恆潤股份、康盛股份、歌華有線、全志科技、協創數據、青雲科技-U、潤建股份等。
「轉人工」咋就這麼難? - 天天要聞

「轉人工」咋就這麼難?

真正的智能化,應該是技術與人性化服務的有機結合,任何時候都不能偏離「以人為本」的初衷。客服的核心是「服務」,而非「應付」。「您好,有什麼可以幫您?」「轉人工服務。」「人工座席繁忙,請稍後再撥……」轉人工,轉人工,轉人工……你是否也常被智能客
劉強東繼外賣後又入局計程車,註冊新商標 - 天天要聞

劉強東繼外賣後又入局計程車,註冊新商標

5月6日,天眼查財產線索信息顯示,京東集團旗下子公司北京京東叄佰陸拾度電子商務有限公司,申請註冊多枚「Joyrobotaxi」商標,國際分類涵蓋運輸工具、科學儀器、運輸貯藏等核心領域,當前商標狀態均為等待實質審查。這一動作被業界普遍解讀為,
周單品銷量榜變天,小米、華為真長國人志氣 - 天天要聞

周單品銷量榜變天,小米、華為真長國人志氣

雖然現在蘋果在國內的銷量排名第六,但論單品銷量誰也不是iPhone 16系列的對手。每次周單品暢銷榜發布,排名前三的機型都被iPhone 16系列霸佔。面對這種情況真是讓人無可奈何。但是W18周這種情況沒有再出來,我們先來看一下榜單再給大家
蘋果宣布降價!最高便宜超1440元 - 天天要聞

蘋果宣布降價!最高便宜超1440元

《科創板日報》5月10日訊,蘋果向渠道商下發了調價通知,這也是蘋果首次在周六宣布調價。蘋果iPhone 16 Pro Max 所有容量版本降價160美元,(摺合人民幣1313.06元);而 iPhone 16 Pro的128GB版本降價176美元,(摺合人民幣1445.27元),其他版本同樣降價160美元。今年的「6·18」活動將於5月13日開始,因此有渠道
2024年A股年報披露上市粵企韌性凸顯,研發投入成增長新引擎 - 天天要聞

2024年A股年報披露上市粵企韌性凸顯,研發投入成增長新引擎

2024年A股上市公司年報披露日前落下帷幕,面對複雜多變的國內外環境,A股上市公司營收與凈利潤增速小幅回落,但盈利面有所優化:74.55%的公司實現盈利,63.78%的公司凈利潤同比正增長,盈利企業數量與利潤增長比例均較上年提升。這一表現折射出中國經濟的韌性——企業通過降本增效、技術創新等方式改善盈利情況。作為上市公...
日本松下集團宣布將全球裁員1萬人;蘋果首款摺疊屏iPhone關鍵部件已送樣|Do早報 - 天天要聞

日本松下集團宣布將全球裁員1萬人;蘋果首款摺疊屏iPhone關鍵部件已送樣|Do早報

【供應鏈公司:蘋果首款摺疊屏iPhone關鍵部件已送樣】有媒體從供應鏈公司人士處獲悉,蘋果給供應商提供的出貨目標指引為2026年下半年推出首款摺疊屏手機,是一款「大摺疊屏iPhone」。該供應鏈公司是蘋果手機的多個零部件供應商。該供應鏈公司表示,希望進入摺疊屏iPhone的關鍵部件供應商名單,近期相關部件已送樣測試;但要...