作为一个全新的领域,数据科学的飞速发展让人激动。数据科学在带来巨大经济效益的同时,人们在数据科学技术方面的知识沟也逐渐出现,这意味着更多的人需要试图了解和学习数据科学。
“我该如何学习数据科学”这个问题是初学者需要迈过的第一个门槛。大家在解决这个问题的时候,通常采用的办法是给自己安排一大串的课程去学习,当然还有一大摞的课本来阅读,线性代数和统计学成为大家必须要打交道的“新朋友”。我们使出了“洪荒之力”拼了命地学习,我们甚至没有编程的学习背景,但是我们相信有有朝一日一定可以具备处理数据的能力。
但这个过程往往充满了头痛,因为我们找到了海量的学习资源,却依旧找不到学习的方法,就像临考前你的老师告诉你书上的“都是重点”一样。我们在学校里按照这样的方法读了这么多年的书,如果数据科学的学习仍要如此循规蹈矩,大概很多人会半途而废吧。
但不可否认,有一些人是通过读海量的书获得成功的,但我更建议大家去不断积累和尝试。比如,当我们在一些小事中获得启发的时候,我们的学习之路便开启了。我们心中应该清楚为了什么而学,只有这样我们才可以及时掌握到有用的技能。
这就是为什么我不认为你的第一个目标应该是学习线性代数或统计数据。如果你想学数据科学,你的第一个目标应该是学会爱数据。如果你感兴趣,我将带你一起了解如何真正学到科学数据的方法。
1、学会热爱数据
我们一味地学习新技术,却很少关注自己的学习动机。数据科学是一个广泛甚至有些模糊的领域,这使它很难掌握。如果没有动力,你很可能学到一半就开始自我怀疑。我知道这不怪你,因为你只是没得到正确的指导。
你需要找到一些能够激励你学下去的事物,找到了它,即使偶尔的熬夜让公式们看起来模糊,你也仍然会欣然地浮想联翩,你甚至想到这也许是神经网络在发挥作用。你需要在学习中找到一些“桥梁”,一些能让统计学、线性代数和神经网络联系到一起的桥梁。找到了它,你也就自然而然地不会被“接下来我该学什么”这样的问题所困惑。
我学习数据科学的起点是预测股市,尽管那时候我对它不甚了解。在早期的一些程序中,我没有经过统计就开始编码进行预测,尽管我知道可能预测的误差比较大,我仍然日以继夜的完善,以求做到更好。我着迷于改善程序的表现,渐渐地我发现我也开始痴迷于股票市场。因为不断让自己学着去热爱数据,我产生了学下去的更多动力,我想要使我的程序更加完美。
我知道并不是所有人都痴迷于股市,但它对于我它却如此重要,因为正是股市激发了我,并帮助我找到真正想学的东西。
数据科学的伟大之处在于你可以和成千上万有趣的事物一起工作:它可以找出你所在城市中新鲜有趣的东西;在地图上标出互联网上所有的设备;以年的频率更新世界各地的难民位置…这一切的一切,都是在发现问题,然后努力去找到解决问题的答案。
2、 通过实际操作来学习数据科学
学习神经网络、图像识别和其他尖端的技术是很重要的,但遗憾的是大多数的数据科学并不是直接教授你这些的:
- 90%的时间都是在做数据清理l 懂得一些算法比一无所知要好很多
- 如果你了解线性回归、K-means聚类和逻辑回归,能够解释和翻译它们的结果,并且能够从头到尾的完成整个步骤,你将比那些了解单个算法但不会使用的人,更受用人单位的青睐。
这些都在告诉我们,最好的学习办法就是进入项目组去一同工作。通过项目组的合作,你可以快速获得一些实用性和用处很大的技能。当然,你也能够通过这种途径找到自己的投资拍档。
项目的开始,你需要找到一个不错的数据集,然后回答一个你感兴趣的问题,开始不断重复清洗。以下是一些寻找数据集的好去处:
- 100+ Interesting Data Sets for Statisticsl Datasets subreddit
- UCI machine learning repository
另一种方法是找到一个深层问题。比如预测股票市场,其实可以拆分成很多小的步骤。我第一次连接到雅虎财经API的时候,我获取到了每日的价格数据;然后我创建了一系列的指标,比如过去一段时间里的平均价格,然后运用它去预测未来的趋势。这里并没有用到真正的算法,仅仅是技术上的分析。后来我发现这样的办法并不奏效,于是我开始学习统计学,掌握线性回归的办法。我之后又连接到另一个API,抓取到了每一分钟的数据,并把它们保存到一个SQL数据库,如此反复,直到我的算法越来越完美。
这样做的好处是为我之后的学习找到了方向。我不仅学习了SQL语法,我还运用它储存了关于价格的数据。这恰恰说明只学习而不操作,最终只能是徒劳无功的,并且对于你今后从事数据科学的工作起不到半点作用。
3、学会和别人沟通你的见解
数据科学家需要不断地向别人传达他们的技能和研究结果,这一点,恰恰也是一个合格的数据科学家和一个伟大的数据科学家之间的区别。虽然沟通的理念有时候很复杂,但这里有一些你可以尝试做的事情:
- 开通一个博客,发表你的数据分析成果l 多向你的朋友和家人练习讲授数据科学的理念,你会惊奇地发现,自己在这个过程中对数据科学的领悟会不断加深l 学会在聚会上演讲l 使用github来掌控所有的分析
- 多浏览一些诸如Quora和DataTau的社区
4、 向你的同行学习
你会惊奇地发现和别人团队合作能学到很多东西,在数据科学领域,团队合作甚至在岗位设置上非常重要,这里我有一些想法:
- 利用聚会寻找能够一起合作的人l 为开源软件包做贡献l 给那些常常写相关博客的人发消息以寻求合作
- 积极参加数据科学竞赛,你可以从中结识到很多朋友
5、 不断给自己增加新的困难和挑战
你是否对你从事的项目已经轻车熟路?你是否已经很久没有尝试一个新的理念了?那么,你需要一些更高一等级的困难来磨练自己了。数据科学是一座需要一步一步攀登的高山,如果你安于现状,你将很快被淘汰。如果你觉得自己已经太安逸于所学,这里有一些建议给你:
- 尝试处理更大的数据集l 看看是否可以使你的算法更快l 如何将算法扩展到多个处理器?你能做到吗?l 尝试理解你使用做多的算法,看看它们是否改变了你的假设?
- 尝试教一些新手你正在做的事情
学习任何新知识都需要正确的方法,数据科学也是如此。当你想要达到一个很远的地方时,你的手里首先需要一个合适的指导方针。任何人都可以学习数据科学,只要你能保持一个正确的心态。
本文作者:姜志勇
来源:51CTO