摘要:这次通过一个实例来讲解一下协同推荐的问题。在实际生活中,我们会经常收到当当,卓马逊等购物网站发来的商品推荐邮件。很奇怪卓马逊是依据什么来给我发一些相关商品的推荐,但是今天我们就假定他是根据协同推荐的机制来实现这一功能的吧。很多时候购物网站都是根据其他用户的评价给一个用户推荐商品或者图书等。很多购物网站都会有这种长尾效益,用户购买或者评价的商品都是少数,而大多数商品只是得到很少几个用户的评价。所以存在数据稀疏的问题。这里就叫“cold start”问题。SlopeOne算法可以用来解决这个问题,这个算法很简单,易于实现且效率较高。SlopeOne的基本概念很简单,例如用户X,Y和A都对项目1打了
阅读全文
摘要:机器学习的方法主要分为生成式和判别式两种。生成式模型:假定输入是X,类别标签是Y。产生式模型估计联合概率P(X,Y),因为可以根据联合概率来生成样本。判别式模型:假定输入是X,类别标签是Y。判别式模型估计条件概率P(X|Y),该模型只能用来判断分类,因为其不包含有关X的知识。举个例子来说明这两个概念:假如我现在给出了一组样本:(1,0),(1,1),(2,0),(2,1)。假定这就是能观察到的全部生成模型估计P(Y,X)如:P(1,0)=1/2;P(1,1)=0;P(2,0)=1/4;P(2,1)=1/4;判别模型估计P(X|Y)如:P(0|1)=1,P(1|1)=0,P(0|2)=1/2,P
阅读全文
摘要:正如在上篇文章中看到的,在查找最底层的文档时用到了一个全局变量集合COUNT来保存当前目录下的所有文件。实际上在python的进一步应用中,经常会涉及到全局变量的问题,常见的全局变量有两种用法:第一:声明法:在文件开头声明Python全局变量variable,在具体函数中使用该变量时,需要事先声明 global variable,否则系统将该变量视为局部变量。 通常将全局变量用大写字母表示。例如上篇文章中要将最初目录下的所有文档路径记录下来以便下一个方法的处理,就用到了一个全局变量COUNTimport sysimport osCOUNT=set()def fun(path): for ...
阅读全文
摘要:最近在作一个有关自然语言处理的project,要处理大量的语料文本,而python这种脚本在处理字符串上又有其无可比拟的优势,所以就看了看这方面的书。以下是在做语料处理时遇到的一些问题,总结一下,也好以后再深入学习:第一个问题就是大量文本读入的问题,因为通过语料分词处理后会生成大量的文本文档,想实现对这些文本的批处理,python中一个很好的包os帮了忙:先在分词程序中将处理后的文档写入到同一文件夹下,这里就是“c:\data”吧,然后通过下面的代码实现:import sysimport os def fun(path):#path 是路径 for root,dirs,files in ...
阅读全文