機器學習: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專家和新手提供最佳的機器學習和深度學習體驗。

科技分類資訊推薦

模擬駕駛、真機飛行、火箭升空、戶外挑戰…今年暑假,一起去航空飛行造夢! - 天天要聞

模擬駕駛、真機飛行、火箭升空、戶外挑戰…今年暑假,一起去航空飛行造夢!

當火箭的尾焰劃破夜空星辰與大海的夢想再次照亮了我們的征途·中國航天2024年交出一張張碩果累累的成績單全年累計發射運載火箭68次發射次數創歷史新高杭州日報航空造夢夏令營2024年同樣也見證了近千名孩子逐夢寰宇的夢想實現做了六年的經典航空線路收穫了營員的滿滿好評2024年「一箭11星」的最強發射再次印證了中國航天的強...
8.3英寸起,「獨樹一幟」的小尺寸新機 - 天天要聞

8.3英寸起,「獨樹一幟」的小尺寸新機

小屏手機潮暫時告一段落,小尺寸平板的舞台已經搭好了。目前,聯想已推出拯救者 Y700 四代,接下來紅魔、小米、華為也有新機要發。再算上蘋果的 iPad mini(A17 Pro),今年的小平板選擇會比往年多不少,接下來給大夥簡單盤點一下。
75萬採購的路由器,網上只賣299?高校回應 - 天天要聞

75萬採購的路由器,網上只賣299?高校回應

5月11日,重慶三峽學院發佈情況說明:近日我校「防火牆及DNS設備採購項目中標結果」引髮網民質疑,學校高度重視,成立專項工作組開展核實。因工作需要,我校需購買網絡防火牆及DNS設備,在招標文書中明確提出了需滿足的技術標準。2025年5月6日該採購項目完成競爭性談判,擬中標供應商為豐都縣洪正商貿有限公司。5月9日我校...
微星MPG 272URX QD-OLED顯示器評測:絲般順滑的240Hz量子點屏幕 - 天天要聞

微星MPG 272URX QD-OLED顯示器評測:絲般順滑的240Hz量子點屏幕

現在顯示器市場的競爭特別激烈,各大廠商都在拼參數和品質,特別是在高端顯示器領域,各大品牌不斷推出令人驚嘆的產品,用來滿足玩家和專業用戶的需求。作為知名硬件廠商之一,微星近年來在顯示器領域表現是很搶眼的。今天和大家分享的是微星MPG 272URX QD-OLED顯示器的使用體驗。這款產品不僅搭載了QD-OLED技術,還融合了...
華為缺席、小米受挫,4月國產新能源降價潮邁入拐點 - 天天要聞

華為缺席、小米受挫,4月國產新能源降價潮邁入拐點

文 | 數讀智車在最新的微博中,雷軍直言,「過去一個多月,是創辦小米以來最艱難的一段時間。」這也是小米最艱難的時刻。乃至整個國產新能源,都進入了一段冷靜期。2025年的北京車展、上海車展,比往年更安靜了一些。車主站上特斯拉車頂、周鴻禕站上國產車車頂……這些往常年引起全網轟動的戲碼,並沒有上演。這似乎是一個...
億緯鋰能商用車電池科技日:8款開源電池新品全面覆蓋商用市場 - 天天要聞

億緯鋰能商用車電池科技日:8款開源電池新品全面覆蓋商用市場

【環球網科技報道 記者 張陽】2025年5月9日,億緯鋰能首屆商用車電池科技日暨開源電池新品發佈會在廣東惠州舉辦。會上,億緯鋰能重點闡述了在新能源商用車領域的技術積澱與戰略布局,並且集中發佈了8款開源電池產品,滿足從物流車的微面、輕卡到重卡的短倒、幹線再到客車和工程機械的全場景工況需求。億緯鋰能動力營銷中心...
綠洲文娛落子鄭州!沉浸式劇本殺旗艦店重構娛樂新場景 - 天天要聞

綠洲文娛落子鄭州!沉浸式劇本殺旗艦店重構娛樂新場景

2025年5月,中原沉浸娛樂市場迎來里程碑事件——國內知名文娛品牌綠洲文娛宣布其全國戰略布局的重要落子「綠洲實景沉浸式演繹劇本殺推理館」正式進駐鄭州國貿360商圈。這座斥資打造的千平方米娛樂綜合體以劇場級配置重構沉浸式體驗邊界,為中原玩家開