《阿里云天池大赛赛题解析(机器学习篇)》导读-阿里云开发者社区

开发者社区> 朱祺> 正文

《阿里云天池大赛赛题解析(机器学习篇)》导读

简介: 《阿里云天池大赛赛题解析(机器学习篇)》导读
+关注继续查看

1 前言

作为大数据行业的从业人员和数据分析的爱好者,长期关注于kaggle和天池的比赛情况,也慢慢的见证了天池平台的成长。得到天池团队赠送的《阿里云天池大赛赛题解析(机器学习篇)》一书后,花了2个月的时间仔细读了一遍,可以用爱不释手来形容。因此,有了写一篇导读将这本书介绍给对于大数据算法有兴趣的朋友们。

2 全书概览

全书的结构围绕以下4道赛题组成:
(1)工业蒸汽量预测
(2)天猫用户重复购买预测
(3)O2O优惠券预测
(4)阿里云安全恶意程序检测
4道赛题所采用的算法模型都是机器学习算法,也符合本书的定位,没有涉及到深度学习的领域,实际上从近期天池平台的赛题设置包括kaggle的赛题设置可以发现,针对图像处理相关赛题的比重正在逐步变多,个人感觉是和现实生活包括工业场景中数据异构的情况占绝大部分有关。因此,如果纯粹的把算法的使用或者赛题的设置限制在结构化数据,则会对算法的落地产生麻烦,最终会造成因比赛而比赛,为了获奖而设计算法的情况,这明显不是天池比赛的初衷。而本书之所以会单独将机器学习算法赛题集结成册,个人感觉是成书的目标不仅仅是赛题的解读或者获奖选手的代码集锦,而是有教学目的的,这个从书中每道题的讲解顺序中也可以发现。

因此,从全书的结构角度虽然很可能乍一看觉得是讲了4道题的解答方法,但是4道题的代码解释明显用不了那么大的篇幅。仔细的看下去,就可以发现,其实是目前机器学习教科书中很特殊的一种写作方式,以赛题为核心,先以理论切入,后将理论结合赛题说明思路,最后是代码的解释。

由于机器学习的算法涉及到一些数学方面的知识(当然数学要求比深度学习略低),仅仅看理论的教材很容易让初学者有退却的心理,面对一大堆的公式无所适从,更不知道这些算法在实际过程中如何应用,而看论坛里各位大神的代码,又是没有理论解释的,天池团队的这本书正好填补了中间这个空白,因此也是让我爱不释手的原因。

3 本书细分章节的特点

本书的4道题,每道的细分章节都相似,其实就是整个数据科学家或者数据分析师工作的流程,当然缺少了数据采集的环节,原始数据作为赛题本身的一部分已经预先提供。

收到数据以后,之后的步骤就是数据概览(书里叫数据探索)、特征工程、模型训练、模型验证和作为提高的模型优化,当然也可能全部流程完成后发现瓶颈其实不在模型和调参,而在于特征工程没有做好,这个情况其实我觉得在进入一个陌生的领域时会经常发生,所以特别面向工业领域的算法设计,了解工艺生产流程是非常有必要的,甚至可以直接决定特征工程的结果。

数据探索方面,其主要的目的是对于数据集及数据的分布情况有一个全面的了解。如果对于机器学习的算法原理比较熟悉的话,在这个阶段已经会有意向中可能会采用的算法。书中,天池团队先进行了本阶段所需要理论知识的介绍,这一个部分中,所需要的理论知识基本属于统计范畴和可视化范畴,所得出的结果也是描述型的。从宏观上对于数据的分布有一个了解,细节上知道数据集的缺失值情况、各个维度间的相关性以及作为赛题来说训练集和测试集的关系。

特征工程方面,这个步骤其实占了全局绝大部分的工作量,比较繁琐,又不得不做,因为自然渠道收集到的各种数据多多少少存在问题。事实上,数据中台的价值一直被通俗的概括为数据驱动,看似宏观但从特征工程方面就可以准确理解什么是数据驱动。要驱动形形色色的功能业务,必然需要面对特定场景的数据,而采集的原始数据基本上都不能直接作为输入。因此,特征工程的任务就是将杂乱的原始数据整合成生产资料的过程。书中介绍的特征工程内容是全书的一个重头戏,也是其他参考书中比较少涉及到的领域,毕竟介绍模型和算法的参考书非常多,而包括降维、异常值检测、缺失值填充则只有全流程经历过并依靠实际的数据集处理展示才能讲明白。

