Python机器学习算法实现
Author:louwill
Machine Learning Lab
终于到了最后的总结。从第一篇线性回归的文章开始到现在,已经接近有两年的时间了。当然,也不是纯写这30篇文章用了这么长时间,在第14篇Ridge回归之后中间断更了10个多月,好在今年抽出时间把全部补齐了。
一点总结
整个系列对常用的、主流的机器学习模型与算法进行了梳理,主题只有两个,一个是数学推导,一个手写实现。因为机器学习原理大多都是由数学支撑,基本的机器学习数学公式推导对于深入掌握机器学习十分重要;另一方面,通过手写实现机器学习算法,深入理解算法细节,进一步提高算法实现的代码能力。
在完成这项工作的过程中,很多朋友都有问过我,所有的算法是否都是我自己写的。当然不是,作为一名普通的学习者,不可能独自闭门造车的完成这项工作,在公式推导和代码实现过程中,笔者曾大量参考借鉴了各种博客、教材和GitHub相关仓库,总体而言也是一项集成性的工作。还有一个问题就是很多朋友也会问,说好的手写呢,怎么你LightGBM调了包了呢。其实不光是LightGBM调了包,笔者在写支持向量机的时候调用了cvxopt求解二次规划,贝叶斯网络用了pgmpy,CatBoost调用了原生的catboost库,最大熵模型也调用了maxentropy等。一方面是中间确实偷了懒,一方面也是因为部分算法系统过于复杂,一部分未完成的工作会留到下半年继续。
全部模型和算法整理成思维导图如下:
按照模型类型分为监督学习模型、无监督学习模型和概率模型三大类:
监督模型
无监督模型
概率模型
全部30讲如下:
数学推导+纯Python实现机器学习算法1:线性回归
数学推导+纯Python实现机器学习算法2:逻辑回归
数学推导+纯Python实现机器学习算法3:k近邻
数学推导+纯Python实现机器学习算法4:决策树之ID3算法
数学推导+纯Python实现机器学习算法5:决策树之CART算法
数学推导+纯Python实现机器学习算法6:感知机
数学推导+纯Python实现机器学习算法7:神经网络
数学推导+纯Python实现机器学习算法8:线性可分支持向量机
数学推导+纯Python实现机器学习算法9:线性支持向量机
数学推导+纯Python实现机器学习算法10:线性不可分支持向量机
数学推导+纯Python实现机器学习算法11:朴素贝叶斯
数学推导+纯Python实现机器学习算法12:贝叶斯网络
数学推导+纯Python实现机器学习算法13:Lasso回归
数学推导+纯Python实现机器学习算法14:Ridge岭回归
数学推导+纯Python实现机器学习算法15:GBDT
数学推导+纯Python实现机器学习算法16:Adaboost
数学推导+纯Python实现机器学习算法17:XGBoost
数学推导+纯Python实现机器学习算法18:LightGBM
数学推导+纯Python实现机器学习算法19:CatBoost
数学推导+纯Python实现机器学习算法20:随机森林
数学推导+纯Python实现机器学习算法21:最大熵模型
数学推导+纯Python实现机器学习算法22:EM算法
数学推导+纯Python实现机器学习算法23:CRF条件随机场
数学推导+纯Python实现机器学习算法24:HMM隐马尔可夫模型
数学推导+纯Python实现机器学习算法25:kmeans聚类
数学推导+纯Python实现机器学习算法26:PCA降维
数学推导+纯Python实现机器学习算法27:LDA线性判别分析
数学推导+纯Python实现机器学习算法28:奇异值分解SVD
数学推导+纯Python实现机器学习算法29:马尔可夫链蒙特卡洛
数学推导+纯Python实现机器学习算法30:系列总结与感悟
下一步的工作
下一步,笔者将在30讲的基础上继续进行完善和梳理,在深度上进行挖掘,并将系列整理改写为书稿,预计于明年年初成稿。完整版的代码将继续在我的GitHub进行更新完善,感谢各位关注。GitHub地址如下或者阅读原文:
https://github.com/luwill/machine-learning-code-writing
另外,对本系列接下来的改写有建议和想法的朋友可以直接加我微信沟通。
喜欢您就点个在看!