先简单回答下题主的两个追问问题。问题1:Python几乎无所不能,从数据分析、软件开发、Web开发、数据库开发、系统开发,到游戏开发,网络爬虫,再到让Python傲视群雄的机器学习。不同的学习目标,当然就对应着不同的学习路径。
问题2:题主如果选择用Python来学习机器学习,那毫无疑问是一个非常主流且明智的选择。毕竟正是顺应人工智能这股浪潮,Python爬到了编程语言界No. 1的位置(之前Java霸榜多年)。
本人学习和使用Python已接近10年,一直把它当成是数据分析的重要工具,对数据分析这个方向相对更为熟悉,所以这里就分享该方向的学习经验,以及一些个人认为可以帮助我们少走弯路提高学习效率的参考书。
我们需要了解一点,机器学习也属于是数据分析的方向,可以说是数据分析中最“高大上”的那一部分。顺便多说一句,在数据分析领域,可以和Python进行协作的还包括Excel(越基础越重要)、R语言、SQL(本人用的是PostgreSQL)和Tableau(可视化神器),大家都可以了解下。
如果想要在机器学习方面学得扎实,学得高效,可以参考以下五个步骤:1. 打牢Python基础
2. 机器学习之数学基础
3. 机器学习之数据分析
4. 机器学习之机器学习
5. 机器学习之深度学习
第一步:打牢Python的编程基础
关于如何吃透Python这个工具,有几本书是上镜率极高的,当然各个书的侧重点也有所不同。
(给出的链接全部都是京东自营。点击进去可以浏览书本的目录和商品描述。看完目录,读者应该就可以对该书的知识覆盖有个大致的了解。)
第二步:机器学习之数学基础线性代数:机器学习的核心。几乎所有重要的机器学习算法,从OLS到神经网络,都是基于向量和矩阵的运算。掌握线数,才能看懂和理解机器学习算法的推导过程。
微积分:尤其是微分,在机器学习算法中使用的频率也非常高。常见的梯度下降法和后馈神经网络中,就需要求微分。当然,如果在大学时候学过微积分,这块也许就够用了
统计学:机器学习也叫统计学习。所以统计学是机器学习整个领域的基石。统计学里面的概率论、参数估计、参数检验和回归分析(这一块也延伸到经济学中的计量经济学)等等,都是学好数据分析和机器学习的核心。如果线数和微积分部分知识可以当成工具,那么统计学就是核心。统计学涉及的知识点非常广泛,需要长期的学习和积累。
有了编程基础之后,下一步应该是机器学习。不过如果数学基础(尤其是线数)不够的话,很容易就学成了传说中的“调包侠”——只会套现成的模型,既不理解模型数学原理,也不懂如何调整和改进模型算法。这里再总结下,题主可能除了需要补充线性代数和微积分,还需要继续加深统计学(包括概率论)方便的知识学习。
还是那句话,机器学习要学好,数学基础要打牢!而且,据我个人经验,学数学的时候,如果直接啃数学书,估计没几个人能坚持住。这里,我强烈推荐另辟蹊径!——利用Python来学习或者巩固我们的数学知识。至于具体怎么学呢,下面几本书说得很清楚咯!
第三步:机器学习之数据分析(pandas)
pandas是基于NumPy和SciPy开发,是Python用来专门处理二维数据表格的包。在开发过程中,pandas参考了大量R语言(开源统计之王)在数据框处理方面的优点。
pandas具体为机器学习提供基础的数据清理、数据整理、数据切割和拼接以及数据探索等基础工作。在介绍pandas的书中,通常也会顺带介绍matpotlib和seaborn等画图包。另外,在此顺便介绍可视化方面的参考书籍。
点评:如果NumPy和pandas方面只推荐一本书,我选的是上面这本国产书。简单易上手。Learning by doing。
第四步:机器学习之机器学习
点评:《白话机器学习》这个书,完全是面向数学几乎忘得差不多的同学准备的。如果数学功底还可以,这本书完全可以跳过。
点评:这本书在机器学习圈子就和吴恩达的公开课一样,几乎是无人不知无人不晓。这本书还衍生除了很多解读的视频和课程。有人刷了这本书很多遍,并以各种形式分享学习经验。
第五步:机器学习之深度学习
深度学习中,目前Facebook的PyTorch大有碾压谷歌的TensorFlow之势。所以对于深度学习的新手来说,选择PyTorch这个框架进行学习,似乎更为明智。当然,不管是TensorFlow还是TensorFlow,算法原理都是相通的。
其他一些补充:
点评:了解统计之王R语言最好的经典书籍。
点评:可以对比Excel一起学习Python。
点评:Non-SQL数据处理。
点评:这两本是爬虫方面的经典书籍,可以帮助大家快速掌握爬虫这个Python工具。
点评:最后这本书提到的Spark,是一种新型的分布式大数据处理框架,一般是行内顶级大厂才可能用到。如果学Python为了有朝一日到阿里和腾讯等大厂搞数据分析,提前了解一下也是不错的。
以上。