摘要: 前面的文章"Weight Slope One算法"介绍了Weight Slope One算法,这个算法通常用于评分的预测,这种预测通常基于大数据,这篇文章将要讲述的就是hadoop下实现Weight Slpope One算法。Mrjob是python中的一个hadoop框架,为什么用python呢?因为使用python开发起来比较快,而且hadoop程序多是I/O密集型,所以用python比用java慢不了多少。用Mrjob编写和调试hadoop程序是非常简单和直观的,但是它内部一个序列化过程对性能产生的损害,因此现在用mrjob,还是感觉慢了些,希望以后它能修正这个问题。 阅读全文
posted @ 2013-05-02 16:12 HOLD 阅读(454) 评论(1) 推荐(0) 编辑
摘要: [原文]:http://www.sobuhu.com/archives/567最近发现一个很好玩的Python库,可以方便的使用在Python下编写MapReduce任务,直接使用Hadoop Streaming在Hadoop上跑。对于一般的Hadoop而言,如果任务需要大量的IO相关操作(如数据库查询、文件读写等),使用Python还是Java、C++,性能差别不大,而如果需要大量的数据运算,那可能Python会慢很多(语言级别上的慢),参考这里。最常见的如日志分析、Query统计等,都可以直接用Python快速完成。Python作为一种快速开发语言,优美、简洁的语法征服了很多人,现在很多的 阅读全文
posted @ 2013-04-10 21:28 HOLD 阅读(714) 评论(0) 推荐(0) 编辑
摘要: 协同过滤方法是推荐系统采用的主要技术之一,这篇文章将要介绍此类方法中中的Weighted Slope One算法。Slope算法的核心思想来自线性回归分析。在线性回归分析中,给定一个训练集S={<x1,y1>,<x2,y2>...<xn,yn>}, Slope One算法假设xi和yi之间符合y=x+b的线性关系,根据最小二乘法进行线性拟合的方法,可以得到令目标函数:达到最小值的参数:b的估计值即为训练集中数对只差的算术平均值。因此,由训练我们可以得到线性拟合公式y=x+b^.上面即为Slope One算法的思想。其实,这个算法非常简单,举个例子:user 阅读全文
posted @ 2013-03-22 23:18 HOLD 阅读(691) 评论(0) 推荐(0) 编辑
摘要: 最近在做图像处理方面的一些工作,和几个滤波器打了不少交道,这里做个总结。滤波器是信号处理上的概念,但是信号处理那套理论的应用范围很广,我主要用的是在图像处理上的应用。这篇文章主要讲滤波器的功能和matlab中的使用方法,至于原理,我也不太懂...图像常常被强度随机信号所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声、脉冲噪声、高斯噪声等。椒盐噪声含有随机出现的黑白强度值,而脉冲噪声则只含有随机的白强度值(正脉冲噪声)或黑强度值(负脉冲噪声)。与前两者不同,高斯噪声含有强度服从高斯或正态分布的噪声。(1)高斯低通滤波器高斯滤波器是响应脉冲为高斯形状的滤波器,对于图像来说,高 阅读全文
posted @ 2012-12-14 15:09 HOLD 阅读(3120) 评论(0) 推荐(1) 编辑
摘要: 关键是一个叫做roipoly的函数,它的输入是一副图像,然后在图像窗口中手动划定一个区域,然后输出一个黑白图像,其中你标记的地方为白,其余地方为黑。下面这个程序实现了如何从一个大图中手动的拿出一小部分。function g=getROIbyInter(f)f=rgb2gray(f);bw=roipoly(f);[I,J]=find(bw==1);g=f(min(I):max(I),min(J):max(J));end结果:输入:输出: 阅读全文
posted @ 2012-12-12 22:26 HOLD 阅读(1913) 评论(0) 推荐(0) 编辑
摘要: 最近一直在研究图像分割技术,越研究觉得越有意思。这里所说的研究其实也只是研究别人论文然后自己实现一下而已罢了。。。图像分割就是把图像中的各个部分分开,能区分出哪里是前景,哪里是背景,如果前景和背景分别用0和1表示,那就是叫做图像二值化了。但是图像分割也不仅仅限于二分,可以任意多的分。从这个角度讲二值化是图像分割结果的一种表示而已,只不过二分研究的比较多,也比较容易些。至于分割的方法有很多种,比较粗的分类可以分为全局和局部的。全局方法就是一个阈值,像素值大于此值的为1,小于此值的为0。局部方法就是对每一个像素求阈值。Niblack方法就是局部方法中的一种,它根据以像素点为中心的邻域内的点的情况为 阅读全文
posted @ 2012-12-12 14:57 HOLD 阅读(6135) 评论(0) 推荐(1) 编辑
摘要: 图像分割(segmentation)是一种非常常用的技术,这种技术能够把你想要研究的东西和不相关的东西给分离开来,比如我们经常用photoshop把照片的人取出来然后换个背景或者其他ps一下,这个就是图像分割,但是这个领域研究的都是自动图像分割技术,不需要人工去分。现在已经提出的自动图像分割方法有很多种,但是只能解决一部分的问题,有些图像还必须人工去分,所以挑战依旧存在,新的方法依旧不断被提出。出于一些医疗上的目的,经常需要对一些医疗成像的血管图像进行分割,提取出血管部分,来进行进一步的研究,所以血管分割作为图像分割中的一类,有很多关专门解决这个问题的算法被提出。而本文将要介绍的方法就属于所有 阅读全文
posted @ 2012-12-09 22:42 HOLD 阅读(4107) 评论(1) 推荐(0) 编辑
摘要: 经常听说Git是个很好用的版本控制工具,但是一直没用过。现在要解决一个很头疼的问题,就是要把我本地(window操作系统)代码放到6个linux服务器上去跑,因为代码要在本地调试,经常变动,以前总是一个一个上传(够笨拙的办法),这样做一来很麻烦,二来很容易出现混乱,所以必须想一个好办法管理代码。当然了,最好的办法是把6台独立的服务器搭建成一个分布式运算平台,但是现在时间很紧张,来不及了,只好先选择一个简单点的办法,先把这次实验跑完再说。就先用Git吧~Step 1: 在window上安装msysgitmsysgit是一个在windows上使用git的软件(下载地址http://code.goo 阅读全文
posted @ 2012-11-02 23:29 HOLD 阅读(3721) 评论(0) 推荐(0) 编辑
摘要: 尝试用msysgit的bash通过ssh方式连接到github时,很郁闷总是出错:permission denied <publickey>。还好这个问题很常见,github将常见的解决办法进行了汇总,https://help.github.com/articles/error-permission-denied-publickey。后来发现了原因所在。在git bash里面运行ssh -vT git@github.com命令,将打印出连接信息,从下图可以很清楚的看到尝试找密钥没找到的过程。这说明密钥的路径服务器根本就不知道,自然找不到。这个密钥是用ssh-keygen命令产生的, 阅读全文
posted @ 2012-11-02 17:52 HOLD 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 1,SSH简介SSH为secure shell的缩写,SSH为创建在应用层和传输层基础上的安全协议。传统的网络服务程序,如FTP、POP和Telnet其本质上都是不安全的。因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。所谓"中间人"的攻击方式,就是"中间人"冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被"中间人"一转手做了手脚之后,就会出现很严重的问题。而SSH是目前较可靠,专为远程登录会话和其他网络服 阅读全文
posted @ 2012-11-02 17:35 HOLD 阅读(298) 评论(0) 推荐(0) 编辑