标签:
Waffles 英文原意是蜂蜜甜饼,在这里却指代一个非常强大的机器学习的开源工具包。Waffles里包含的算法特别多,涉及机器学习的方方面面,推荐系统位于其中的Waffles_recommend tool,大概只占整个Waffles的1/10的内容,其它还有分类、聚类、采样、降维、数据可视化、音频处理等许许多多工具包,估计能与之媲美的也就数Weka了。
你可以在waffles看到关于这个工具的详细内容。
你还可以访问waffles的github站点。
waffles与其他的机器学习工具的区别:
waffles提供以下命令行应用程序,每个都包含执行机器学习操作的几个工具:
虽然项目主页也提供了在windows上使用的办法,但是我在尝试后并没有成功。如果你能在windows上运行出几个demo,那就恭喜你啦!
所以这里还是在linux上做测试,和以前一样,我用的是Ubuntu14.04。
想要编译代码,你的linux必须安装有g++,并且尽量版本高一些,4.6及以上。
如果你没有g++,可以依照下面安装。
如果你使用的是Debian或Ubuntu,使用这个命令:
如果你使用redhat或者fedora,使用这个命令:sudo apt-get install g++ make
把waffles上传至linux(或者你可以从git上直接clone。使用这个命令:git clonehttps://github.com/mikegashler/waffles.git),进入文件夹:sudo yum install g++ make
然后输入:cd waffles/src
如果出现一大堆编译的语句,那么恭喜你编译成功了。按道理来说编译过程就是这么简单,但是我在初期尝试的过程出错了,错误如下:sudo make install
make -j 5 -C GClasses install
make[1]: Entering directory /home/ckf/waffles-master/src/GClasses‘make: Entering directory
/home/ckf/waffles-maste/src/GClasses‘
rm -f ../../lib/libGClassesDbg.a
make: *** No rule to make target ../../obj/GClasses/dbg/G3D.o‘, needed by
../../lib/libGClassesDbg.a‘. Stop.
make: *** Waiting for unfinished jobs....
make: Leaving directory /home/ckf/waffles-master/src/GClasses‘make[1]: *** [install] Error 2make[1]: Leaving directory
/home/ckf/waffles-master/src/GClasses‘
make: *** [INSTALL_GClasses] Error 2
我在github上询问了开发人员,结果人家说在他的Ubuntu14.04上尝试了一遍并没有出错,于是我按照他的步骤又试了一次:
$ git clone
https://github.com/mikegashler/waffles.git
$ cd waffles/src
waffles/src$ sudo make install
很尴尬,还是出错,然后又一个人回答我说在他的Ubuntu14.04上尝试也没有出错,这里不得不多说一句,这些老外真的非常热心,很感谢他们。
最后还是第一位开发人员提供了可行的解决办法(其实在项目主页的Building on Linux上也有,就是第二种办法):
$ cmake这个命令会生成全新的和之前不同的makefiles。然后再输入:
$ make来编译。
这样操作之后,没有错误,编译正常。
cmake过程如下:
make编译过程如下:
接下来给大家运行几个demo。
进入src目录,输入‘make’进行编译,然后会生成一个bin目录,进入bin目录运行生成的那个文件:
其他几个demo都差不多,这里不赘述了。
如果你在之前就试图尝试这个demo,会有编译错误,但是现在尝试没有错误了。原因是我在github上询问开发人员是否还有recommender system的例子时,他们回答说有,但是有编译错误(这个错误不知怎么通过了他们的测试),但是已经立马修复了(他们显然是尝试了一遍才发现了bug,然后在第一时间修改了)。所以如果你现在访问项目的github主页,你会发现demos的目录在不久前被修改过,而其他几个文件夹却是半年甚至两年没修改过了,修改的就是那个编译错误(刚刚看了下,他们又在demos里增加了一些功能)。
现在测试一下recommender system的例子。recommender system在demo目录的名字是community,同样进入src目录进行编译,然后在生成的bin目录中运行:
过一会之后会在浏览器中出现如下界面:
在下面会有创建账号的超链接,点击进入:
第一个账号请取名为root,这样才可以增加新的商品:
这个推荐系统如果想要完全显示出效果,你需要添加足够多的topic并且邀请一些朋友来注册账号,然后不停的评分。官方给出的效果图如下:
前文一共提到过9个开源的推荐系统,但是我并没有全部尝试,几个尝试的也没有深入研究它们内部的算法和代码,一方面是因为自身水平不够,另一方面也是因为毕设没有很多时间。希望有研究的人能给我一些意见和建议,让我能继续学习下去。
关于我没有尝试的几个推荐系统,其中Mahout是基于hadoop的推荐系统,但是由于近年来人们研究的方向开始转向spark(好火呀这个,貌似stack overflow上评出来的程序员薪资前三中就有spark),故放弃尝试。而Myrrix是基于Mahout的推荐系统,该项目组已经被Cloudera公司收购,停止了对Myrrix的开发,故放弃尝试。Easyrec可以免费给网站提供推荐功能,只需要你自己的网站向easyrec发送行为,它就能给你产生推荐,但是easyrec的项目组貌似也已停止了开发。
关于开源推荐系统的暂且先告一段落,这几天在看一本叫集体智慧编程的书,英文名是“Programming Collective Intelligence”,虽然是比较老的书了,但还是能学到不少知识,到时候给大家分享一二。
多谷歌,多问,多尝试,才能不断进步,与诸君共勉。
标签:
原文地址:http://blog.csdn.net/chenkfkevin/article/details/51200982