自学机器学习算法也有六个月了,也累积不少代码了,发出来供初学者参考,要是能有大佬批评指正一下最好了。
代码注释都是中文的,还有一些补充说明。注释和部分命名借鉴了 sklearn,极少量的实现思路参考了 sklearn/libsvm 源码。
由于个人能力有限,性能上表现得不太令人满意,训练示例中有很多地方和 sklearn 做了对比,性能上平均差距在 30 倍左右,有些地方代码还写得很累赘,待自己水平提高后会再重写以前的实现的。
ide: anaconda3(64bit)(python3.6)
使用到的类库:
主要 numpy, pandas, matlibplot
少量 scipy, numba
目前已实现的算法和能处理的问题类型
回归:线性回归,逻辑回归 -> 回归,多分类
决策树:ID3,C4.5,CART -> 多分类,多分类,多分类 /回归
集成学习:随机森林,adaboost,GBDT -> 多分类 /回归,多分类 /回归,多分类 /回归
支持向量机(线性核 /多项式核 /径向基核) -> 多分类 /回归
朴素贝叶斯 -> 多分类
(还有一个孤立森林,用于处理离群点的,但是很早之前写的了,很不完善,忽视掉吧)
用于分类的多层感知器已经写好了,但还在进一步学习和研磨,所以还要一阵子才会上传。
(为了加速运算,折腾了一阵子 cuda,但没收到预期的效果,只能暂时放弃了,太憋屈了)
链接:
https://github.com/jiedawang/machine-learning-python
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/482643
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.