加州大学伯克利分校的david bourgin博士使用numpy手撸各种机器学习源码,Github爆砍13.3k小星星。
https://github.com/ddbourgin/numpy-ml/tree/master
我为什么要推荐这个资源?
目前开源的机器学习框架有很多,例如sklearn,scipy,tensorflow等等。
但是,当你想调试时,或者想查看某些细节是如何实现时,你会发现,这些框架都依赖了很多其他的库。
而numpy-ml仅依赖numpy。
由于没有使用其他第三方库,很多方法都是从零开始实现,当你想通过查看源码验证理论时,numpy-ml是个不错的选择。
例如,对于ALS矩阵分解,你可以通过代码查看求解子矩阵的迭代过程。
对于决策树的创建,如何通过信息增益计算分割条件的代码也非常详细。
主要内容:
1.Gaussian mixture model
EM training
2.Hidden Markov model
Viterbi decoding
Likelihood computation
MLE parameter estimation via Baum-Welch/forward-backward algorithm
3.Latent Dirichlet allocation (topic model)
Standard model with MLE parameter estimation via variational EM
Smoothed model with MAP parameter estim