本文是作者在赤兔APP“数据挖掘”小组内在线分享的记录。
分享主题:初入门径的Data Miner
分享时间:2016年4月14日晚8:00-9:00
分享地点:赤兔“数据挖掘”小组,线上
分享嘉宾:邓羿,2014年毕业于广西大学,期间在加拿大Nipissing University做过半年交换生。目前在深圳工作,两家公司都是电商类公司。
分享内容大纲:
一、入门经历(大学时期)
1. 专业背景
2. 数学建模经历
3. 小总结:
(1)跨界,接触数据?永远不会太晚
(2)数学模型的可解释性?重要
二、工作经历
1. B2C外贸电商:强大的BI多维数据库
2. B2B苗木电商平台:传统行业对互联网+的尝试
三、工具总结
1. python与R
2. Excel:业务人员的数据利器
四、近期展望
1. 开放数据、数据平台、数据竞赛
2. 慕课
1. 入门经历
我的本科专业叫公共事业管理,其实是偏文科的社科专业,但好在高数三门基础课:线性代数,微积分,概率论,都有开设。
很多人都奇怪为什么我这专业会最后做数据码农。当年大学时,我个人的兴趣在定量分析,如经济学、政治学中的模型。当时感兴趣的方向叫公共选择理论,是运用经济学形式的行为模型分析政治学的。
题外话是当年如果申请留学顺利,或许现在还在继续政治学方向的研究。当然最后走上了数据的道路,倒也是不错的造化。
而且我目前依然考虑是否几年后会会学校继续做社科类的事情,我对社科问题依然很感兴趣,而且数据科学本身是跨界的新领域,在很多地方都能用上。
2. 数学建模经历
与数学建模结缘是我数据之旅的开始。一共参加过两次美国数模赛,那两年社交网络问题比较热门。其中结果较好的一次是M奖,国内称一等奖,大概是前15%的比例。
当时的问题是社交网络的分析问题,最基本的子问题的寻找社交网络中最重要的人。那个关系网如下。
就是在这样一个关系网络中,计算出“最重要的人”。 这是无向图。后面的子问题还包括有向图。
当时我们采用了较成熟的算法,叫灰色关联+墒权法。但结果较好的原因我认为是特征和结果的可解释性。
比如在特征上,我们对网络的特性,度中心度,解读为认识人越多的人,重要性越高。如中介中心度,解读为必须通过A人介绍才能认识其他的人,人A的重要性高。
这些都是在常识上可解释的,而且在结果上,我们也可以通过这些特征,解释为什么我们计算出来的这些人最重要。我认为这些带来了较好的结果。
所以总结一下:
a. 跨界,接触数据?永远不会太晚。
我本人的专业与计算机,统计无关,但依然由于一些经历接触了数据,开始上道,而且越发觉得兴趣所在,所以对未入门或想入门的朋友,其实开始永远不会太晚。
b. 数学模型的可解释性?重要。
刚已经提到数模的可解释性。而且延伸一些,如处理图象识别时,普遍认为是黑箱的神经网络,各层的权重可以作为图象画出,认为是“学习”到的物体一部分。
又如支持向量机常用的核方法,也可以解释为对图象,或数据的变形。
个人认为,这些都属于可解释性。因为无论是研究还是业界,个人认为有理有据,可解释,makesense还是很重要的一环。
3. 工作经历及感想
3.1 B2C外贸电商:强大的BI多维数据库
这是我的第一家公司,属于B2C平台。模式与京东类似。我在那工作了一年半时间。从开始接触运营业务,到数据支持运营,再到推荐算法上的尝试。
其实最大的体会不是推荐,计算等算法上的,而是BI数据库对电商业务的支持力度。因为B2C电商的模式, 重运营,多活动。不断希望刺激消费者,冲动消费。大家在各B2C网站首页上看到的广告,活动等,后面都有运营人员的身影。因此跟踪活动效果,跟进有效行为,放弃无效行为就非常重要。
我们作为数据人员,当然希望用算法来做监控体系,直接反馈运营人员。希望直接反馈,直接指导运营活动。但这在实现上是有难度的,效果待考量的。 所以退而求其次,让业务人员了解每天发生了什么就非常重要且有效。
前公司的BI体系,在多个维度下,让运营人员自助的通过工具进行查询,不需要任何技术能力。在很大程度上,让普通的运营成为数据运营。这对公司运营能力的提升带来了很好的正面作用。
而且由于BI多维的特性,完善的BI体系,几个数据人员或高层领导都是很难监控全面的。而将各维度放到各个业务线中开展,反而能更好监控到异常与趋势。因此,BI的工具我个人认为是很适合重运营类的公司。
3.2 B2B的苗木电商平台(我目前所在公司)
目前所在的公司是初创公司,人员较少,所以更需要多面手的角色。而且由于是面对传统行业的新的改造,所以很多业务需求并不稳定,变动较大。所以借此环境差异,我比较下两个计算语言。python与R。
我在前公司用得较多的是R语言,而目前公司基本确定以python为主。
由于前公司数据人员稍多,而且本人的方向较明确,主要在数据分析和尝试模型原型,而且数据源主要来自规整的关系数据库,因此R语言是比较合适的。
但目前人员较少,而且不仅对计算业务有需求,还包括爬虫,web框架等等事情。因此python作为通用语言就有很大优势。
而且在计算上,pandas很大成都上吸收了R的数据框结构的优点。总体来说python与R都是不错的数据语言,当然还有matlab在纯矩阵运算上也不错,但个人觉得不太适合公司场景,且有版权问题。
以上是对python,R的比较。接下来想谈一下excel。
个人对excel还是挺偏爱的,尤其在数据计算出一些中间结果后,在excel中进行透视表与条件格式等操作,观察数据情况。而且excel很大的作用在于,给予不熟技术的业务人员以数据能力。比如通过透视表来对接BI,实现自助查询。
4.近期的展望
一是开放数据。
近两年开放的数据越来越多,如国家统计局的新版网站,谷歌publicdata等,以及一些数据竞赛,kaggle等。都是很不错的数据来源。我本人对社会类的开放数据很感兴趣,认为如果能找到比较好的切入点,解决一些问题,其实值得做一些分析和开发。
二是近年来兴起的慕课平台,如edx,coursera等。
数据科学课程有很多,而且内容都不错,值得有兴趣的朋友尝试下。
5. 提问环节
Q1: 能否再讲个实际的案例,来解释一下入门需要的基础知识。
A1: 好的。我个人认为首先计算语言当然需要掌握一门,Python,R,matlab等等都可以,工程实现能力很重要。 其次是数学的基础,线性代数和微积分是比较重要的。然后才是一些模型,算法等。
Q2: 我是做测试的,没有coding经验。需要从海量测试结果数据中提取出少量有用的信息,可否指点一下?
A2: 我觉得得定义什么是“有用”吧。比如:输入数据、输出数据、函数调用序列。
抱歉,对测试的场景不太熟。 如果是找异常值的话,还是得做一些特征,我猜比如说调用次数,输入输出的差异等等。
Q3: 可不可以问个实际问题,可能离题:我们公司在做一个绩效考核的信息系统,其实想要的功能比较简单吧,就是一大批指标,每个指标几个参数,参数不同的人来填,然后要让电脑自动算出结果。信息管理部门在用某种程序语言在写这个系统,我是觉得不能把数据的计算和存储放在MSoffice软件上,可行?他们编程的好处是什么?
A3: 具体场景不确定,但我从数据角度看,如果放office,那么存储调用都是一个问题,但程序一般调用数据库,这样能保证数据不会出错。而且其实excel可以查询数据库,可以了解下。
Q4: 您好,我想问一下逻辑回归分类,遇到样本数据不平衡,例如上网人群年龄预测类的,该如何处理?谢谢。
A4: 你好,就我了解,可以不单单使用accuracy命中率,在评价训练结果上还可以加入precision和recall,用f2指标做评价。