http://inthecloud.readthedocs.org/zh_CN/latest/posts/ch04.html#scrapy-redis
在开始这一章之前,你可能需要补习一下数学知识;还有熟悉下常见工具(语言),不必多年开发经验,会处理常见数据结构、能格式化文件即可。
建议先通读一下 Scrapy 中文文档 ,这样你会省去好多Google的时间;在 知乎 上有许多关于 大数据、 数据挖掘 的讨论,你可以去看看了解一些业内的动态。
另外,可以使用 Nutch 来爬取,并用 Solr 来构建一个简单的搜索引擎,它们可以跟下一章节的Hadoop集成。
在收集数据的时候,有时我想不出来要这些数据能统计出什么,直到我背后中了一箭,哦不,直到对象说租房要挑个性价比高地理位置又好的地方后,我才明白大量数据的重要性。当然,这跟大数据半毛钱关系没有。
还有一个比较重要的知识点,“Model Thinking”,你需要有一些建模的知识。
4.1 数据收集
为了省去一些学习的麻烦,我给一些真正的“大数据”先。
http://www.quora.com/Where-can-I-find-large-datasets-open-to-the-public
有些上百TB的数据对非行业内的人来说可能毫无意义,但是,先来些数据吧。
简单抓取
动手写一个最简单的爬虫
实际使用时遇到的问题
分布式抓取
scrapyd
scrapy-redis
使用Nutch + Solr
4.2 爬虫示例
58同城
我简单写了一个 收集58同城中上海出租房信息的爬虫 ,包括的条目有: 描述 、 位置 、 价格 、 房间数 、 URL 。
由于这些信息都可以在地图上表示出来,那我除了画统计图以外还会画它们在地图上的表示。
4.3 numpy 快查
import numpy as np
a = np.arange(1,5)
data_type = [('name','S10'), ('height', 'float'), ('age', int)]
values = [('Arthur', 1.8, 41), ('Lancelot', 1.9, 38),
('Galahad', 1.7, 38)]
b = np.array(values, dtype=data_type)
# 符号
np.sign(a)
# 数组最大值
a.max()
# 数组最小值
a.max()
# 区间峰峰值
a.ptp()
# 乘积
a.prod()
# 累积
a.cumprod()
# 平均值
a.mean()
# 中值
a.median()
# 差分
np.diff(a)
# 方差
np.var(a)
# 元素条件查找,返回index的array
np.where(a>2)
# 返回第2,3,5个元素的array
np.take(a, np.array(1,2,4))
# 排序
np.msort(a)
np.sort(b, kind='mergesort', order='height')
# 均分,奇数个元素的array不可分割为偶数。
np.split(b,2)
4.4 机器学习常用分类算法及Python实现
K邻近算法
决策树
朴素贝叶斯
Logistic和Sigmoid回归
SVM
AdaBoost
4.5 无监督学习
4.6 数据可视化
数据统计
Gephi
GraphViz
python-matplotlib
Microsoft Excel 2013 PowerView