想做数据处理尤其是大数据量处理的相关工作必须兼具计算机科学基础和统计基础。
现在有一个高大上的职业叫数据科学家,有人说数据科学家就是一个比程序员更懂统计的统计学家,一个比统计学家更会编程的程序员。觉得说得很形象。
基础中的基础:
线性代数,概率论
核心知识:
数理统计
预测模型
机器学习
计算机:
数学软件:强大矩阵运算和优化功能的matlab,专而精的mathematica。
语言:python(很流行的科学语言,潜力也很大,ipython这样交互式环境十分有利),fortran(强大的计算语言,充分优化的现成代码),R(相比于matlab,java,c,R是个高富帅)
可视化
这是数据分析各类语言使用度的图表,R占的比例还是相当高啊。想利用现在动辄TB级的数据大显身手,光靠excel可不够啊。你真的需要写很多代码…
统计:
时间序列分析
应用回归(很简单,亦很实用)
多元统计分析
海量数据分成两块,一是系统建设技术,二,海量数据应用。先说系统建设,现在主流的技术是HADOOP,主要基于mapreduce的分布式框架。目前可以先学习这个。但是我的观点,在分布式系统出来之前,主要是集中式架构,如DB2,oracle。为什么现在用分布式架构,那是因为现在集中式架构受限于IO性能,出来速度慢,如果又一种硬件技术,可以很快地处理海量数据,性能上能满足需求,那么集中式架构优于分布式架构,因为集中式架构稳定,运维压力小。现在的集中式架构要么性能达不到要求,要么就是过于昂贵。我期待一种技术出现,可以非常快地传输和处理数据,那么集中式架构将再次进入人们眼球。再说海量数据应用。海量数据应用主要是数据挖掘和机器算法。具体有不同的应用场景,如个性化搜索和推荐,社交网络发现,精准营销,精准广告,实时最优路径,人工智能等等。看你想做系统支撑技术还是与业务结合的应用技术。
如果现在学系统建设技术,可以读下如下书籍:
如果学数据挖掘和机器算法,推荐先看数据挖掘导论,统计分析原理,Mahout,R,MATLAB