开启机器学习懒人模式——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%的水平。



目录
相关文章
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】金山办公2020校招大数据和机器学习算法笔试题
金山办公2020校招大数据和机器学习算法笔试题的解析,涵盖了编程、数据结构、正则表达式、机器学习等多个领域的题目和答案。
99 10
|
3月前
|
机器学习/深度学习 人工智能 搜索推荐
【数据挖掘】2022年深信服科技机器学习工程师笔试
总结了深信服科技机器学习工程师笔试中的几道题目及其解答,涉及数据结构、机器学习评估指标和过拟合缓解方法等内容。
93 1
|
2月前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
3月前
|
机器学习/深度学习 存储 人工智能
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
本文是关于2022-2023年知能科技公司机器学习算法工程师岗位的秋招笔试题,包括简答题和编程题,简答题涉及神经网络防止过拟合的方法、ReLU激活函数的使用原因以及条件概率计算,编程题包括路径行走时间计算和两车相向而行相遇时间问题。
74 2
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】百度机器学习-数据挖掘-自然语言处理工程师 历史笔试详解
文章汇总并解析了百度机器学习/数据挖掘工程师/自然语言处理工程师历史笔试题目,覆盖了多分类任务激活函数、TCP首部确认号字段、GMM-HMM模型、朴素贝叶斯模型、SGD随机梯度下降法、随机森林算法、强连通图、红黑树和完全二叉树的高度、最长公共前后缀、冒泡排序比较次数、C4.5属性划分标准、语言模型类型、分词算法、贝叶斯决策理论、样本信息熵、数据降维方法、分箱方法、物理地址计算、分时系统响应时间分析、小顶堆删除调整等多个知识点。
42 1
【数据挖掘】百度机器学习-数据挖掘-自然语言处理工程师 历史笔试详解
|
3月前
|
机器学习/深度学习 人工智能 算法
【数据挖掘】2022年2023届秋招奇虎360机器学习算法工程师 笔试题
本文提供了奇虎360公司2022年秋招机器学习算法工程师岗位的笔试题内容,包括选择题和编程题,涉及概率统计、数据结构、机器学习、计算机组成原理等多个领域。
92 5
|
3月前
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】2022年2023届秋招宏瓴科技公司机器学习算法工程师 笔试题
关于宏瓴科技有限公司2022-2023年秋招机器学习算法工程师岗位的笔试题目及作者个人对部分题目的解答尝试,涉及贝叶斯误差和贝叶斯最优分类器的概念、贝叶斯误差的重要性和估算方法,以及如何有效利用训练集和测试集进行深度学习模型训练的数据集划分策略。
55 4
|
3月前
|
机器学习/深度学习 自然语言处理 算法
【数据挖掘】百度机器学习-数据挖掘-自然语言处理工程师 2023届校招笔试详解
百度2023届校招机器学习/数据挖掘/自然语言处理工程师笔试的题目详解
80 1
|
4月前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
6月前
|
机器学习/深度学习 数据采集 数据可视化
基于数据挖掘与机器学习揭秘脱发主因
基于数据挖掘与机器学习揭秘脱发主因