在BashOnWindows里运行Mobius(C# on Spark)

缘起 首先,我想说,这是一篇有点画风清奇的博文,将一个Linux-first的分布式系统软件Spark,与被一般偏见认为只能在Windows上运行的C#语言API,跑在Windows的原生Bash环境里。 先介绍Windows的原生Bash环境。Bash On Windows(也称为Windows Subsystem for Linux (WSL))是Win10一周年更新所带来的新特性,简单地说就是可以在Windows上native地运行bash的一些常用命令(如sed,awk之类),个人感觉是比虚拟机更贴近内核的东西。当然目前还是beta版,希望日后可以逐渐完善以取代Cygwin之类的软件。 C#是微软主导开发的一门语言, »

推荐系统中的恶意用户过滤浅析

这篇文章大约很早前就想写了,不过随着自己屡次复发的拖延症一起被淹没了,直到最近有人在网络上咨询我才重新拿起来写篇博文。 这个题目其实来自于一道基于Hadoop MapReduce的编程类比赛题目,原题大约如下:基于公开数据集MovieLens数据集上的用户评价数据,计算用户对其未看过,并且可能会看的电影的评分。同时请各参赛队伍考虑数据稀疏性问题和恶意用户问题,使推荐系统在上述极端情况下具有较好的性能,其中的恶意用户被定义为在推荐系统中,存在一系列的恶意用户,其行为主要体现在随机打分或为多部电影打相同的分。为了检验推荐算法是否可以减少或避免恶意用户的影响,将通过随机加入恶意用户的方法,比率为5%,10%,并分别执行推荐算法,计算RMSE和MAE。,可以理解成那些在豆瓣上,电影放映期间的水军。 与Spark自己构建了一个MLlib的思路不同,Hadoop将主要精力focus在存储的HDFS和任务分配执行的YARN(包含可以执行MapReduce的任务部分)上面, »