分享自己实现的一些机器学习算法

2018-08-23 20:10:28 +08:00
 jswangjieda
自学机器学习算法也有六个月了,也累积不少代码了,发出来供初学者参考,要是能有大佬批评指正一下最好了。
代码注释都是中文的,还有一些补充说明。注释和部分命名借鉴了 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
1439 次点击
所在节点    Python
2 条回复
jswangjieda
2018-09-17 19:17:54 +08:00
多层感知器上传了,包含算法的完整实现,调用示例,可视化探究,学习笔记,以及一个 pyqt 写的演示小程序。
提供 sigmoid/tanh/ReLU/softmax 四种激活函数,均方误差 /交叉熵 /对数似然三种代价函数,分类和回归均支持。
另外提供 mnist/cifar10 数据集管理工具,不提供数据集,请自行下载。
jswangjieda
2018-09-29 10:59:01 +08:00
新增聚类算法:k-means, dbscan, 凝聚式层次聚类
新增推荐算法:协同过滤

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/482643

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX