update: 2017-06-08

在工作生活中,会有同事朋友初入门机器学习,希望推荐下这方面的信息。为了一劳永逸,打算梳理下比较好的书籍,及Python生态圈常用的库,以供参考。

A. 书籍

入门书籍强烈推荐An Introduction to Statistical Learning with Application in R。概览目前常用的机器学习算法,一本足矣。唯一的遗憾是这本书都是R代码,建议最好给合Python机器学习库scikit-learn: User Guide,边学边试。

如果不满足,它有本姊妹版The Elements of Statistical Learning: Data Mining, Inference, and Prediction,注重数理,难度很高。适合喜欢挑战的朋友。

如果是深度学习,入门可以看斯坦福2017季CS231n深度视觉识别课程视频,讲得很好,清晰明了。也可以读Deep Learning,深入浅出,比较容易读懂,非官方PDF版

B. 必备工具

  • Anaconda发行版:专注于数据科学的Python发行版。即使Linux/Mac原生自带Python,也请安装使用它。原因是有二:

    1. 提供的conda包管理器,可以简单又正确地装好后续推荐的库。详见Managing packages

    2. 支持建立不同的环境,并自由切换。详见Managing Python

  • Jupyter Notebook:这是交互式环境,边写边改边看结果,非常便利。因为Anaconda发行版自带此包,无需安装。输入如下命令即启动:

    jupyter notebook
    

    使用效果见这篇笔记:决策树简介和 Python 实现

C. 常用库

0.1 数据处理

  • Pandas:非常好用的数学分析库。它的文档详尽又丰富,强烈建议认真看一遍。
    # 安装
    conda install pandas
    
  • Seaborn:数据可视化。制图很美观,有利于提升逼格。
    # 安装
    conda install seaborn
    

0.2 机器学习

  • scikit-learn:流行的机器学习库,单机版。文档详尽,生态丰富,入手门槛较低。

    # 安装
    conda install scikit-learn
    
  • PySpark:流行的工业用机器学习库,分布式版。官方文档有限,入手门槛较高。
  • TensorFlow:大热的深度学习库。抽象比较低级,文档散,入手门槛高。
    conda install -c conda-forge tensorflow
    

D. 扩展

0.1 数学运算

  • Numpy:数值计算库,偏底层。
  • Scipy:科学计算库,偏底层。

0.2 文字处理

  • Jieba:中文分词库。

0.3 图像处理

  • OpenCV:流行的图像处理库。