成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

AutoML領域開源開發利器AutoGloon之實戰演練 原創

發布于 2024-7-17 08:09
瀏覽
0收藏

通過本文,你將了解如何借助開源庫AutoGloon成功勝出Kaggle競賽并學習擊敗其他對手的技巧。此外,你還會了解到基于AutoGloon框架僅需4行代碼足可以擊敗99%的數據科學家。

引言

在兩項受歡迎的Kaggle比賽中,AutoGloon僅在對原始數據進行了4小時的訓練后就擊敗了99%的參賽數據科學家(AutoGloon團隊,《AutoGloon:將AutoML用于文本、圖像和表格數據》,2020年)。

上面這句話摘自AutoGloon的研究論文(https://arxiv.org/abs/2003.06505),完整地概括了我們本文將要探索的內容:一個機器學習框架,它以最少的編碼實現了令人印象深刻的性能。你只需要四行代碼就可以建立一個完整的ML管道;否則,這項任務可能需要數小時。是的,只有四行代碼!你不妨先一睹為快:

from autogluon.tabular import TabularDataset, TabularPredictor
train_data = TabularDataset('train.csv')
predictor = TabularPredictor(label='Target').fit(train_data, 
presets='best_quality')
predictions = predictor.predict(train_data)

這四行代碼通過自動識別每列的數據類型完成數據預處理,然后通過找到有用的列組合來實現特征工程,再通過組合來進行模型訓練,以便在給定時間內識別出性能最好的模型。請注意,在此處代碼中,我甚至沒有指定機器學習任務的類型(回歸/分類),而是由AutoGloon自動進行標簽檢查并自行確定任務。

我是在提倡這種算法嗎?也不一定。雖然我很欣賞AutoGloon的強大功能,但我更喜歡那些不會將數據科學簡化為Kaggle比賽中的準確性得分的解決方案。然而,隨著這些模型越來越受歡迎和廣泛采用,了解它們是如何工作的,它們背后的數學和代碼,以及如何利用或超越它們變得非常重要。

1.AutoGloon概述

AutoGloon是一個由亞馬遜網絡服務(AWS)創建的開源機器學習庫。它旨在為你處理整個ML過程;具體來說,這包括從準備數據到選擇最佳模型并調整其設置的整個過程。

AutoGloon庫將簡潔性與一流的性能相結合。它采用了集成學習和自動超參數調整等先進技術,以確保你創建的模型高度準確。這意味著,你可以開發強大的機器學習解決方案,而不會陷入技術細節的泥潭。

該庫負責數據預處理、特征選擇、模型訓練和評估,這大大減少了建立穩健的機器學習模型所需的時間和精力。此外,AutoGloon擴展性良好,適用于小型項目和大型復雜數據集。

對于表格數據,AutoGloon既可以處理分類任務(將數據分類到不同的組中),也可以處理回歸任務(預測連續結果)。它還支持文本數據,使其適用于情感分析或主題分類等任務。此外,它還可以管理圖像數據,幫助進行圖像識別和物體檢測。

盡管AutoGloon的幾個變體版本是為了更好地處理時間序列數據、文本和圖像而構建的,但在這里我們將重點關注處理表格數據的變體版本。如果你喜歡這篇文章,并希望未來深入了解它的這個開源庫的變體版本,請告訴我。(AutoGloon團隊,《AutoGloon:將AutoML用于文本、圖像和表格數據》,2020年)

2.AutoML概述

(1)什么是AutoML?

AutoML(Automated Machine Learning,自動化機器學習)的縮寫,是一種將機器學習應用于現實世界問題的整個過程自動化的技術。AutoML的主要目標是使機器學習更容易訪問和高效,允許人們在不需要深入專業知識的情況下開發模型。正如我們已經看到的,它可以處理數據預處理、特征工程、模型選擇和超參數調整等任務,這些任務通常既復雜又耗時(He等,《AutoML:最新技術綜述》,2019年)。

多年來,AutoML的概念有了顯著的發展。最初,機器學習需要專家的大量手動工作,他們必須仔細選擇特征、調整超參數并選擇正確的算法。隨著該領域的發展,處理越來越大和復雜的數據集的自動化需求也在增長。早期自動化部分流程的努力為現代AutoML系統鋪平了道路。如今,AutoML使用集成學習和貝葉斯優化等先進技術,以最少的人為干預創建高質量的模型(Feurer等人,“高效和穩健的自動機器學習”,2015年,鏈接:https://www.arxiv.org/abs/1908.00709)。

近幾年,AutoML領域出現了幾家參與研究團隊,每個參與者都提供其獨特的特征和功能支持。AutoGloon由亞馬遜網絡服務公司開發,以其在各種數據類型中的易用性和強大性能而聞名(AutoGloon團隊,“AutoGlooN:針對文本、圖像和表格數據的AutoML”,2020年)。Google Cloud團隊研發的AutoML提供了一套機器學習產品,允許開發人員以最小的工作量訓練高質量的模型。H2O.ai團隊提供了一種H2O AutoML,能夠針對監督和非監督學習任務提供自動機器學習功能(H2O.ai團隊,“H2O AutoML:可擴展的自動機器學習”,2020年,鏈接:https://www.automl.org/wp-content/uploads/2020/07/AutoML_2020_paper_61.pdf)。DataRobot團隊則專注于企業級的AutoML解決方案,旨在為模型部署和管理提供強大的工具支持。微軟的Azure機器學習也具有AutoML功能,能夠與其他Azure服務無縫集成,形成全面的機器學習解決方案。

(2)AutoML的關鍵組件

AutoGluon工作流程如下圖所示:

AutoML領域開源開發利器AutoGloon之實戰演練-AI.x社區

AutoGloon工作流

任何機器學習流水線的第一步都是數據預處理。這包括通過處理缺失值、刪除重復項和更正錯誤來清理數據。數據預處理還包括將數據轉換為適合分析的格式,例如歸一化值、編碼分類變量和縮放特征。適當的數據預處理至關重要,因為數據的質量直接影響機器學習模型的性能。

一旦數據被清除,下一步就是特征工程。這個過程包括創建新的特征或修改現有的特征,以提高模型的性能。特征工程可以簡單到基于現有數據創建新列,也可以復雜到使用領域知識創建有意義的特征。正確的特征可以顯著增強模型的預測能力。

準備好數據并設計好特征后,下一步就是模型選擇。有許多算法可供選擇,每種算法都有其優缺點,這取決于手頭的問題。AutoML系統能夠評估多個模型,以確定適合于給定任務的最佳模型。這可能包括比較決策樹、支持向量機、神經網絡和其他模型,看看哪種模型的數據表現最好。

選擇模型后,下一個挑戰是超參數優化。超參數是控制機器學習算法行為的設置,例如神經網絡中的學習率或決策樹的深度。找到超參數的最佳組合可以極大地提高模型性能。AutoML使用網格搜索、隨機搜索等技術,以及貝葉斯優化等更先進的方法來自動化這一過程,確保對模型進行微調以獲得最佳結果。

最后一步是模型評估和選擇。這涉及到使用交叉驗證等技術來評估模型對新數據的概括程度。各種性能指標,如準確性、精確度、召回率和F1分數,用于衡量模型的有效性。AutoML系統自動化這一評估過程,確保所選模型最適合給定任務。評估完成后,將選擇性能最佳的模型進行部署(AutoGloon團隊,《AutoGloon:將AutoML用于文本、圖像和表格數據》,2020年)。

(3)AutoML的挑戰

雖然AutoML節省了時間和精力,但它在計算資源方面可能要求很高。超參數調整和模型選擇等自動化任務通常需要運行多次迭代并訓練多個模型,這對無法獲得高性能計算的小型組織或個人來說可能是一個挑戰。

另一個挑戰是需要定制。盡管AutoML系統在許多情況下都非常有效,但它們可能并不總是能立即滿足特定的要求。有時,自動化過程可能無法完全捕捉特定數據集或問題的獨特方面。用戶可能需要調整工作流程的某些部分,如果系統沒有提供足夠的靈活性或用戶缺乏必要的專業知識,這可能會很困難。

盡管存在這些挑戰,但AutoML的好處往往大于缺點。它大大提高了生產力,擴大了可訪問性,并提供了可擴展的解決方案,使更多的人能夠利用機器學習的力量(Feuer等人,《高效和穩健的自動化機器學習》,2015年)。

3.AutoGloon庫數學理論支持

(1)AutoGloon的架構

AutoGloon的架構旨在自動化從數據預處理到模型部署的整個機器學習工作流程。該體系結構由幾個相互連接的模塊組成,每個模塊負責流程的特定階段。

第一步是數據模塊,它處理加載和預處理數據。該模塊處理諸如清理數據、處理缺失值以及將數據轉換為適合分析的格式等任務。例如,考慮一個存在缺失值的數據集X。數據模塊可以使用平均值或中位數估算這些缺失值:

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(strategy='mean')
X_imputed = imputer.fit_transform(X)

一旦數據經過預處理,特征工程模塊就會接管過來。該組件生成新特征或轉換現有特征,以增強模型的預測能力。諸如對分類變量進行一次熱編碼或為數字數據創建多項式特征之類的技術是常見的。例如,對分類變量進行編碼可能如下所示:

from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder()
X_encoded = encoder.fit_transform(X)

AutoGloon的核心是模型模塊。該模塊包括一系列機器學習算法,如決策樹、神經網絡和梯度提升機。它在數據集上訓練多個模型并評估它們的性能。例如,決策樹可以按照以下方式進行訓練:

from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)

超參數優化模塊自動搜索每個模型的最佳超參數。它使用網格搜索、隨機搜索和貝葉斯優化等方法。Snoek等人的論文中詳細介紹了貝葉斯優化(2012年:https://arxiv.org/abs/1206.2944),他們建立了一個概率模型來指導搜索過程:

from skopt import BayesSearchCV
search_space = {'max_depth': (1, 32)}
bayes_search = BayesSearchCV(estimator=DecisionTreeClassifier(), 
search_spaces=search_space)
bayes_search.fit(X_train, y_train)

訓練后,評估模塊使用準確性、精確度、召回率和F1分數等指標評估模型性能。交叉驗證通常用于確保模型能夠很好地推廣到新數據:

from sklearn.model_selection import cross_val_score
scores = cross_val_score(model, X, y, cv=5, scoring='accuracy')
mean_score = scores.mean()

AutoGloon的集成模塊非常出色,它將多個模型的預測結合起來,生成一個更準確的預測。采用堆疊、裝袋和混合等技術。例如,可以使用BaggingClassifier進行裝袋:

from sklearn.ensemble import BaggingClassifier
bagging = BaggingClassifier(base_estimator=DecisionTreeClassifier(), 
n_estimators=10)
bagging.fit(X_train, y_train)

最后,部署模塊負責將最佳模型或集成部署到生產中。這包括導出模型、對新數據生成預測以及將模型集成到現有系統中:

import joblib
joblib.dump(bagging, 'model.pkl')

總之,上述這些組件協同工作,使機器學習管道自動化,使用戶能夠快速高效地構建和部署高質量的模型。

(2)AutoGloon中的集成學習

集成學習是AutoGloon的一個關鍵功能,它增強了提供高性能模型的能力。通過組合多個模型,集成方法提高了預測的準確性和穩健性。AutoGloon利用了三種主要的集成技術:堆疊、裝袋和混合。

堆疊

堆疊涉及在同一數據集上訓練多個基本模型,并將它們的預測用作更高級別模型(通常稱為元模型)的輸入特征。這種方法利用了各種算法的優勢,使集合能夠做出更準確的預測。堆疊過程可以用數學表示如下:

AutoML領域開源開發利器AutoGloon之實戰演練-AI.x社區

堆疊公式

這里,h1表示基本模型,h2是元模型。每個基本模型h1取輸入特征xi并產生預測。然后,這些預測被用作元模型h2的輸入特征,并最終計算出最終預測值y^。通過組合不同基礎模型的輸出,堆疊可以捕獲數據中更廣泛的模式,從而提高預測性能。

袋裝

Bagging(Bootstrap Aggregation的縮寫)通過在不同的數據子集上訓練同一模型的多個實例來提高模型的穩定性和準確性。這些子集是通過對原始數據集進行隨機采樣并進行替換來創建的。最終預測通常通過對回歸任務的所有模型的預測進行平均或通過對分類任務進行多數投票來進行。

從數學上講,裝袋可以表示如下:

對于回歸:

AutoML領域開源開發利器AutoGloon之實戰演練-AI.x社區

Bagging公式中的回歸

對于分類:

AutoML領域開源開發利器AutoGloon之實戰演練-AI.x社區

裝袋中的分類

這里,hi表示在數據的不同子集上訓練的第i個模型。對于回歸,最終預測y^是每個模型所做預測的平均值。對于分類,最終預測y^是模型中最頻繁預測的類別。

裝袋的方差縮減效果可以用大數定律來說明,該定律指出,來自多個模型的預測的平均值將收斂到期望值,從而減少總體方差,提高預測的穩定性。可以說明為:

AutoML領域開源開發利器AutoGloon之實戰演練-AI.x社區

裝袋中的方差縮減

通過對數據的不同子集進行訓練,裝袋也有助于減少過擬合并提高模型的可推廣性。

混合

混合類似于堆疊,但實現更簡單。在混合中,數據被分為兩部分:訓練集和驗證集。基本模型在訓練集上進行訓練,它們在驗證集上的預測用于訓練最終模型,也稱為混合器或元學習器。混合使用了一個保持驗證集,這可以使其更快地實現:

# 簡單訓練驗證拆分的混合示例
train_meta, val_meta, y_train_meta, y_val_meta = train_test_split(X, y, 
test_size=0.2)
base_model_1.fit(train_meta, y_train_meta)
base_model_2.fit(train_meta, y_train_meta)
preds_1 = base_model_1.predict(val_meta)
preds_2 = base_model_2.predict(val_meta)
meta_features = np.column_stack((preds_1, preds_2))
meta_model.fit(meta_features, y_val_meta)

這些技術確保最終預測更加準確和穩健,利用多個模型的多樣性和優勢來提供卓越的結果。

(3)超參數優化

超參數優化包括為模型找到最佳設置,以最大限度地提高其性能。AutoGloon使用貝葉斯優化、早期停止和智能資源分配等先進技術自動化了這一過程。

貝葉斯優化

貝葉斯優化旨在通過建立目標函數的概率模型來找到最優的超參數集。它使用過去的評估結果來做出下一步要嘗試哪些超參數的明智決定。這對于有效地導航大型和復雜的超參數空間特別有用,減少了找到最佳配置所需的評估數量:

AutoML領域開源開發利器AutoGloon之實戰演練-AI.x社區

貝葉斯優化公式

其中,f(θ)是想要優化的目標函數,例如模型精度或損失值。θ表示超參數。E[f(θ)]是給定超參數θ的目標函數的期望值。

貝葉斯優化包括兩個主要步驟:

  • 代理建模:基于過去的評估,建立一個概率模型,通常是高斯過程,以近似目標函數
  • 采集函數:該函數通過平衡勘探(嘗試超參數空間的新區域)和開發(專注于已知表現良好的區域)來確定下一組要評估的超參數。常見的采集函數包括預期改進(EI)和置信上限(UCB)。

與網格或隨機搜索方法相比,該優化以迭代方式更新代理模型和采集函數以收斂于具有較少評估的最優超參數集。

早停技術

一旦模型在驗證集上的性能停止改善,早停技術可以防止過擬合,并通過停止訓練過程來減少訓練時間。AutoGloon在訓練過程中監測模型的性能,并在進一步訓練不太可能產生顯著改進時停止該過程。這項技術不僅節省了計算資源,而且確保了模型能夠很好地推廣到新的、看不見的數據:

from sklearn.model_selection import train_test_split
from sklearn.metrics import log_loss
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2)
model = DecisionTreeClassifier()
best_loss = np.inf
for epoch in range(100):
model.fit(X_train, y_train)
val_preds = model.predict(X_val)
loss = log_loss(y_val, val_preds)
if loss < best_loss:
best_loss = loss
else:
break

資源配置策略

有效的資源分配在超參數優化中至關重要,尤其是在處理有限的計算資源時。AutoGloon采用了高保真度優化等策略,即系統最初使用數據子集或更少的迭代輪次來訓練模型,以快速評估其潛力。然后為有希望的模型分配更多的資源進行徹底評估。這種方法平衡了勘探和開發,確保計算資源得到有效利用:

AutoML領域開源開發利器AutoGloon之實戰演練-AI.x社區

多保真度優化公式

在這個公式中:

  • hi表示第i個模型。
  • Ci是與模型hi相關聯的成本,例如所使用的計算時間或資源。
  • Resource(hi)表示分配給模型hi的總資源的比例。

通過最初訓練保真度降低的模型(例如,使用更少的數據點或迭代輪次),高保真度優化可以快速識別有希望的候選樣本。然后以更高的保真度對這些候選樣本進行訓練,確保計算資源得到有效使用。這種方法平衡了超參數空間的探索與已知良好配置的利用,從而實現高效和有效的超參數優化。

(4)模型評估和選擇

模型評估和選擇確保所選模型在新的、看不見的數據上表現良好。AutoGloon使用交叉驗證技術、性能指標和自動模型選擇標準自動化這一過程。

交叉驗證技術

交叉驗證包括將數據拆分為多個子集,并在不同的子集上訓練模型,同時在其余部分上進行驗證。AutoGloon使用k倍交叉驗證等技術,將數據劃分為k個子集,對模型進行k次訓練和驗證,每次都以不同的子集作為驗證集。這有助于獲得對模型性能的可靠估計,并確保評估不會因特定的訓練測試劃分而產生偏差:

AutoML領域開源開發利器AutoGloon之實戰演練-AI.x社區

交叉驗證精度公式

性能指標

為了評估模型的質量,AutoGloon依賴于各種性能指標,這些指標取決于手頭的特定任務。對于分類任務,常見的指標包括準確性、精密度、召回率、F1分數和ROC曲線下面積(AUC-ROC)。對于回歸任務,通常使用平均絕對誤差(MAE)、均方誤差(MSE)和R平方等度量。AutoGloon在評估過程中自動計算這些指標,以便全面了解模型的優勢和劣勢:

from sklearn.metrics import accuracy_score, precision_score, recall_score, 
f1_score
y_pred = model.predict(X_val)
accuracy = accuracy_score(y_val, y_pred)
precision = precision_score(y_val, y_pred)
recall = recall_score(y_val, y_pred)
f1 = f1_score(y_val, y_pred)

自動模型選擇標準

在評估模型后,AutoGloon使用自動標準來選擇性能最好的模型。這包括比較不同模型的性能指標,并選擇在任務的最相關指標方面表現出色的模型。AutoGloon還考慮了模型復雜性、訓練時間和資源效率等因素。自動化的模型選擇過程確保所選模型不僅性能良好,而且在現實世界場景中部署和使用也很實用。通過自動化選擇,AutoGloon消除了人為偏見,并確保采用一致和客觀的方法來選擇最佳型號:

best_model = max(models, key=lambda model: model['score'])

4.基于Python的AutoGloon示例工程

在開始使用AutoGloon之前,你需要設置一下開發環境。這涉及到安裝必要的庫和依賴項等操作。

你可以使用pip安裝AutoGloon。為此,只需打開終端或命令提示符,然后運行以下命令:

pip install autogluon

此命令將安裝AutoGloon及其所需的依賴項。

接下來,你需要下載數據。你需要安裝Kaggle,以便下載本文提供示例的數據集:

pip install kaggle

安裝后,通過在終端中運行這些命令下載數據集。請確保你處于與.py文件相同的目錄中:

mkdir data
cd data
kaggle competitions download -c playground-series-s4e6
unzip "Academic Succession/playground-series-s4e6.zip"

或者,你可以從最近的Kaggle競賽“基于學術成功數據集的分類”中手動下載數據集。該數據集可免費用于商業用途(https://creativecommons.org/licenses/by/4.0/)。

一旦環境設置好,你就可以使用AutoGloon來構建和評估機器學習模型。首先,你需要加載并準備數據集。AutoGloon使這個過程變得簡單明了。假設你有一個名為train.CSV的CSV文件,其中包含你的訓練數據:

from autogluon.tabular import TabularDataset, TabularPredictor
# 加載數據集
train_df = TabularDataset('data/train.csv')

加載數據后,可以使用AutoGloon訓練模型。在本例中,我們將訓練一個模型來預測名為“target”的目標變量,并使用準確性作為評估指標。我們還將啟用超參數調整和自動堆疊,以提高模型性能:

# 訓練模型
predictor = TabularPredictor(
label='Target',
eval_metric='accuracy',
verbosity=1
).fit(
train_df,
presets=['best_quality'],
hyperparameter_tune=True,
auto_stack=True
)

訓練結束后,你可以使用排行榜評估模型的表現,排行榜提供了模型在訓練數據上的表現摘要:

#評估模型
leaderboard = predictor.leaderboard(train_df, silent=True)
print(leaderboard)

排行榜為你提供了AutoGloon訓練的所有模型的詳細比較。

AutoML領域開源開發利器AutoGloon之實戰演練-AI.x社區

現在,讓我們詳細解釋一下上面表格中的幾個關鍵列及其含義:

  • model:此列列出了模型的名稱。例如,RandomForestEntr_BAG_L1指的是使用熵作為標準的隨機森林模型,并使用級別1版本打包。
  • score_test:這顯示了模型在數據集上的準確性。分數為1.00表示某些模型具有完美的準確性。與其名稱相反,score_test是在訓練過程中使用的訓練數據集。
  • score_val:這顯示了模型在驗證數據集上的準確性。請注意這一點,因為它顯示了模型在看不見的數據上的表現。
  • eval_metric:使用的評估指標,在本例中指準確性。
  • pred_time_test:對測試數據進行預測所花費的時間。
  • pred_time_val:對驗證數據進行預測所花費的時間。
  • fit_time:訓練模型所花費的時間。
  • pred_time_test_marginal:集合中的模型在測試數據集上添加的額外預測時間。
  • pred_time_val_marginal:集合中的模型在驗證數據集上添加的額外預測時間。
  • fit_time_marginal:模型在集合中添加的額外訓練時間。
  • stack_level:表示模型的堆疊級別。1級模型是基礎模型,而2級模型是使用1級模型的預測作為特征的元模型。
  • can_infer:指示模型是否可以用于推理。
  • fit_order:訓練模型的順序。

查看一下所提供的排行榜數據,我們可以看到一些模型,如RandomForestEntr_BAG_L1和RandomForest Gini_BAG_L具有完美的訓練精度(1000000),但驗證精度略低,這表明可能存在過度擬合。WeightedEnsemble_L2結合了1級模型的預測,通常通過平衡其基本模型的強度來顯示良好的性能。

LightGBMLarge_BAG_L1和XGBoost_BAG_L1等模型具有競爭性的驗證分數以及合理的訓練和預測時間,使其成為最終部署方案的有力候選模型。

fit_time和pred_time列提供了對每個模型的計算效率的深入了解,這對實際應用至關重要。

除了排行榜之外,AutoGloon還提供了一些高級功能,允許你自定義訓練過程、處理不平衡的數據集和執行超參數調整。

通過調整擬合方法的參數,可以自定義訓練過程的各個方面。例如,可以更改訓練迭代次數,指定要使用的不同算法,或為每個算法設置自定義超參數。

from autogluon.tabular import TabularPredictor, TabularDataset
# 加載數據集
train_df = TabularDataset('train.csv')
#定義自制超級參數
hyperparameters = {
'GBM': {'num_boost_round': 200},
'NN': {'epochs': 10},
'RF': {'n_estimators': 100},
}
# 使用定制設置訓練模型
predictor = TabularPredictor(
label='Target',
eval_metric='accuracy',
verbosity=2
).fit(
train_data=train_df,
hyperparameters=hyperparameters
)

不平衡的數據集可能具有挑戰性,但AutoGloon提供了有效處理這些數據集的工具。可以使用諸如對少數類進行過采樣、對多數類進行欠采樣或應用成本敏感的學習算法等技術。AutoGloon可以自動檢測和處理數據集中的不平衡。

from autogluon.tabular import TabularPredictor, TabularDataset
#加載數據集
train_df = TabularDataset('train.csv')
#通過指定自定義參數處理不平衡的數據集
#AutoGloon可以在內部處理此問題,但為了清楚起見,在此處指定
hyperparameters = {
'RF': {'n_estimators': 100, 'class_weight': 'balanced'},
'GBM': {'num_boost_round': 200, 'scale_pos_weight': 2},
}
# 使用處理不平衡的設置來訓練模型
predictor = TabularPredictor(
label='Target',
eval_metric='accuracy',
verbosity=2
).fit(
train_data=train_df,
hyperparameters=hyperparameters
)

超參數調整對于優化模型性能至關重要。AutoGloon使用貝葉斯優化等先進技術自動完成這一過程。你可以通過在擬合方法中設置hyperparameter_tune=True來啟用超參數調整。

from autogluon.tabular import TabularPredictor, TabularDataset
# 加載數據集
train_df = TabularDataset('train.csv')
# 使用超參數優化訓練模型
predictor = TabularPredictor(
label='Target',
eval_metric='accuracy',
verbosity=2
).fit(
train_data=train_df,
presets=['best_quality'],
hyperparameter_tune=True
)

超越AutoML模型的可能性

經過上面的AutoGloon庫學習之后,不妨讓我們繼續探討如何進一步超越AutoML模型。假設你的主要目標是改進損失指標,而不是關注延遲、計算成本或其他指標。

如果你有一個非常適合深度學習的大型數據集,你可能會發現實驗深度學習架構更容易。AutoML框架在這一領域往往很困難,因為深度學習需要對數據集有深入的了解,而盲目應用模型可能會非常耗時和耗費資源。以下是一些可以幫助你開始深度學習的資源:

??https://towardsdatascience.com/the-math-behind-lstm-9069b835289d??

然而,真正的挑戰在于用傳統的機器學習任務擊敗AutoML。AutoML系統通常使用集成技術,這意味著你最終可能會做同樣的事情。一個好的開始策略可以是首先擬合一個AutoML模型。例如,使用AutoGloon,你可以確定哪些模型表現最好。然后,你可以采用這些模型,重新創建AutoGloon使用的集成架構。通過使用Optuna等技術進一步優化這些模型,你可能獲得更好的性能。以下是掌握Optuna的全面指南:

《Optuna的機器學習優化》:介紹如何在Python中微調每個機器學習算法。Optuna機器學習優化的終極指南,實現卓越的模型性能。文章地址:

??https://towardsdatascience.com/machine-learning-optimization-with-optuna-57593d700e52??

此外,將領域知識應用于特征工程可以為你提供優勢。了解數據的細節可以幫助你創建更有意義的功能,從而顯著提高模型的性能。如果可行,請擴充數據集以提供更多不同的訓練示例,這有助于提高模型的穩健性。

通過將上述這些策略與從初始AutoML模型中獲得的見解相結合,你就可以超越自動化方法并獲得更為卓越的訓練結果。

結論

AutoGloon通過自動化從數據預處理到模型部署的一切,徹底改變了ML過程。其尖端的架構、強大的集成學習技術和復雜的超參數優化使其成為機器學習新手和經驗豐富的數據科學家不可或缺的工具。借助于AutoGloon,你可以將復雜、耗時的任務轉換為簡化的工作流程,使你能夠以前所未有的速度和效率構建頂級模型。

然而,要想真正在機器學習中脫穎而出,就不能僅僅依賴AutoGloon。將其作為啟動項目的基礎,并深入了解有效的模型策略。然后,以此為基礎,深入了解你的數據,并將領域知識應用于功能工程。最后,嘗試自定義模型,還要嘗試在AutoGloon的初始產品之外對其進行微調。

參考文獻

  • Erickson,N.、Mueller,J.、Charpentier,P.、Kornblith,S.、Weissenborn,D.、Norris,E.…和Smola,A.(2020)。《AutoGluon-Tabular: Robust and Accurate AutoML for Structured Data》。arXiv預印本arXiv:2003.0605。
  • Snoek,J.、Larochelle,H.和Adams,R.P.(2012)。《機器學習算法的實用貝葉斯優化》。Advances in neural information processing systems,25。
  • Pedregosa,F.,Varoquex,G.,Gramfort,A.,Michel,V.,Thirion,B.,Grisel,O.,…和Duchesnay,é。(2011)。《Scikit學習:Python中的機器學習》。Journal of machine learning research,12(10月),2825–2830。
  • AutoGloon團隊。《AutoGluon: AutoML for Text, Image, and Tabular Data》,2020。
  • Feuer,Matthias等,《Efficient and Robust Automated Machine Learning》,2015年。
  • 何,辛,等。《AutoML: A Survey of the State-of-the-Art》。2020。
  • Hutter,Frank等人,《Automated Machine Learning: Methods, Systems, Challenges》,2019年。
  • H2O.ai,《H2O AutoML: Scalable Automatic Machine Learning》,2020年。

譯者介紹

朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。

原文標題:AutoML with AutoGluon: ML workflow with Just Four Lines of Code,作者:Cristian Leo

鏈接:

??https://towardsdatascience.com/automl-with-autogluon-transform-your-ml-workflow-with-just-four-lines-of-code-1d4b593be129。??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
已于2024-7-17 08:14:51修改
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 欧美精品一区在线观看 | 精品婷婷| 日韩av在线免费 | 日韩欧美视频 | 最近免费日本视频在线 | 日韩av一区二区在线观看 | 日韩在线精品视频 | 一区二区日韩 | 欧美精品一二三区 | 日韩三级 | 蜜桃毛片 | 日本精品视频 | h在线| 福利社午夜影院 | 在线亚洲电影 | 黄色精品 | 欧美精品一区二区三区视频 | 亚洲精品中文字幕在线观看 | 亚洲第1页 | 亚洲国产成人精品女人久久久 | 一区二区三区国产 | 欧美综合在线观看 | wwwxxx国产 | 在线黄 | av中文字幕在线 | 亚洲精品免费观看 | 日韩精品免费看 | 成人国产精品免费观看视频 | 一级特黄色毛片 | 9191在线播放 | 久久精品国产亚洲 | 亚洲最大av网站 | 欧美日韩综合一区 | 亚洲精品日韩一区二区电影 | 琪琪午夜伦伦电影福利片 | 日韩av在线一区二区三区 | 亚洲综合区 | 国产欧美一区二区三区久久 | 大香网伊人| 精品亚洲二区 | 国产成人精品一区 |