在日常的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工具库及用法相关推荐

  1. 【数据竞赛】盘点Kaggle中常见的AutoEDA工具库

    在完成竞赛和数据挖掘的过程中,数据分析一直是非常耗时的一个环节,但也是必要的一个环节. 能否使用一个工具代替人来完成数据分析的过程呢,现有的AutoEDA工具可以一定程度上完成上述过程.本文将盘点常见 ...

  2. JavaScript中常见的字符串操作函数及用法汇总

    转载地址:http://www.jb51.net/article/65358.htm 这篇文章主要介绍了JavaScript中常见的字符串操作函数及用法,实例汇总了javascript常见的字符串转换 ...

  3. C语言中常见的符号和注释的用法

    文章目录 前言 一.换行符号\n \n的具体用法和作用 二.取地址符号& &的具体用法和作用 三.注释 注释的格式 注释的作用 注释在代码中的具体体现 总结 前言 本篇文章主要给大家讲 ...

  4. 【机器学习】盘点常见的自动机器学习(AutoML)工具库

    本文总结了常见的AutoML库,可供大家选择. LightAutoML 项目链接:https://github.com/sberbank-ai-lab/LightAutoML 推荐指数:⭐⭐⭐ Lig ...

  5. 盘点数据挖掘中常见的5种 AutoEDA 工具

    大家好,我们都知道在数据挖掘的过程中,数据探索性分析一直是非常耗时的一个环节,但也是绕不开的一个环节. 我们能否使用一些自动化工具代替人来完成数据分析的过程呢,现有一些成熟的 AutoEDA 工具可以 ...

  6. 是谁的名字缩写_浅谈女枪 or MF之争 盘点LOL中常见的英雄英文名缩写

    直播吧1月21日讯 LOL已经结束了新赛季常规赛第一周的争夺,但最近关于女枪能否叫MF这个问题引起了大家的广泛讨论,起因则是因为解说在比赛中使用了MF一词而不是MF,受到了一部分玩家们的吐槽. 对于这 ...

  7. mysql中sql语句中常见的group_concat()函数意思以及用法,oracle中与其一样的功能函数是wmsys.wm_concat()

    1.group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一 ...

  8. Vue框架中常见的前端UI库

    前言 Vue旗下有很多衍生的UI框架,它们能够很好的提高前端工程师开发效率.今天在这里,笔者做一个整理.将UI框架分为PC和Mobile两大类,并逐一展示 PC版UI库 Element Element ...

  9. combo:机器学习模型合并工具库

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 机器学习中的模型合并(model combination)可以通过合并多个模型达到提升 ...

最新文章

  1. Jupyter notebook 文件路径
  2. 23 DesignPatterns学习笔记:C++语言实现 --- 2.2 Adapter
  3. 如何监控mysql数据库时间_如何监控MySQL数据库主从之间的延时
  4. Android --- RecyclerView 水平滑动时,一个 item 一个 item 的滑动,禁止滑动到一半停止
  5. c语言二元运算符大全,C语言运算符大全
  6. 【敏感度,查询,裁剪代码实现】差分隐私代码实现系列(六)
  7. 第十五章 面向对象程序设计
  8. Linux 用户的 3 个命令行小技巧
  9. RTP、RTCP及媒体流同步
  10. IDM下载器插件 让浏览器不在限速
  11. 微信小程序复制就好-JS工具eval5,用JS替换VBA处理Excel数据
  12. 西工大机考《会计电算化》大作业网考
  13. 遭遇Excel的宏病毒
  14. linux tc限制网卡速度,使用TC 对LINUX服务器网卡进行带宽限制的办法
  15. java中执行ddl语句,DDL(数据定义语言)
  16. 海底捞:服务喧宾夺主,盈利不见起色
  17. 神经网络参数量和计算量,神经网络计算公式
  18. 软件项目开发整体思路
  19. GuessingGame
  20. 公司来了个新测试开发,一副毛头小子的样儿,哪想到......

热门文章

  1. 个人日报0701-0703
  2. Erlang --- 基本概念
  3. node-webkit File Dialog
  4. mybatis 开发环境搭建
  5. 安卓学习之--如何关闭所有的activity
  6. Oracle表空间规划处理
  7. [C#]使用HttpWebRequest请求远端服务器时如何加载SSL证书
  8. python技巧 使用值来排序一个字典
  9. 获取安卓应用APK包名的方法
  10. P2344 奶牛抗议