数据挖掘入门与实战 历史文章源代码打包下载

失效了。最近终于有时间整理下来。

如何入门数据挖掘/机器学习/数据科学?

我认为有几个大方面

1)学好python。 现在几乎所以公司的数据都可以api给你,而python的数据处理能力强大且方便。加之在machine learning的很多算法上,python也独俏一方。另外,它的简明方便迅速迭代开发,15分钟写完个算法就可以看效果了。

除此之外,py还有点酷酷的感觉。任何程序拿matlab和c++都是可以写的,不过我真没认识过哪个d愿意自己把自己扔那个不酷的框框里:D

对不规则输入的处理也给python一个巨大的优势。通常来说,在我现在日常的工作里,所有的数据都是以纯文本但是非格式的形式存储的(raw text, unstructured data)。问题在于,这些文本不可以直接当作各种算法的输入,你需要

  1. 分词,分句
  2. 提取特征
  3. 整理缺失数据
  4. 除掉异类(outlier)

在这些时候,python可谓是神器。这里做的1-4都可以直接在scikit-learn里面找到对应的工具,而且,即使是要自己写一个定制的算法处理某些特殊需求,也就是一百行代码的事情。

简而言之,对于数据科学面临的挑战,python可以让你短平快地解决手中的问题,而不是担心太多实现细节。

2)学好统计学习 略拗口。统计学习的概念就是“统计机器学习方法”。 统计和计算机科学前几十年互相平行着,互相造出了对方造出的一系列工具,算法。但是直到最近人们开始注意到,计算机科学家所谓的机器学习其实就是统计里面的prediction而已。因此这两个学科又开始重新融合。

为什么统计学习很重要?

因为,纯粹的机器学习讲究算法预测能力和实现,但是统计一直就强调“可解释性”。比如说,针对今天微博股票发行就上升20%,你把你的两个预测股票上涨还是下跌的model套在新浪的例子上,然后给你的上司看。 Model-1有99%的预测能力,也就是99%的情况下它预测对,但是Model-2有95%,不过它有例外的一个附加属性——可以告诉你为什么这个股票上涨或者下跌。

试问,你的上司会先哪个?问问你自己会选哪个?

显然是后者。因为前者虽然有很强的预测力(机器学习),但是没有解释能力(统计解释)。

而作为一个数据科学家,80%的时间你是需要跟客户,团队或者上司解释为什么A可行B不可行。如果你告诉他们,“我现在的神经网络就是能有那么好的预测力可是我根本就没法解释上来”,那么,没有人会愿意相信你。

如果你感觉自己是一个二吊子数据科学家(我也是)那么问一下下面几个问题,如果有2个答不上来,那么你就跟我一样,真的还是二吊子而已,继续学习吧。

  • 为什么在神经网络里面feature需要standardize而不是直接扔进去
  • 对Random Forest需要做Cross-Validatation来避免overfitting吗?
  • 用naive-bayesian来做bagging,是不是一个不好的选择?为什么?
  • 在用ensembe方法的时候,特别是Gradient Boosting Tree的时候,我需要把树的结构变得更复杂(high variance, low bias)还是更简单(low variance, high bias)呢?为什么?

如果你刚开始入门,没有关系,回答不出来这些问题很正常。如果你是一个二吊子,体会一下,为什么你跟一流的data scientist还有些差距——因为你不了解每个算法是怎么工作,当你想要把你的问题用那个算法解决的时候,面对无数的细节,你就无从下手了。

沉下心来,练习匠艺。

3)学习数据处理 这一步不必独立于2)来进行。显然,你在读这些书的时候会开始碰到各种算法,而且这里的书里也会提到各种数据。但是这个年代最不值钱的就是数据了(拜托,为什么还要用80年代的“加州房价数据”?),值钱的是数据分析过后提供给决策的价值。那么与其纠结在这么悲剧的80年代数据集上,为什么不自己搜集一些呢?

  • 开始写一个小程序,用API爬下Twitter上随机的tweets(或者weibo吧。。。)
  • 对这些tweets的text进行分词,处理噪音(比如广告)
  • 用一些现成的label作为label,比如tweet里会有这条tweet被转发了几次
  • 尝试写一个算法,来预测tweet会被转发几次
  • 在未见的数据集上进行测试

如上的过程不是一日之功,尤其刚刚开始入门的时候。慢慢来,耐心大于进度。

4)变成全能工程师(full stack engineer) 在公司环境下,作为一个新入职的新手,你不可能有优待让你在需要写一个数据可视化的时候,找到一个同事来给你做。需要写把数据存到数据库的时候,找另一个同事来给你做。

况且即使你有这个条件,这样频繁切换上下文会浪费更多时间。比如你让同事早上给你塞一下数据到数据库,但是下午他才给你做好。或者你需要很长时间给他解释,逻辑是什么,存的方式是什么。

