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

科技分類資訊推薦

重磅!宇樹科技C輪融資終於落地,投資人終於浮出水面,央企中國移動、騰訊、阿里等互聯網巨頭成功上車,具體估值仍然成謎 - 天天要聞

重磅!宇樹科技C輪融資終於落地,投資人終於浮出水面,央企中國移動、騰訊、阿里等互聯網巨頭成功上車,具體估值仍然成謎

金融界6月19日消息 備受關注的宇樹科技C輪融資終於落地,投資人紛紛浮出水面,中國移動、騰訊、阿里、螞蟻、吉利等巨頭集體現身。19日,市場消息稱宇樹科技已完成了始於去年年底的C輪融資交割,由中國移動旗下基金、騰訊、錦秋、阿里、螞蟻、吉利資本共同領投,絕大部分老股東跟投。對此,宇樹科技方面表示,「我們最近確實...
小紅書「種草」首次登上國際營銷界頂級舞台 - 天天要聞

小紅書「種草」首次登上國際營銷界頂級舞台

6月18日,在法國戛納國際創意節的聚光燈下,受邀參會的小紅書CMO之恆發表主旨演講,首次在國際頂級舞台上系統闡釋了小紅書獨特的社區生態,以及從社區中原生而出的營銷新範式「種草」,並對種草的價值、底層邏輯、成功因素等進行了分享。之恆表示,有用戶將小紅書視為「電子閨蜜」和「情感樹洞」,在小紅書上尋找與自己愛好...
大摩北美IT硬件數據追蹤:App Store 仍跑贏市場預期,甲骨文引爆雲計算資本支出 - 天天要聞

大摩北美IT硬件數據追蹤:App Store 仍跑贏市場預期,甲骨文引爆雲計算資本支出

智通財經APP獲悉,大摩的追蹤數據顯示,App Store 年初至今凈收入同比增長 12.5%,超出該行對第二季度的預測 150 個基點,並相當於服務業務超預期 40 個基點。大摩將2025年全球雲資本支出預測上調至4060億美元(同比增長43%),較1個月前預測提升4個百分點(新增140億美元)。增長由甲骨文(ORCL.US)和阿里巴巴的上調驅動。...
寶潔失速背後,消費品正在被碎片化重構 - 天天要聞

寶潔失速背後,消費品正在被碎片化重構

本文來自微信公眾號:刀姐doris,作者:刀法智庫,原文標題:《寶潔失速的背後:加劇分化的時代,大品牌服務不了所有人》,頭圖來自:AI生成寶潔宣布裁員7000人,外表看起來是大集團走下坡路,本質上是大品牌服務不了所有人。前段時間,寶潔公司宣布,計劃未來兩年在全球裁員 7000 人,甚至要退出某些品類和產品,或出售旗...
TDK 收購智能眼鏡軟硬件開發商 SoftEye,擴大 AI 生態系統業務 - 天天要聞

TDK 收購智能眼鏡軟硬件開發商 SoftEye,擴大 AI 生態系統業務

IT之家 6 月 19 日消息,日本 TDK(東電化)今日宣布收購美國智能眼鏡軟硬件系統解決方案開發商 SoftEye,進一步擴大其 AI 生態系統業務。SoftEye 從事智能眼鏡定製芯片、攝像機、軟件和算法的開發工作,具備低功耗眼動追蹤和物體識別方面的技術,交易完成後將成為 TDK 的全資子公司。TDK 通過此次收購將能夠以更快的速度交...
消息稱廣汽埃安即將發佈 B 端專用品牌,明日對外公布信息 - 天天要聞

消息稱廣汽埃安即將發佈 B 端專用品牌,明日對外公布信息

IT之家 6 月 19 日消息,藍鯨汽車今日報道稱,從廣汽方面獲悉,廣汽旗下自主品牌埃安即將發佈 B 端專用品牌。有內部知情人士對該媒體稱,明天(6 月 20 日)會有對外信息發佈。報道還提到,繼去年發佈全新「AION」字母標並推出 3 款 C 端全球戰略車型後,廣汽埃安 C 端銷量佔比有所提升,下半年即將啟動 B / C 端品牌全面分...
阿里雲將在韓國啟用第二座數據中心,加速海外布局 - 天天要聞

阿里雲將在韓國啟用第二座數據中心,加速海外布局

新京報貝殼財經訊(記者羅亦丹)6月19日,阿里雲宣布將於本月底在韓國啟用第二座數據中心,來滿足生成式AI快速發展帶來的需求增長。這是今年以來,阿里雲繼墨西哥、泰國之後在全球落地的又一新節點。屆時阿里雲全球布局將擴展至29個地域、88個可用區