我是一个web前端开发者和rails程序员,计算机专业出身,掌握Python、Ruby、C、Java编程语言,具有较为扎实的计算机理论基础。
现在工作之外的时间里想学习一下数据分析或者数据挖掘。现在大数据这个词搞得蛮火的,不少公司也有在招聘数据分析员。
抱着「技多不压身」的想法我也想稍微学习一下。说不定以后的工作也会需要。我稍微了解了一下,数据分析最基础就是用excel来工作。不过我计算机专业出身的人,还是想通过用编程语言的方法来学习。听说R语言不错,我也稍微了解了一下。
- 不过现在要学数据分析的话,我可以从哪里着手?
- 从哪里弄到有分析价值的数据?
- 在开源社区有没有开源项目适合用来学习数据分析?
- 可以自己动手做个什么项目来实践?
事先说一句,Python Rocks, especially for Data scientist! 不是说 R 不好,我个人觉得 R 别别扭扭的,但是现在 R 很多,而且 R 作为数据分析是一门好语言。选择在个人,我只是说 Python Rocks!
回答你的问题:
不过现在要学数据分析的话,我可以从哪里着手?
首先,依据你的情况,最好是有一个你熟悉背景的项目或者例子,不一定是「数据分析」项目,只要你能弄到数据,然后清楚要分析的对象和目的就好。
接下来说方法,现在有很多课程可以帮助你学习这些方法,具体哪个方法好,完全看你的问题是什么,根据目的选方法。具体有哪些方法,请参考下面的书单。鉴于你会 Python,推荐机器学习实战
入门读物:
- 深入浅出数据分析 这书挺简单的,基本的内容都涉及了,说得也比较清楚,最后谈到了R是大加分。难易程度:非常易。
- 啤酒与尿布 通过案例来说事情,而且是最经典的例子。难易程度:非常易。
- 数据之美 一本介绍性的书籍,每章都解决一个具体的问题,甚至还有代码,对理解数据分析的应用领域和做法非常有帮助。难易程度:易。
- 数学之美 这本书非常棒啦,入门读起来很不错!
数据分析:
- SciPy and NumPy 这本书可以归类为数据分析书吧,因为numpy和scipy真的是非常强大啊。
- Python for Data Analysis 作者是Pandas这个包的作者,看过他在Scipy会议上的演讲,实例非常强!
- Bad Data Handbook 很好玩的书,作者的角度很不同。
适合入门的教程:
- 集体智慧编程 学习数据分析、数据挖掘、机器学习人员应该仔细阅读的第一本书。作者通过实际例子介绍了机器学习和数据挖掘中的算法,浅显易懂,还有可执行的Python代码。难易程度:中。
- Machine Learning in Action 用人话把复杂难懂的机器学习算法解释清楚了,其中有零星的数学公式,但是是以解释清楚为目的的。而且有Python代码,大赞!目前中科院的王斌老师(微博: 王斌_ICTIR)已经翻译这本书了 机器学习实战 。这本书本身质量就很高,王老师的翻译质量也很高。难易程度:中。我带的研究生入门必看数目之一!
- Building Machine Learning Systems with Python 虽然是英文的,但是由于写得很简单,比较理解,又有 Python 代码跟着,辅助理解。
- 数据挖掘导论 最近几年数据挖掘教材中比较好的一本书,被美国诸多大学的数据挖掘课作为教材,没有推荐Jiawei Han老师的那本书,因为个人觉得那本书对于初学者来说不太容易读懂。难易程度:中上。
- Machine Learning for Hackers 也是通过实例讲解机器学习算法,用R实现的,可以一边学习机器学习一边学习R。
稍微专业些的:
- Introduction to Semi-Supervised Learning 半监督学习必读必看的书。
- Learning to Rank for Information Retrieval 微软亚院刘铁岩老师关于LTR的著作,啥都不说了,推荐!
- Learning to Rank for Information Retrieval and Natural Language Processing 李航老师关于LTR的书,也是当时他在微软亚院时候的书,可见微软亚院对LTR的研究之深,贡献之大。
- 推荐系统实践 这本书不用说了,研究推荐系统必须要读的书,而且是第一本要读的书。
- Graphical Models, Exponential Families, and Variational Inference 这个是Jordan老爷子和他的得意门徒 Martin J Wainwright 在 Foundation of Machine Learning Research上的创刊号,可以免费下载,比较难懂,但是一旦读通了,graphical model的相关内容就可以踏平了。
- Natural Language Processing with Python NLP 经典,其实主要是讲 NLTK 这个包,但是啊,NLTK 这个包几乎涵盖了 NLP 的很多内容了啊!
机器学习教材:
- The Elements of Statistical Learning 这本书有对应的中文版:统计学习基础 。书中配有R包,非常赞!可以参照着代码学习算法。
- 统计学习方法 李航老师的扛鼎之作,强烈推荐。难易程度:难。
- Machine Learning 去年出版的新书,作者Kevin Murrphy教授是机器学习领域中年少有为的代表。这书是他的集大成之作,写完之后,就去Google了,产学研结合,没有比这个更好的了。
- Machine Learning 这书和上面的书不是一本!这书叫:Machine Learning: An Algorithmic Perspective 之前做过我带的研究生教材,由于配有代码,所以理解起来比较容易。
- Pattern Recognition And Machine Learning 经典中的经典。
- Bayesian Reasoning and Machine Learning 看名字就知道了,彻彻底底的Bayesian学派的书,里面的内容非常多,有一张图将机器学习中设计算法的关系总结了一下,很棒。
- Probabilistic Graphical Models 鸿篇巨制,这书谁要是读完了告诉我一声。
- Convex Optimization 凸优化中最好的教材,没有之一了。课程也非常棒,Stephen老师拿着纸一步一步推到,图一点一点画,太棒了。
从哪里弄到有分析价值的数据?
还是上面那句话,依据问题选方法,有问题了,数据其实也不愁了。
- UCI是最经典的,不过也比较古老
- 数据堂最近异军突起,非常值得称赞
- 国外还有一些网站,比如http://mlcomp.org/,http://mldata.org/你可以看看
- 另外KDDCUP每年都会针对一个特定的问题进行比赛,数据集也是公开的
- 最近几年,数据挖掘的比赛越来越多了,你可以去PASCAL上看看你感兴趣的领域,自己搜索一下
- http://www.delicious.com/pskomoroch/dataset这个是delicious上面一个人搜集的数据集网站书签,比较杂,或许你能找到你所要的(话说delicious改版之前这个里面的内容比现在的多多了)
- 再有就是看具体的做的内容,然后看相关学者都用什么数据集,除了LDC那种变态组织,其他很多数据都可以通过track论文中的信息或者是作者主页上的信息下载到的
- 做数据挖掘和数据分析都是针对某一个领域或者问题去做,其实也看那个领域会不会有开放的心态去公开数据,前两年在Hans Rosling老先生在TED上公开呼吁之后,很多机构,包括联合国都公开了自己的数据
补充,在quora上面看到一个问题中的答案涉及这个问题,那个更加全面 http://www.quora.com/Data/Where-can-I-get-large-datasets-open-to-the-public(http://www.quora.com/Where-can-I-find-large-datasets-open-to-the-public)
在开源社区有没有开源项目适合用来学习数据分析?
如果你是用python的话,那么numpy, scipy, matplotlib是基础的,然后就是大名鼎鼎的scikit.learn了。最近pandas也很火,可以提供类似R中dataframe的数据结构,pandas的作者 最近出版了一本书 Python for Data Analysis。
Python Rocks! scikit-learn: machine learning in Python scikit.learn 是非常非常棒的机器学习 package,文档详尽,更新速度快!你看例子,看源码,都能学到不少东西!另外,去 github 上搜搜吧,好多好东西!
可以自己动手做个什么项目来实践
Kaggle Competitions(https://www.kaggle.com/competitions) 从最下面的101开始,逐级往上!
Have fun and good luck!