第一章 数据收集、统计
在开始这一章之前,你可能需要补习一下数学知识;还有熟悉下常见工具(语言),不必多年开发经验,会处理常见数据结构、能格式化文件即可。
建议先通读一下 Scrapy 中文文档 ,这样你会省去好多Google的时间;在 知乎 上有许多关于 大数据 、 数据挖掘 的讨论,你可以去看看了解一些业内的动态。
另外,可以使用 Nutch 来爬取,并用 Solr 来构建一个简单的搜索引擎,它们可以跟下一章节的Hadoop集成。
还有一个比较重要的点-- Model Thinking ,你需要的不只是建模的知识,还要有建模的思想。数据和算法并不是最重要的,重要的是你如何利用这些数据通过你设计的模型来输出对你有用的结果。
不要以编程开始你的机器学习之旅,这样容易使思维受限于语言,通过对模型和结果的思考达到你的目的,编程只是手段之一。 话虽如此,但是你必须学会的语言有Python、NetLogo、MQL,额外的语言为Bash、C、C++,如果你会点Java那就更好啦。如何学习它们?OK,下载手册,那些命令与类型一个个敲着学,不要漏过任何一个。R语言的效率可能并不是很好,工程类喜欢Python,科学家喜欢S-Plus,R也流行。
建模工具这块儿,笔者认为最适合个人学习的当属Netlogo,其他开源项目有可直接用 GAMA 或者 Mesa ,也有商业产品比如IBM SPSS、AnyLogic系列,模拟股市的也有 Altreva Adaptive Modeler 、QLearning Trading,但是。。。扩展性支持上Netlogo灵活而多样,如果需要超算版本可以也可以试试Repast。
NetLogo: {download}netlogo_help.7z<../files/netlogo_help.7z>
如果读者已经具备了以下几点的基本知识,那么,跳过这章吧。
1.1 数据收集
数据收集是学习数据分析的开始。
为了省去一些学习的麻烦,我找了一些 “大”数据 ,有些上百TB的数据对非行业内的人来说可能毫无意义,但是,先来些数据吧,它们对学习者来说还是比较实用的。
简单抓取
动手写一个最简单的爬虫
实际使用时遇到的问题
分布式抓取
scrapyd
scrapy-redis
使用Nutch + Solr
1.2 爬虫示例
58同城
我简单写了一个 收集58同城中上海出租房信息的爬虫 ,包括的条目有: 描述 、 位置 、 价格 、 房间数 、 URL 。
由于这些信息都可以在地图上表示出来,那我除了画统计图以外还会画它们在地图上的表示。
知乎
http://blog.javachen.com/2014/06/08/using-scrapy-to-cralw-zhihu/
http://segmentfault.com/blog/javachen/1190000000583419
https://github.com/KeithYue/Zhihu_Spider.git
新浪微博
https://github.com/followyourheart/sina-weibo-crawler