前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开启机器学习懒人模式——AutoGluon小试某数据挖掘训练赛

开启机器学习懒人模式——AutoGluon小试某数据挖掘训练赛

作者头像
luanhz
发布2022-09-19 11:35:12
5790
发布2022-09-19 11:35:12
举报
文章被收录于专栏:小数志小数志

近来在浏览DataCastle竞赛平台时,注意到了上面挂载的一些数据挖掘训练赛题目,因为是定位于训练赛,主要用于帮助初学者快速熟悉和练手机器学习技能,所以赛题难度相对基础,也没有提供实质性的竞赛奖励。

正好,前期个人在调研一些AutoML相关工具,其中较为好用的一个是AutoGluon,源于亚马逊出品,华人大佬李沐参与研发设计,并曾发文感慨“三行代码击败99%数据科学家”,“调得一手好参的时代要过去了”,可谓攒足了噱头。

网络图片

所以,就刚好拿这个训练赛的题目来检验一下AutoGluon的能力。

赛题数据说明:

数据主要包括企业客户样本信息。数据分为训练数据和测试数据,分别保存在train.csv和test_noLabel.csv两个文件中。字段说明如下: (1)ID:编号 (2)Contract:是否有合同 (3)Dependents:是否有家属 (4)DeviceProtection:是否有设备保护 (5)InternetService:是否有互联网服务 (6)MonthlyCharges:月度费用

(7)MultipleLines:是否有多条线路 (8)Partner:是否有配偶 (9)PaymentMethod:付款方式 (10)PhoneService:是否有电话服务 (11)SeniorCitizen:是否为老年人 (12)TVProgram:是否有电视节目 (15)TotalCharges:总费用 (16)gender:用户性别 (17)tenure:任期年数 (18)Churn:用户是否流失

训练集数据样例:

注意到,该数据集不存在缺失问题,但多数特征字段都是类别型,包括分类标签也未转化为0/1。但应用AutoGluon的便利之处就在于,该框架可以自动完成数据预处理、特征工程、模型选择、模型调参、模型交叉验证、模型集成等必要环节,并最终给出最优方案。而且这些操作仅需简单调用sklearn中.fit()和.predict()的API接口风格即可。

下面给出核心代码:

代码语言:javascript
复制
# 调包
from autogluon.tabular import TabularDataset, TabularPredictor
# TabularDataset是一个继承pandas.DataFrame的数据集类
train_data = TabularDataset('train.csv').drop(columns="ID")
test_data = TabularDataset('test_noLabel.csv').drop(columns="ID")
# 自动模型训练
predictor = TabularPredictor(label='Label').fit(train_data=train_data)
# 模型预测
y_pred = predictor.predict(test_data)

当然,想具体了解这个TabularPredictor模型背后实际训练了哪些模型、效果如何以及最优方案,可以简单的调用learnboard()函数,并得到如下结果:

从中可以看出,AutoGluon训练了13个单模型,并完成了一个集成模型,其中集成模型是最优方案。提前指出一个细节:CatBoost在所有单模型中表现最好,仅次于集成模型。

把这个预测结果提交到DataCastle平台,系统评分0.7972,大概能排到30名左右。这是未加任何调试,仅使用了几行傻瓜调包代码的结果,应该说还是不错的。

当然,为了横向对比其他结果,我也尝试了一下另一个AutoML框架TPOT以及三大集成学习工具XGB、LGB和CAB,发现CatBoost效果居然可以硬刚AutoGluon,而且更重要的是CatBoost也支持对类别型特征以及缺失值的处理等,所以也相当于是具有了一定的AutoML能力。此外,我又简单的对几个模型的输出结果做了进一步的融合,并提交到竞赛平台,大概只有一种情况下取得更好的成绩,达到了0.7988,在当前平台上总排名为19,目前平台已提交队伍数约为200,也即这份预测结果大概能占据10%的水平。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小数志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档