?? 作者:韓信子@ShowMeAI
?? 機器學習實戰系列:https://www.showmeai.tech/tutorials/41
?? 本文地址:https://www.showmeai.tech/article-detail/289
?? 宣告:著作權所有,轉載請聯系平臺與作者并注明出處
?? 收藏ShowMeAI查看更多精彩內容
自動化機器學習,也稱為自動化 ML 或 AutoML,是自動化完成開發耗時且需要反復迭代的機器學習建模程序,它讓資料科學家、分析師和開發人員輕松構建具有高規模、高效率和生產力的機器學習模型,同時保持模型質量,
常規的機器學習模型開發應用,需要大量時間來構建和比較若干個不同模型,借助自動化機器學習,一些繁瑣枯燥的迭代開發環境可以自動完成,提高了效率,
Python 擁有不斷增長的開源 AutoML 庫生態系統,ShowMeAI在本篇中梳理了截止2022年,最流行和實用的 AutoML 庫,其中也有不少企業級應用工具,ShowMeAI本次介紹的AutoML工具庫包括:
- PyCaret
- H2O AutoML
- TPOT
- Auto-sklearn
- FLAML
- EvalML
- AutoKeras
- Auto-ViML
- AutoGluon
- MLBox
?? PyCaret
PyCaret 是 Python 中的一個開源、低代碼機器學習庫,可自動執行機器學習作業流,它也是一個端到端的機器學習和模型管理工具,可以成倍地加快實驗周期,提升作業開發效率,
與其他開源機器學習庫相比,PyCaret 有著明顯的低代碼特質,可僅用幾行代碼完成原本需要數百行代碼完成的作業,尤其是對于密集的實驗迭代程序可以大大提速,PyCaret 本質上是圍繞多個機器學習庫和框架封裝而成,包括大家熟悉的scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt 和 Ray等,
Pycaret的相關資料鏈接如下:
- ?? 檔案:https://pycaret.gitbook.io/
- ?? GitHub:https://www.github.com/pycaret/pycaret
- ?? 教程:https://pycaret.gitbook.io/docs/get-started/tutorials
|  |
?? H2O AutoML
H2O AutoML是另一個很有名的自動化機器學習庫,可以幫助我們在有限的時間內自動訓練和調優許多模型,
H2O 的核心代碼是用 Java 撰寫的,這些演算法在 H2O 的分布式 Map/Reduce 框架之上實作,并利用 Java Fork/Join 框架進行多執行緒處理,資料被并行讀取并分布在集群中,并以壓縮方式以列格式存盤在記憶體中,
H2O AutoML 的設計理念是,希望盡量自動化,即用戶只需要給定資料集和極少量的引數,即可開始建模和調優,并在指定的時間或者其他約束條件下,盡量找到最佳的模型,
import h2o
from h2o.automl import H2OAutoML
# 初始化
h2o.init()
aml = H2OAutoML(max_models =25,
balance_classes=True,
seed = 1)
# 自動建模訓練
aml.train(training_frame = X, y = 'y')
lb = aml.leaderboard
# 獲取最佳模型
best_model = aml.get_best_model()
print(best_model)
相關的檔案可以在 ?? 這里 查閱,
?? TPOT
TPOT自動化機器學習 (AutoML) 工具庫構建在scikit-learn 之上,它使用 Gentic Programming (GP) 來有效地發現給定資料集的最佳模型流水線,
TPOT 使用遺傳編程來自動設計和優化一系列資料轉換(特征處理)和機器學習模型,并努力最大限度提高給定監督學習資料集的效果,
流程示意圖如下:
整個建模調優程序也非常簡單,如下2行代碼即可完成完整程序,
# 初始化
model = TPOTClassifier(generations=5, population_size=50, cv=cv, scoring='accuracy', verbosity=2, random_state=1, n_jobs=-1)
# 自動化擬合與調優
model.fit(X, y)
關于TPOT的資料可以在它的 ?? 檔案 和官方 ?? GitHub 查看,
?? Auto-sklearn
從名字可以看出來,Auto-sklearn 是一個基于sklearn的自動化機器學習工具包,它利用了貝葉斯優化、元學習和集成模型等方法來自動化建模與調優,
使用方法和sklearn非常相似,熟悉sklearn的同學可以無障礙快速應用,示例代碼如下:
import autosklearn.classification
# 構建自動化分類器
cls = autosklearn.classification.AutoSklearnClassifier()
# 擬合調優
cls.fit(X_train, y_train)
# 預估
predictions = cls.predict(X_test)
關于Auto-sklearn的資料可以在它的 ?? 檔案 和官方 ?? GitHub 查看,
?? FLAML
FLAML 是微軟推出的輕量級 Python 自動化機器學習庫,可以自動、高效且經濟地找到準確的機器學習模型,FLAML還有來自 Visual Studio 2022 中的 ML.NE 模型生成器的 .NET 實作,
FLAML 可以快速找到具有低計算資源的高質量模型,它支持經典機器學習模型和深度神經網路,
關于FLAML的資料可以在它的 ?? 檔案 和官方 ?? GitHub 查看,大家可以在ShowMeAI的教程文章 ?? AutoML自動化機器學習建模 中查看FLAML的詳細用法,簡單的使用示例代碼如下:
from flaml import AutoML
# 構建自動化學習器
automl = AutoML()
# 擬合調優
automl.fit(X_train, y_train, task=”classification”)
?? EvalML
EvalML這個AutoML工具庫使用特定領域的目標函式來構建、優化和評估機器學習流水線,它結合了先進的資料處理與特征工程工具庫 ?? Featuretools 和 ?? Compose,可以非常方便地構建端到端的監督機器學習解決方案,
EvalML 支持多種監督學習任務/問題,如回歸、分類(二元和多類)、時間序列分析(包括時間序列回歸和分類)等,
關于EvalML的資料可以在它的 ?? 檔案 和官方 ?? GitHub 查看,示例使用方法如下:
from evalml.automl import AutoMLSearch
# 初始化
automl = AutoMLSearch(X_train=X_train, y_train=y_train, problem_type="binary", objective="F1")
# 搜索調優
automl.search()
?? AutoKeras
AutoKeras 是一個自動化建模庫,主要聚焦在自動搜索 深度學習模型的架構和超引數, 并盡快獲得性能最佳的深度學習模型,Auto-Keras的API介面和scikit-learn風格完全一致,容易上手,
它包括用于文本、影像和結構化資料的分類和回歸的構建塊,選擇高級架構后,Autokeras 會自動調整模型,
關于AutoKeras的資料可以在它的 ?? 檔案 和官方 ?? GitHub 查看,示例使用方法如下:
import autokeras
# 初始化分類器
search = autokeras.StructuredDataClassifier(max_trials=15)
# 擬合與尋找最佳網路結構和超引數
search.fit(x=X_train, y=y_train, verbose=0)
# 預估
y_pred = search.predict(X_new)
?? Auto-ViML
Auto-ViML(自動變數可解釋機器學習)是一個開源 Python 庫,可以訓練多個模型并自動識別最佳超引數,它內置大量的資料預處理和可解釋性功能:
- 自動化資料處理與清洗:給定資料集(通常是Dataframe格式),Auto_ViML 會盡量自動化處理缺失值、格式化變數、添加變數等,
- 特征選擇:Auto-ViML自動選擇特征變數,當我們特征維度特別高的時候,非常有用,
關于Auto-ViML的資料可以在它的 ?? 檔案 和官方 ?? GitHub 查看,示例使用方法如下:
from autoviml.Auto_ViML import Auto_ViML
#包含所有引數的一個示例代碼
model, features, trainm, testm = Auto_ViML(
train,
target,
test,
sample_submission,
hyper_param="GS",
feature_reduction=True,
scoring_parameter="weighted-f1",
KMeans_Featurizer=False,
Boosting_Flag=False,
Binning_Flag=False,
Add_Poly=False,
Stacking_Flag=False,
Imbalanced_Flag=False,
verbose=0,
)
?? AutoGluon
AutoGluon 是一個由 AWS 開源的為深度學習開發優化而生的 autoML 框架,除了結構化表格資料,它還支持影像分類、目標檢測和自然語言處理任務,
AutoGluon 的核心功能包括:
- 自動化尋找性能最佳的深度學習架構和超引數,
- 模型選擇和自動超引數調優,
- 自動化資料預處理,
關于 AutoGluon 的資料可以在它的 ?? 檔案 和官方?? GitHub 查看,示例使用方法如下:
from autogluon.tabular import TabularDataset, TabularPredictor
# 構建訓練集與測驗集表格資料
train_data = https://www.cnblogs.com/showmeai/archive/2022/08/09/TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
test_data = https://www.cnblogs.com/showmeai/archive/2022/08/09/TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')
# 自動擬合與優化
predictor = TabularPredictor(label='class').fit(train_data=https://www.cnblogs.com/showmeai/archive/2022/08/09/train_data)
# 預估
predictions = predictor.predict(test_data)
?? MLBox
MLBox 是一個開源的 AutoML Python 庫,覆寫如下的強大功能:
- 特征選擇、缺失值填充和例外值檢測,
- 更快效果更好的資料預處理,
- 自動超引數優化,
- 用于分類和回歸的自動模型選擇,
- 模型預測與模型可解釋性,
關于MLBox的資料可以在它的 ?? 檔案 和官方 ?? GitHub 查看,示例使用方法如下:
import mlbox as mlb
# 資料自動化預處理
data = https://www.cnblogs.com/showmeai/archive/2022/08/09/mlb.preprocessing.Drift_thresholder().fit_transform(data)
# 優化與擬合預估
best = mlb.optimisation.Optimiser().evaluate(None, data)
mlb.prediction.Predictor().fit_predict(best, data)
參考資料
- ?? Pycaret 檔案: https://pycaret.gitbook.io/
- ?? Pycaret GitHub: https://www.github.com/pycaret/pycaret
- ?? Pycaret 教程: https://pycaret.gitbook.io/docs/get-started/tutorials
- ?? H2O AutoML: https://docs.h2o.ai/h2o/latest-stable/h2o-docs/welcome.html
- ?? TPOT 檔案: http://epistasislab.github.io/tpot/
- ?? TPOT 官方 GitHub: https://github.com/EpistasisLab/tpot
- ?? Auto-sklearn 檔案: https://automl.github.io/auto-sklearn/master/
- ?? Auto-sklearn 官方 GitHub: https://github.com/automl/auto-sklearn
- ?? FLAML 檔案: https://microsoft.github.io/FLAML/
- ?? FLAML 官方 GitHub: https://github.com/microsoft/FLAML
- ?? Featuretools: https://featuretools.featurelabs.com/
- ?? Compose: https://compose.featurelabs.com/
- ?? EvalML 檔案: https://evalml.alteryx.com/en/stable/
- ?? EvalML 官方 GitHub: https://github.com/alteryx/evalml
- ?? AutoKeras 檔案: https://autokeras.com/
- ?? AutoKeras 官方 GitHub: https://github.com/keras-team/autokeras
- ?? Auto-ViML 檔案: https://readthedocs.org/projects/auto-viml/
- ?? Auto-ViML 官方 GitHub: https://github.com/AutoViML/Auto_ViML
- ?? AutoGluon 檔案: https://auto.gluon.ai/stable/index.html
- ?? AutoGluon 官方 GitHub: https://github.com/awslabs/autogluon
- ?? MLBox 檔案: https://mlbox.readthedocs.io/en/latest/
- ?? MLBox 官方 GitHub: https://github.com/AxeldeRomblay/MLBox
- ?? AutoML 自動化機器學習建模: https://www.showmeai.tech/article-detail/210
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/501368.html
標籤:其他
上一篇:資料庫注入提權總結(一)