模型的训练部分,书中提供了同一场景多种模型的解题思路,也是从算法的原理讲起,但是并不偏向纯数学,个人感觉,如果是面向工程的,足够,如果偏向算法原理改进等学术研究的,则还需要结合其他更偏重理论研究的参考资料,本书在这方面着眼于机器学习的面,并不过于纠结某个点。4道题的模型介绍基本覆盖了常用的机器学习算法,和kaggle同类题采用的算法也差不多,仔细看一遍能够了解整个领域的算法模型组成和具体的使用场景。

模型验证方面,主要由两部分的内容组成,即验证指标的选择和调参,验证指标方面书中并未完全拘泥于赛题的验证指标,对于不同算法所采用的验证指标介绍是非常详细的。调参方面,这其实是一个迭代过程,手工调参高手必然是结合了对算法原理的精通和大量的实际调参经验,而自动调参则是在经验法则下的反复尝试。

4 总结

总体这本书是一本非常好的教学读物,不可以单纯的将其视为赛题的归纳,天池团队在赛题之外全流程的介绍了数据分析和数据挖掘的过程,各个步骤的介绍都非常详细。平时作为备查的资料也相当不错,也非常期待后续有深度学习类的相同著作问世。

作者:朱祺 高级工程师 国际电气电子工程师协会IEEE高级会员 英国工程技术学会MIET 阿里云MVP

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
weex高性能list解析
[weex](https://alibaba.github.io/weex/doc/tutorial.html)是alibaba出品的用于移动端跨平台开发界面的框架,类似react-native。 而ListView在移动端界面的开发中是非常重要的组件,无论是H5还是react-native都因为ListView的低性能而饱受非议。那么到底是什么样的实现让weex能拥有与众不同的ListView
8999 0
一文解析统计学在机器学习中的重要性
本文介绍为什么统计对于通用应用和机器学习如此重要,并大致了解各种可用的方法。
1138 0
Cassandra源码解析系列启动模块
Cassandra源码解析之初始化
1082 0
boost之program_options库,解析命令行参数、读取配置文件
一、命令行解析 tprogram_options解析命令行参数示例代码:   [cpp] view plaincopy   #include    using namespace std;      #include    namespace po = boos...
1182 0
fastjson解析json字符串,key缺少双引号导致下游服务无法解析
背景说明 在使用fastjson 1.2.60版本将对象转化为json字符串时,为处理Map值为null的情况,采用了WRITE_MAP_NULL_FEATURES属性,但该属性解析出来的key中缺少双引号,在key包含特殊字符时,如“-”和“:",下游服务在进行反序列化时出现无法解析的错误,从而出现问题。
3036 0
使用Keras进行深度学习:(三)使用text-CNN处理自然语言(上)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 上一篇文章中一直围绕着CNN处理图像数据进行讲解,而CNN除了处理图像数据之外,还适用于文本分类。
1461 0
使用Keras进行深度学习:(三)使用text-CNN处理自然语言(下)
欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 在上一篇文章中,已经介绍了Keras对文本数据进行预处理的一般步骤。
1771 0
机器学习实战:基于概率论的分类方法:朴素贝叶斯(源码解析,错误分析)
按照惯例,先把代码粘到这里 from numpy import * def LoadDataSet(): postingList = [['my', 'dog', 'has', 'flea', 'proble...
835 0
+关注
朱祺
阿里云全球MVP(最有价值专家) 阿里云计算ACP 阿里大数据ACP
62
文章
12
问答
来源圈子
更多
阿里云最有价值专家,简称 MVP(Most Valuable Professional),是专注于帮助他人充分了解和使用阿里云技术的意见领袖阿里云 MVP 奖项为我们提供了这样一个机会,向杰出的意见领袖表示感谢,更希望通过 MVP 将开发者的声音反映到我们的技术路线图上。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载