
AutoX自动机器学习实战两行代码搞定表格数据挖掘的完整指南【免费下载链接】AutoXAutoX is an efficient automl tool, which is mainly aimed at data mining tasks with tabular data.项目地址: https://gitcode.com/gh_mirrors/aut/AutoX深夜十二点你盯着Kaggle比赛主页的排行榜训练集里几百个特征、几十个类别字段、还有一堆缺失值而你连该从哪一步下手都不知道。数据清洗、特征工程、模型调参、交叉验证……每一步都能写出一篇论文而比赛截止日期正在逼近。如果你也经历过这种表格数据挖不动的时刻那么今天要介绍的 AutoX 自动机器学习工具可能就是你要找的那根救命稻草。这不是一个概念演示项目——AutoX 已经在 Springleaf、Santander、IEEE 欺诈检测、Rossmann 销售预测等众多真实数据挖掘竞赛中被反复验证过效果多项指标优于同类的 AutoML 方案。更重要的是它的入门门槛低到两行代码就能跑通第一个模型。接下来我们就用一场实战演练带你完整走一遍 AutoX 从安装到出结果的全流程。痛点为什么手动做表格数据挖掘这么痛苦在正式上手之前我们先花一分钟想清楚表格数据挖掘到底难在哪里我把它总结成三个无底洞清洗无底洞缺失值怎么填异常值怎么判几百列的数据类型要不要一个个手写字典特征无底洞时间列要拆出年、月、日、星期几吗类别列要不要做 target encoding多张表该怎么拼调参无底洞LightGBM 有几十个超参数网格搜索一遍可能要跑一整天结果还不一定好。AutoX 的设计初衷就是把这三个无底洞一次性填平。它的核心思路是把数据挖掘专家的经验清洗规则、特征构造思路、调参策略固化成一套自动化 pipeline你只需要告诉它标签是哪一列剩下的交给它。AutoX 是什么一套解决六类任务的自动机器学习全家桶AutoX 自动机器学习工具并不是一个只能做单表二分类的小玩具它内部拆成了六个相对独立的子模块各自解决一类数据挖掘问题子模块定位典型场景autox_competition表格数据挖掘竞赛Kaggle、天池等比赛autox_server上线部署的 AutoML 服务风控、营销等生产环境autox_interpreter模型可解释特征重要性、SHAP 分析autox_nlp文本列自动化处理评论文本、商品描述autox_recommend推荐系统自动机器学习召回 排序autox_video视频分类自动机器学习视频内容理解对于初学者来说最值得先玩的就是autox_competition。下图是它的整体框架你可以看到数据预处理、自动拼表、特征工程、模型训练、模型融合是一整条自动化链路全程不需要人工介入而下面这张 pipeline 细节图则更清楚地标出了每一阶段的具体操作比如特征选择用到了随机森林、对抗验证、置换重要性等多种手段模型调参支持网格搜索、随机搜索和贝叶斯优化环境准备AutoX自动机器学习工具的一键安装步骤动手前的准备工作很简单AutoX 支持 Python 3.6 及以上版本核心依赖是 pandas、numpy、scikit-learn、lightgbm、xgboost 等主流库。推荐用 Git 方式安装这样能拿到最新版本git clone https://gitcode.com/gh_mirrors/aut/AutoX cd AutoX pip install -e .如果你只是想快速试用也可以用 pip 直接安装注意pip 包可能更新不及时建议优先用上面的方式pip install automl-x安装完成后在 Python 里验证一下是否成功from autox import AutoX print(AutoX 导入成功)只要能顺利打印出提示说明环境已经就绪。接下来就是最激动人心的部分——两行代码跑通第一个模型。第一个实战两行代码完成一次完整的数据挖掘我们以 Kaggle 的 Tabular Playground Series Aug 2021 数据为例项目仓库demo/SeriesAug2021/kaggle_TabularPlaygroundSeriesAug2021.py里就有这个脚本的完整写法。这个任务的目标是根据若干匿名特征预测一个数值型标签loss。把数据文件放到本地某个目录比如path data/tabular-playground-series-aug-2021里面包含train.csv和test.csv然后from autox import AutoX autox AutoX(targetloss, train_nametrain.csv, test_nametest.csv, id[id], pathdata/tabular-playground-series-aug-2021) sub autox.get_submit() sub.to_csv(submission.csv, indexFalse)这段代码做了什么我们来拆解一下初始化 AutoX 对象你只需要告诉它四件事——目标列target、训练集文件名train_name、测试集文件名test_name、主键id以及数据所在的path。调用get_submit()这一步是整条自动化 pipeline 的开关它在内部依次执行了读数据、合并 train/test、列类型自动识别、数据预处理、特征工程、特征合并、训练测试划分、特征过滤、模型训练与调参、模型融合、模型预测。跑完后submission.csv就是你可以直接提交的结果文件。整个流程你只写了两行业务代码剩下的全部交给 AutoX。如果你想看看训练过程发生了什么在初始化时传一个verbose参数即可控制台会打印出每一阶段的进度。 小提示如果你使用的是分类问题get_submit同样适用AutoX 会自动根据标签的类型判断任务性质如果数据集是时间序列仓库还提供了get_submit_ts方法底层会走一套针对时序数据的专门流程。进阶实战多表数据挖掘中的自动拼表与特征工程现实中的表格数据往往不是一张大宽表而是一张主表 多张从表的关系型结构比如电商场景下主表是订单从表是用户信息、商品信息、浏览日志。手动拼表、手工构造聚合特征是新手最头疼的部分。AutoX 自动机器学习工具用一份relations配置解决了这个问题。以 IEEE 欺诈检测比赛为例见仓库根目录的run.py你只需要这样声明两张表的连接关系relations [ { related_to_main_table: true, left_entity: train_transaction.csv, left_on: [TransactionID], right_entity: train_identity.csv, right_on: [TransactionID], type: 1-1 } ] autox AutoX(targetisFraud, train_nametrain_transaction.csv, test_nametest_transaction.csv, id[TransactionID], pathpath, relationsrelations)在内部AutoX 会根据type字段支持 1-1、1-M、M-1、M-M 四种关系自动选择拼表方式并自动为从表构造出聚合统计特征。比如对于 1-M 关系它会自动生成每个用户对应的行为次数、金额均值、金额最大值等特征这些特征恰恰是竞赛里最能上分的东西。relations里的关键字段含义如下字段作用related_to_main_table该关系是否与主表相关left_entity / right_entity左右两表的表名left_on / right_on左右两表的拼表键type连接关系类型1-1 / 1-M / M-1 / M-M想看看哪些特征最重要get_top_features 一步到位模型跑完只是第一步很多业务场景还要求你回答为什么是这个结果。AutoX 提供了get_top_features方法可以一键输出 top K 个重要特征from autox import AutoX autox AutoX(targetloss, train_nametrain.csv, test_nametest.csv, id[id], pathdata/your_dataset) autox.get_top_features(topk20)这个方法返回前 20 个对预测贡献最大的特征名方便你快速理解模型学到了什么规律也能帮你判断特征工程的方向是否正确。比如在 Allstate 理赔数据上运行这个函数后你能立刻看到哪些特征主导了最终预测从而有针对性地做后续优化。从实验到生产用 autox_server 把模型部署上线比赛跑完了接下来是更现实的问题模型怎么上线autox_server就是为此设计的部署模块。它把整个方案分成训练和预测两个阶段Step 1训练并保存方案from autox import AutoXServer autoxserver AutoXServer(is_trainTrue, server_namebank, data_info_path./bank/data_info.json, train_set_path./bank/train_data) autoxserver.fit() autoxserver.save_server(save_path./save_path)Step 2加载方案并预测from autox import AutoXServer autoxserver AutoXServer(is_trainFalse, server_namebank) autoxserver.load_server(save_path./save_path) pred autoxserver.predict(test_set_path./bank/test_data)这里的data_info.json是一个标准的配置描述文件里面声明了主表、各实体表、列类型、表关系和时间预算等信息。仓库的autox/autox_server/demo/bank/目录下有完整的银行客户逾期预测案例对应的 notebook 在autox_server/demo/bank/bank_train.ipynb和bank_test.ipynb照着跑一遍就能理解整个部署链路。不止表格NLP、推荐、视频也能自动机器学习如果你以为 AutoX 只擅长表格那就低估它了。前面提到的框架图里另外三个子模块同样值得关注autox_nlp自动处理文本列比如商品描述、用户评论。NLP 特征工程模块在autox/autox_nlp/feature_engineer/nlp_feature.py支持 TF-IDF、词向量等常见文本特征化手段。autox_recommend完整的推荐系统自动机器学习流程涵盖召回流行度、ItemCF、w2v 内容召回等和排序特征工程 LightGBM ranker两大环节。架构见下面的框架图演示 notebook 在autox_recommend/demo/目录下比如 HM 个性化推荐、MovieLens 电影推荐案例autox_video视频分类自动机器学习框架处理视频解码、自适应采样、数据增强到模型训练的全流程曾帮助团队拿到 ACM Multimedia 视频分类任务的冠军。框架结构如下对初学者来说先用好autox_competition这一个模块就已经能覆盖绝大多数表格数据挖掘需求当你慢慢接触文本、推荐、视频数据时再按需深入对应的子模块即可。想探索更多内部实现核心源码都集中在autox/目录下特征工程在autox_competition/feature_engineer/模型与融合在autox_competition/models/和autox_competition/ensemble/每一处都有清晰的模块划分和注释。常见问题排查遇到报错别慌新手最容易遇到的几个问题我帮你提前踩过一遍报错/现象解决办法安装时报依赖冲突优先用git clonepip install -e .的方式让 setuptools 自动解决依赖特征列全是中文名报错检查 pandas 版本AutoX 对列名有类型处理建议将列名统一为英文预测结果列顺序不对get_submit返回的结果行序与 test.csv 完全一致直接 to_csv 即可不要手动排序数据量太大跑得慢特征工程可配置化可以在文档中关掉部分耗时操作或只保留核心特征模型效果不理想检查是否传了metric参数如metricmaeAutoX 会自动选择对应任务的评估方式写在最后你的下一个数据挖掘任务可以这样开始回顾这一路我们从一个深夜面对数据无从下手的场景出发完成了 AutoX 自动机器学习工具的安装、两行代码跑通回归任务、多表数据的自动拼表、重要特征提取、模型部署上线还顺带了解了 NLP、推荐和视频三个扩展模块。整个过程没有手工写任何特征工程代码也没有手动调过任何一个超参数。现在你的下一个数据挖掘任务可以用下面这个清单快速启动把 train 和 test 数据放入一个目录确认主键列和目标列初始化 AutoX 对象写上target、train_name、test_name、id、path五个参数调用get_submit()拿到预测结果用get_top_features()观察模型学到了什么如果需要上线把同一套流程迁移到autox_server。数据挖掘的门槛很多时候不是模型理论而是那些琐碎又必需的工程步骤。把时间留给真正需要思考的地方这正是 AutoX 存在的意义。【免费下载链接】AutoXAutoX is an efficient automl tool, which is mainly aimed at data mining tasks with tabular data.项目地址: https://gitcode.com/gh_mirrors/aut/AutoX创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考