Waffles是一款跨平台的、基于命令行的机器学习开发包,包含了现有的主要机器学习算法,完全开源,用C++编写,使用方便。
该工具包的强大之处非常多,很重要的一个方面就是其在非监督学习方面的包罗万象,特别是降维算法,实现了PCA、isomap、LLE、manifold sculpting、breadth-first unfolding、neuro-PCA、cycle-cut、unsupervised backpropagation and temporal nonlinear dimensionality reduction等算法。
对于聚类算法,也很强大,包括了k-means、k-medoids、agglomerative clustering、related transduction algorithms including agglomerative transduction、max-flow/min-cut transduction等方法。
监督学习算法包括decision trees、multi-layer neural networks、k-nearest neighbor、naive bayes,甚至还有些不常用的算法,比如mean-margin trees。
相比另一个开源的机器学习开发包Weka,waffles在非监督学习算法上要强大的多(Weka只支持PCA),而在监督学习的算法上支持的较少(Weka有50多种分类算法)。
给出Waffles的网站,希望有需要的朋友在其中得到更多想要的东西http://waffles.sourceforge.net/
我也是刚接触到这个开发包,这个开发包也就十几个人写的,有人问我opencv里也有ml的部分,如何比较,我感觉这个都是设计的关注点不同,设计的思路当然也不同,用处也不同,我最近在看ml的算法部分,我感觉这个库还是对我的学习有很大帮助的。
先介绍一下这个库的概述吧
waffles_audio 包含了处理音频文件的工具(处理音频做什么?还没有用到过)
waffles_cluster 包含了聚类的方法
waffles_dimred 包含了降维、特征选取的方法
waffles_generate 包含产生样本分布、样本流形、或其他类型的数据的工具
waffles_learn 包含了监督学习的方法
waffles_plot 包含了可视化数据的工具
waffles_recommend 包含了协同滤波推荐系统imputation(不懂干啥的。。。)
waffles_sparse 包含了稀疏数据的学习,文件的分类等
waffles_transform 包含了处理数据行列的操作,矩阵的操作等变换
waffles_wizard 是一个可视化的工具,在一个浏览器下实现图形交互,最大限度的降低开发者对于界面的关注度
所有的这些功能都被包含在c++类库GClasses中,使用起来非常方便,只需using namespace GClasses
以上又是一个很简单的介绍,我现在只使用了其中降维部分的资料,大家有兴趣就自己发掘一下吧,我知道的也很少的^_^
接下来介绍一下再win环境下的配置,linux和osx的配置在主页上也有介绍,大家自己看咯~~
什么!如果你不会安装它,那我建议你赶紧放弃IT业。只要你电脑安装了vs2008或2010,就能看见*.sln了吧,对的,果断双击它,编译运行吧,少年!
from: http://blog.csdn.net/yang_xian521/article/details/7312902