文章最新版本请查看官网,这里不定期更新《老饼讲解机器学习》https://www.bbbdata.com/text/118
目录
本文收集与解答一些入门者的常见疑惑,或者,你有什么疑惑,也可以留言。
一、关于数学
(一)需要什么数学基础
机器学习中需要的数学主要有(包括但不限于):
高等代数(线性代数)
数学分析(微积分)
概率论(统计原理)
三者之中个人认为《线性代数》的使用率占70%。
(二) 需要重新数学吗
大学数学没学到位,需要重新学完再学机器学习吗?
如果大学数学没学好,学机器学习过程会有些困难。但如果回头去学完数学,再来学机器学习,那就真的是不归路了!数学比机器学习更难学,回去学数学,基本只能被劝退!
老饼认为,前期可以艰难前行,慢慢跟随着机器学习去提升我们的数学水平。在这里,老饼给出一些个人认为很重要的建议:
(一) 调整学习顺序
先避开数学要求高的算法,先学数学门槛不太高,又常用的算法。数学门槛高的算法等后面整体知识水平上来了,再回头搞它。
因此,学习顺序非常重要,阶梯式学习,就可以跟随着每个算法去顺带提高数学,慢慢地,把所需的数学补上来了。
注意,这里说的,是核心算法的学习由简单到复杂。如果学的算法虽然简单,而非核心,那只能一直在机器学习边缘游走,最终把激情消磨殆尽。
(二)非必要莫引入
坚持奥卡姆剃刀原则,非必要莫引入!
如果一个数学知识点不会,可以去百度了解和补习下知识点,补习到能够把算法继续看下去就可以了,不建议一次性进行过深的学习。
等接触到新的算法,原来的理解不足以支撑算法原理时,再去进行深一步的学习。
能够坚持在机器学习的主线上走下去是最重要的,慢慢的,数学就会补回来了。
非必要莫引入!简单有效即可。
(三) 提示:一些能阻挡你的数学知识
机器学习中,没有用到太高深的数学知识,大部分的数学知识,只要有基本的数学sense,和足够的耐心,就一定不会成为你的绊脚石。
但也有个别知识会成为拦路虎。它是认识层面上的,而非公式层面的。
1.特征值
2.线性变换
目前知识的只有这两个(后面继续更新),针对这两个知识点,老饼会出个数学特别版扫出障碍。
二、关于编程
(一) 使用什么编程语言
用于机器学习的语言有很多,python、R、matlab、SAS、C++等。现在基本都用python.
python最大的好处是,包多,开源,用的人多,在众多语言中不算难,建议大家也直接入手python。
理由如下:
(1) 工作中有时需要统一编程语言。
(2) 找资料方便,也更丰富。
(3)python可以做的东西很多,熟悉python,以后用编程处理其它需求也不用重学另一种语言。
事实上,本人更愿意用matlab,但目前不得不转向了python。
(二)要先学会python再学机器学习吗
如果完全不懂任何编程,那是必须过一遍的,但不宜太专业的学习。
如果有一些编程思想,或其它语言编程经验,只是欠缺python的语法,我认为可以边学机器学习边跟随代码学习语法。
整个学习过程仍然遵守奥卡姆剃刀原则,非必要莫引入。
(三) 机器学习环境与python用什么IDE
如果装原生python,在装完python后还需要装其它机器学习包、ide。
建议直接使用Anaconda。Anaconda是全家桶,各种包直接安装好,自带编程界面Spyder。对机器学习来说,使用Anaconda简单了事。
另外IDEA使用jupyter notebook也是不错的选择。pycharm则面向开发更多,机器学习不太推荐。
三、需要学习哪些算法内容
这里我们并不考虑机器学习学术上的知识体系和完整性,如果要学完整个体系,那是不现实的,相对实际工作或使用也是牛刀杀鸡,学造火箭拧螺丝 。
入门者比较实际,比较可行的路线是,只学习实际应用(或就业面试所需)中的知名度、性价比高的关键常用算法。学完这些算法,作为局中人,再去研究前沿、或冷门的知识。
这里我们把日常使用的算法分为模型(算法)、求解算法、综合知识。
(一) 模型(算法)
模型/算法可分为主线(核心)、散装,主线是工作中常用的,核心的模型;支线是主线的一些变形、拓展;散装通常是较独立的,不常用但业务知名度广的。
(1)主线模型
线性回归-->逻辑回归-->SVM
决策树-->集成算法(随机森林、Adboost、GBDT)-->Xgboost
*PCA-->LDA-->FA-->ICA(该系列通常用于降维)(2)支线
线性回归:岭回归、Lasso回归
(3) 散装
KNN、K-means、朴素贝叶斯、隐马可夫链、Apriori
(二) 求解算法
1、精确求解:线性方程最小二乘求解
2、基于微分的优化算法:梯度下降、牛顿法与拟牛顿法、共轭梯度法
3、*启发式算法:模拟退火、遗传算法、蚁群算法
(三)综合知识
过拟合、正则化、数据清洗、模型训练、AUC、KS等等
备注:加*的代表该系列优先度不高。
这里只是把较具代表性的列出来,能搞完上面这些,已经不错了。
四、有哪些学习途径
(一) 自学
买书籍、看网文、看视频、系列的教学视频或文章、软件的官网、个人专题网站、github、公众号。
视频:推荐去b站搜索
文章:百度、知乎
博主:CSDN、博客园、简书
软件官网:python-sklearn的官网
书籍:去某东某宝买
电子书籍:某宝买打包好的资源、百度网盘下载(通过百度网盘搜索网站进行资源搜索)。
(二) 非自学
学校、培训班、拜师、靠朋友(别笑,后面两种也是很有效的途径)
五、好的书籍、视频介绍
(一)书藉
我认为没有什么让我非常满意的入门书藉,主要是跟随着这些书藉,我也学不会。
但能推荐好书藉,这些书藉可以作为工具书,在不懂时借鉴与查询。
下面只写的优点。
1.《统计学习方法》--李航
经典书藉,排第一位没有什么问题!里面的内容都非常实在,通俗、完整、严谨与深度于一身。
2.《机器学习》 -- 周志华
继《统计学习方法》后,又一本大家推荐的书,对初学者更为友好。
3.《机器学习实战》李锐 李鹏 曲亚东 王斌 译( 原作《Machine Learning in Action》 -- Peter Harrington)
对初学者非常友善,轻理论,重实战,有一步步的python代码,比较具体。
4.《模式分类》 --李宏东、姚天翔 等译 (《Pattern Classification》--Richard O. Duda/Peter E. Hart/David G. Stork)
深入、严谨、有序。深入之余不失条理。
(二) 视频
1.吴恩达 视频
2.李宏毅《机器学习》视频,B站可以搜索。
六、要不要参加培训班
我个人不会参加,但你真的自学搞不定,参加培训班也不失为一种途径。但不要寄予厚望。
如果你是我亲戚,我会建议你参加,还愿意掏费资助,虽然明知参加培训班收益上限不高,但它始终有个下限,多少还是有回报的,从人生的价值投资来说,是值得投的一笔钱。
但如果你现在让我重回当年,会不会参加,我还是不会参加,一万次,我还是会选择跌跌撞撞自己走过来。反正,这是一个非常矛盾的问题。
相关文章