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

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

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


640.png

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


640.png


网络图片


所以,就刚好拿这个训练赛的题目来检验一下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:用户是否流失


训练集数据样例:


640.png

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


下面给出核心代码:


# 调包
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()函数,并得到如下结果:


640.png


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


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


640.png


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



目录
相关文章
8月前
|
机器学习/深度学习 人工智能 算法
04 机器学习 - 数据挖掘与机器学习导论
04 机器学习 - 数据挖掘与机器学习导论
114 0
2月前
|
机器学习/深度学习 数据采集 数据可视化
基于数据挖掘与机器学习揭秘脱发主因
基于数据挖掘与机器学习揭秘脱发主因
33 0
2月前
|
机器学习/深度学习 自然语言处理 算法
百度2024校招机器学习、数据挖掘、自然语言处理方向面试经历
百度2024校招机器学习、数据挖掘、自然语言处理方向面试经历
173 2
2月前
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】关联模式评估方法及Apriori算法超市购物应用实战(超详细 附源码)
【数据挖掘】关联模式评估方法及Apriori算法超市购物应用实战(超详细 附源码)
116 0
2月前
|
机器学习/深度学习 资源调度 数据挖掘
数据挖掘与机器学习中Matplotlib绘图模块详细讲解(超详细 附源码)
数据挖掘与机器学习中Matplotlib绘图模块详细讲解(超详细 附源码)
78 0
9月前
|
机器学习/深度学习 数据采集 算法
【数据挖掘和机器学习技术】数据挖掘和机器学习相关的算法和模型,如聚类、分类、回归、神经网络
【数据挖掘和机器学习技术】数据挖掘和机器学习相关的算法和模型,如聚类、分类、回归、神经网络
119 0
12月前
|
机器学习/深度学习 设计模式 JavaScript
12月前
|
机器学习/深度学习 存储 分布式计算
Hadoop生态系统中的机器学习与数据挖掘技术:Apache Mahout和Apache Spark MLlib的应用
Hadoop生态系统中的机器学习与数据挖掘技术:Apache Mahout和Apache Spark MLlib的应用
315 0
12月前
|
机器学习/深度学习 人工智能 算法
数据挖掘18大算法实现以及其他相关经典DM算法:决策分类,聚类,链接挖掘,关联挖掘,模式挖掘。图算法,搜索算法等
数据挖掘18大算法实现以及其他相关经典DM算法:决策分类,聚类,链接挖掘,关联挖掘,模式挖掘。图算法,搜索算法等
102 0
算法 数据挖掘 Python
数据挖掘与关联规则:发现隐藏在数据中的模式
数据挖掘是从大规模数据集中发现有价值的信息和模式的过程。其中,关联规则是一种常用的数据挖掘技术,它可以帮助我们发现数据中的相关性和潜在规律。在本文中,我们将介绍关联规则的概念、算法以及如何使用Python实现关联规则的挖掘。
252 0