【机器学习】盘点Kaggle中常见的AutoML工具库及用法
在日常的Kaggle比賽和工作中,經常會遇到AutoML工具。本文總結了常見的AutoML庫,可供大家選擇。
LightAutoML
項目鏈接:https://github.com/sberbank-ai-lab/LightAutoML
推薦指數:???
LightAutoML是基于Python環境下的結構化自動機器學習庫,現在支持的任務有:
二分類
多分類
回歸任務
LightAutoML現在只支持單表單記錄的形式,即每一行由樣本的特征和標簽組成。
import?pandas?as?pd from?sklearn.metrics?import?f1_scorefrom?lightautoml.automl.presets.tabular_presets?import?TabularAutoML from?lightautoml.tasks?import?Taskdf_train?=?pd.read_csv('../input/titanic/train.csv') df_test?=?pd.read_csv('../input/titanic/test.csv')automl?=?TabularAutoML(task?=?Task(name?=?'binary',metric?=?lambda?y_true,?y_pred:?f1_score(y_true,?(y_pred?>?0.5)*1)) ) oof_pred?=?automl.fit_predict(df_train,roles?=?{'target':?'Survived',?'drop':?['PassengerId']} ) test_pred?=?automl.predict(df_test)pd.DataFrame({'PassengerId':df_test.PassengerId,'Survived':?(test_pred.data[:,?0]?>?0.5)*1 }).to_csv('submit.csv',?index?=?False)H2O AutoML
項目鏈接:https://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html
推薦指數:????
H2O AutoML是基于Python環境和R環境下的結構化自動機器學習庫,支持分布式部署,對模型調參、模型選擇和特征篩選支持比較完備,但使用起來比較復雜。
import?h2o from?h2o.automl?import?H2OAutoMLh2o.init() train_hf?=?h2o.H2OFrame(train_df.copy()) test_hf?=?h2o.H2OFrame(test_df.copy())train_hf[target_column]?=?train_hf[target_column].asfactor()aml?=?H2OAutoML(seed=2021,?max_runtime_secs=100,nfolds?=?3,exclude_algos?=?["DeepLearning"] )aml.train(x=list(feature_columns),?y=target_column,?training_frame=train_hf )preds?=?aml.predict(h2o.H2OFrame(test_df[feature_columns].copy())) preds_df?=?h2o.as_list(preds) preds_dfsubmission[['Class_1',?'Class_2',?'Class_3',?'Class_4']]?=?preds_df[['Class_1',?'Class_2',?'Class_3',?'Class_4']] submission.to_csv('h2o_automl_300s.csv',?index=False) submission.head()MLJAR AutoML
項目鏈接:https://github.com/mljar/mljar-supervised
推薦指數:????
MLJAR AutoML是基于Python環境下的結構化自動機器學習庫,所支持的機器學習模型非常多,且對模型可視化支持的非常好。
from?supervised.automl?import?AutoML?#?mljar-supervised automl?=?AutoML(mode="Compete",?eval_metric="f1",total_time_limit=300,features_selection=False?#?switch?off?feature?selection ) automl.fit(train[feature_cols],?train[target_column] )preds?=?automl.predict(test[feature_cols])submission['Survived']?=?preds submission.to_csv('mljar_automl_300s_f1_metric.csv',?index=False) submission.head()PyCaret
項目鏈接:https://pycaret.org/
推薦指數:?????
PyCaret是基于Python環境下的結構化自動機器學習庫,支持的任務包括:
分類
回歸
聚類
異常檢測
NLP
關聯規則
PyCaret支持的模型比較多,項目也比較活躍,但對模型的可視化做的不夠。
from?pycaret.classification?import?* from?category_encoders.cat_boost?import?CatBoostEncodercat_train_df?=?train_df.copy() cat_test_df?=?test_df.copy()ce?=?CatBoostEncoder()cols_to_encode?=?['name',?'sex',?'ticket',?'cabin',?'embarked'] cat_train_df[pure_cat_cols]?=?ce.fit_transform(cat_train_df[pure_cat_cols],?cat_train_df[target_column]) cat_test_df[pure_cat_cols]?=?ce.transform(cat_test_df[pure_cat_cols])setup(data?=?cat_train_df[feature_cols.to_list()?+?[target_column]],?target?=?target_column,fold?=?3,silent?=?True, )best_models?=?compare_models(sort='F1',?n_select=3,?budget_time=300, )?#?we?will?use?it?laterbest?=?automl(optimize?=?'F1')EvalML: AutoML
項目鏈接:https://evalml.alteryx.com/en/latest/
推薦指數:???
EvalML是一款比較模塊比較完備的自動機器學習框架,支持分類、回歸和時間序列任務。但提出的時間稍晚,所以使用的人很少。
from?evalml.automl?import?AutoMLSearch X?=?train_df.drop(columns=[target_column,?'passengerid']) y?=?train_df[target_column]X_train,X_test,y_train,y_test?=?train_test_split(X,?y,?test_size=0.2) automl?=?AutoMLSearch(X_train=X_train,?y_train=y_train,?problem_type='binary',random_seed=2021,max_time=300, )automl.search() pipeline?=?automl.best_pipeline pipeline.fit(X,?y)TPOT: Genetic Approach
項目鏈接:http://epistasislab.github.io/tpot/
推薦指數:???
TPOT是一款非常輕量級的自動機器學習框架,利用遺傳算法可以快讀完成特征的構造。但TPOT所支持的功能較少,所以場景有限。
from?tpot?import?TPOTClassifier from?sklearn.model_selection?import?train_test_splittpot?=?TPOTClassifier(generations=5,?population_size=50,?verbosity=2,?random_state=42) tpot.fit(X_train,?y_train) print(tpot.score(X_test,?y_test)) tpot.export('tpot_digits_pipeline.py')FLAML
項目鏈接:https://github.com/microsoft/FLAML
推薦指數:????
FLAML是由微軟提出的自動機器學習庫,支持分類和回歸任務。FLAML對特征的構造和搜索支持的比較好,非常輕量。
from?flaml?import?AutoML from?sklearn.datasets?import?load_bostonautoml?=?AutoML()#?Specify?automl?goal?and?constraint automl_settings?=?{"time_budget":?300,??#?in?seconds"metric":?'accuracy',"task":?'classification', } automl.fit(X_train=train_df[feature_cols],?y_train=train_df[target_column],**automl_settings )print(automl.predict_proba(train_df[feature_cols]))往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載黃海廣老師《機器學習課程》視頻課黃海廣老師《機器學習課程》711頁完整版課件本站qq群554839127,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【机器学习】盘点Kaggle中常见的AutoML工具库及用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c:forecah 参数param 不
- 下一篇: 【NLP】面向对话的机器阅读理解任务(D