欢迎来到爱学习爱分享,在这里,你会找到许多有趣的技术 : )

数据科学家为什么不想工作

开发者头条 835℃

3月23日,TDU在中国人民大学举办了“数据科学学习规划”活动,人大副教授郭绍俊老师、TDU执行校长杨慧女士以及TalkingData数据科学家殷尧为大家带来了精彩分享。

今天为大家分享的是TalkingData数据科学家殷尧的分享,介绍了数据科学项目的流程以及一些个人学习成长的经历。

数据科学到底在做什么


数据科学是一个包含很多技能的一个学科,以我自身的经验来看,数据科学中最重要的技能是编程。坦白讲大家做技术的本质还是程序员。


这听起来可能和大家的想法有一点出入,大部分人之前接触到数据科学课程也好,相关信息也好,听到最多的应该是算法模型这个词,相应的也会有很多理论。


但我们在工业当中,在实际的操作当中,算法模型到底占了多少工作量呢?下面简单的举例说明一下。


假设建立模型是设计烹饪一道以龙虾为原材料的菜。如果你是这个餐厅的大厨,由你来设计的话,你可能觉得餐厅会准备好你想要的食材、配料、厨具等,你只需要设计就可以了。


大部分求职者和数据科学家都是这么想的。所以如果去网上搜索一下,你会发现国外80%-90%的人都在抱怨说他不想在公司上班—为什么什么活都要我自己干?


我们看一下到底他们要自己干什么活。


现在要做菜,但是我们没有原材料–龙虾,所以我们第一步要去抓龙虾。对应到数据科学项目中,就是我们要自己去爬取数据。


这一步大家不要觉得很简单,在技术上确实是很简单,但是这个过程很漫长。如果你编程能力不强的话,加上网速不好、网页多等等外部原因,这一步是要做非常久的。但是如果技术到位的话,不到一天就可以完成。


捕完龙虾之后我们要做清理。把捞回来龙虾里面的小鱼,小石头甚至垃圾都清理干净,因为我们只要龙虾。反映在技术上就是当我们拿到网页数据,里面是有各种各样乱七八糟的信息的,但我们只要有用的那部分。


接下来我们要做过滤。剔除龙虾中有一些断胳膊少腿或者死掉的,这些我们也都不要。


在收集数据的过程中这一步也是很关键的。大部分收到的数据质量都是参差不齐的,有乱码或者是空值,这些我们都不要。

我们拿到处理好的龙虾之后,接下来要剥壳把虾肉取出来。对于我们的模型来说,这一步就是要把原始的数据进行一些处理,再下一步才是大家听到比较多的特征工程。模型要求你给的是一个矩阵,那么你只能给他一个矩阵,原始的数据它处理不来,所以我要把这些数据变成矩阵。


到这一步才是你真正开始作为大厨,去做你所认为的你自己的工作。

你开始用你的数据训练你的模型,也就是做菜,你觉得这一部分很有趣,是你真正的本职工作,但你会发现这一步其实基本上没做什么事情,因为你只是让模型自己去学习。机器学习模型的本意就是不要任何人工干预,只让它跑就可以了。


跑完之后并没有结束。其实很多数据科学家们都还是认为跑完算法模型就结束了,实际上我们还有其他任务。也就是实施,要看模型效果怎么样。


大部分情况下,如果运气好,跑的效果刚好符合产品经理的要求,符合工业上的要求就可以上线了。但是现实中,大部分的情况是不过关的,所以需要各种调试。


这一步是要花费非常多时间的。验证之后要真正在工业上上线、服务化才是最后一步。其实上线一个模型,跟上线一个网站或APP没有太多的差别。都要符合工业的性能、开销这些方面的要求。之前所有的过程,从爬取、清理到特征工程等都是代码写出来的,最后一步要把这些代码串联起来变成例行化的任务,而且还需要不停更新维护,这才是完整的一个流程。


在整个过程中,大家可以猜一下算法模型这一步花的工作量是多少?假设整个过程花了一周的话,我可以很明确的说算法模型这一步不会超过两个小时。80%-90%甚至更多时间都是花在前面的。


其实这不是一个很理想的情况,也不是很科学,但是现实就是这样。你希望有个团队在支持你,配合你,但是大部分公司都是很很缺人的,大家任务都很紧。你要爬数据,去找工程团队,排期要到两个月之后了,如果我不会爬虫技能的话,我就只能等两个月,我会做就可以自己来。后面的工作也是一样。


当我们谈论Python的时候,我们谈论的是它的技术栈


这里面不得不说到编程语言,数据科学中目前最流行的语言是Python。

Python语言本身非常简单的,非常容易上手,但是有很多语言也很简单,也很容易上手,为什么python的排名可以上升?因为python有很多的第三方开源库,是这些开源库让python的社区像滚雪球那样越来越强大。可是你知道吗,这些开源库大部分都是通过C/C++来完成的,都是在拥有丰富知识的同时,又有强大编程技能的那部分高手开发的。

有时候我们在用python的时候,如果用一般的编程思路,那么很容易就会开发出跑的太慢的程序,千万不要觉得这是正常的,这是不正常的,是因为你的水平不够造成的,要学会善用这些开源库和C/C++。


在此推荐三位非常卓越的人物,大家感兴趣可以去详细了解他们的经历和作品,希望能在技术道路的方向上对大家有所启发。


京东数字科技首席数据科学家郑宇博士,是城市计算领域的先驱和奠基人,他曾说过,他读博士的时候经常想使用非常高深复杂的方法,觉得这样才是好的,后来他工作之后才发现,方法要越简单越好,越简单的方法反而更有效。


上个月刚刚加入阿里任技术副总裁的贾扬清,非常重视开发效率,在博士期间就开源了深度学习框架Caffe,对整个深度学习领域起到了极大的推动作用。


KDDcup 2012的冠军陈天奇,陆续开发了SVDFeature,XGBoost,cxxnet等著名机器学习工具,并联合发起了最大开源分布式机器学习项目DMLC,推动着深度学习的发展,吸引更多人在社区中贡献,从而在工业界进行应用落地。


小结

这个行业、这个技能其实没有各位想象的这么强大。并不是把东西丢给机器,机器就会自动给你非常好的结果,不好意思,目前还没到这个阶段。高手和一般人的差别就在于,一般人发现模型效果不好,能做的就是选择模型,对数据做各种变换(特征工程的一种),但是高手却可以从模型的训练结果做误差分析,推断出问题在哪里;可以跳出问题本身,从问题的外部去寻找更合适的数据资源,甚至是改进算法模型本身。学会机器学习技术算法模型是很重要的,但是知道它们并不能让你成神。


编程并不只是写写代码,而是用这样一种心智模式去解决商业问题。这正是数据科学的魅力。

参考资料:

郑宇博士介绍

https://baike.baidu.com/item/%E9%83%91%E5%AE%87/1315622

陈天奇个人介绍

https://homes.cs.washington.edu/~tqchen/

贾扬清介绍

https://baike.baidu.com/item/%E8%B4%BE%E6%89%AC%E6%B8%85/23360837?fr=aladdin

相关新闻

http://tech.163.com/17/1117/10/D3EH6LS40009987P.html

https://36kr.com/p/5181916

转载请注明:爱学习爱分享 » 数据科学家为什么不想工作

喜欢 (0)or分享 (0)