最好的变法,是把你自己武装成一个全能工作师。你不需要成为各方面的专家,但是你一定需要各方面都了解一点,查一下文档可以上手就用。

  • 会使用NoSQL。尤其是MongoDB
  • 学会基本的visualization,会用基础的html和javascript,知道d3这个可视化库,以及highchart
  • 学习基本的算法和算法分析,知道如何分析算法复杂度。平均复杂度,最坏复杂度。每次写完一个程序,自己预计需要的时间(用算法分析来预测)。推荐普林斯顿的算法课(注意,可以从算法1开始,它有两个版本)
  • 写一个基础的服务器,用flask的基本模板写一个可以让你做可视化分析的backbone。
  • 学习使用一个顺手的IDE,VIM, pycharm都可以。

4)读,读,读! 除了闭门造车,你还需要知道其它数据科学家在做些啥。涌现的各种新的技术,新的想法和新的人,你都需要跟他们交流,扩大知识面,以便更好应对新的工作挑战。

通常,非常厉害的数据科学家都会把自己的blog放到网上供大家参观膜拜。我推荐一些我常看的。另外,学术圈里也有很多厉害的数据科学家,不必怕看论文,看了几篇之后,你就会觉得:哈!我也能想到这个!

读blog的一个好处是,如果你跟他们交流甚欢,甚至于你可以从他们那里要一个实习来做!

betaworks首席数据科学家,Gilad Lotan的博客,我从他这里要的intern :D Gilad Lotan Ed Chi,六年本科硕士博士毕业的神人,google data science http://edchi.blogspot.com/ Hilary Mason,bitly首席科学家,纽约地区人尽皆知的数据科学家:hilarymason.com

在它们这里看够了之后,你会发现还有很多值得看的blog(他们会在文章里面引用其它文章的内容),这样滚雪球似的,你可以有够多的东西早上上班的路上读了:)

5)要不要上个研究生课程? 先说我上的网络课程: Coursera.org https://www.coursera.org/course/machlearning 前者就不说了,人人都知道。后者我则更喜欢,因为教得更广阔,上课的教授也是世界一流的机器学习学者,而且经常会有一些很妙的点出来,促进思考。

对于是不是非要去上个研究生(尤其要不要到美国上),我觉得不是特别有必要。如果你收到了几个著名大学数据科学方向的录取,那开开心心地来,你会学到不少东西。但是如果没有的话,也不必纠结。我曾有幸上过或者旁听过美国这里一些顶级名校的课程,我感觉它的作用仍然是把你领进门,以及给你一个能跟世界上最聪明的人一个交流机会(我指那些教授)。除此之外,修行都是回家在寝室进行的。然而现在世界上最好的课程都摆在你的面前,为什么还要舍近求远呢。

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2017-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

【AI每日播报】科大讯飞新品发布 MXNet携手亚马逊AWS

1736
来自专栏人工智能头条

智齿科技CTO吴立楠:NLP在对话系统中的应用

1954
来自专栏CDA数据分析师

吴甘沙:数据分析师进化的3道阶梯

9月11日—9月12日,由经管之家(原人大经济论坛)主办的“2015中国数据分析师行业峰会(CDA?Summit)”在北京举行。 英特尔中国研究院院长兼首席工程...

2177
来自专栏人工智能快报

英特尔布局神经形态计算芯片

据外媒报道,英特尔(Intel)实验室开发了一种神经形态处理器,研究人员认为它可以比传统架构的芯片(如GPU或CPU)更快、更有效地执行机器学习任务。对这种代号...

3146
来自专栏ATYUN订阅号

非语言交流的新领域:将机器人的情绪映射为触觉表达

我们认为人类非常聪明,因为人类拥有多种不同的沟通方式。我们发声,我们有富有表现力的面孔,我们可以做手势。我们似乎有很多交流方式,但我们错过了一些对动物来说很常见...

1012
来自专栏CDA数据分析师

我是如何从物理学转行到数据科学领域

很多人问我是如果从物理学转行到数据科学,本文讲述了关于我为什么决定成为一名数据科学家,以及我是如何追求并实现目标的。希望能够最终鼓励更多的人追求自己的梦想。让我...

1452
来自专栏ThoughtWorks

点之殇|TW洞见

今日洞见 文章作者、部分图片来自ThoughtWorks:冉冉。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、...

3678
来自专栏机器学习原理

2018苏州GTC会议笔记主题演讲可解释性、鲁棒性和公平性:THUIR 个性化推荐研究进展 [CH81402]机器学习的发展和行业应用前景 [CH8502]用 TensorFlow 加速 AI [CH

NVIDIA 创始人兼 CEO 黄仁勋先生关于计算领域之未来的主题演讲。 演讲人:黄仁勋 NVIDIA 创始人兼 CEO 2018/11/21 周三 1...

1354
来自专栏机器人网

科学家用AI开发读心术,你那些不可描述将无所遁形

研究人员正在扫描人脑和从中提取可用信息方面取得重大进展。这一技术被称为脑解码,可以帮助治愈一些失明病症,利用大脑作为输入设备来控制电脑和其他设备。根据Engad...

2564
来自专栏ATYUN订阅号

Medium网友分享了一篇帖子 介绍了他的深度学习心路历程

Medium网友Favio Vázquez分享了他是如何学习深度学习并利用它来解决数据科学问题的。这是一个非正式的帖子,但内容很有趣。以下是他分享的内容。 ? ...

40011

扫码关注云+社区