最近发现一位同学整理了一些经典的降维算法,并用python实现常见降维算法的代码,特此推荐。作者:超爱学习

代码的github:

https://github.com/heucoder/dimensionality_reduction_alo_codes

(github上不止止有代码,还有相应的资料,同时后续也会继续整理其他代码)

1. PCA

当特征数(D)远大于样本数(N)时,需要使用一点小技巧使得PCA算法的复杂度由 c8708658-b837-eb11-8da9-e4434bdf6706.svg 转换为 ca708658-b837-eb11-8da9-e4434bdf6706.svg 。

d2c055d42e373e2748828a4d4de53c0d.png

2. KPCA

aef4674948f5fc8a0efbdc4ff275a129.png

3. MDS

由于sklearn中MDS是采用迭代优化方式,而我这里实现了迭代和非迭代的两种。

c6e8162df86fa626421a7a2c18933663.png

4. Isomap

3474e89755892f9c3e348cc1fc3ac622.png

5. LLE

c91fa2e9958ead10250ca458038ada52.png

6. T-SNE

参考了源代码,同时也用tensorflow实现了一个。(不用自己更新参数的感觉是真的爽)

96544cadf79f441518ef942a6f9708b0.png

7. LDA

547e6e1bf96c42e44658c49da7c61b00.png

8. AutoEncoder

5b8412b5bb9318b56bd3c059a2002da4.png

9. FastICA

10. SVD

github链接如下:

https://github.com/heucoder/dimensionality_reduction_alo_codes

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