2013年5月20日
摘要: 对于大量的web pages,不可避免的一个问题就是有很多网页是相似的。比如有些网页只是另一网页的剽窃或者镜像。发现这些相似性是大数据处理的一个问题。Jaccada距离:首先,引入一个Jaccad距离来量度两个集合的相似度。定义如下:两个集合S和T之间的相似度为:|S∩T|/|SUT|。例如: S和T之间的相似度为SIM(S,T)=3/8利用这个量度可以很好的解决web pages字面上相似的问题,但是显而易见的问题是,如果逐个字母(或者汉字)对比的话,只是字母层面的相似比较。有可能两篇文章的内容很相似,但是表述的方式不一样,也就是meaning 层面的相似。这在处理新闻等网页时,就很重要了。 阅读全文
posted @ 2013-05-20 17:19 ahujack 阅读(363) 评论(0) 推荐(0) 编辑
摘要: “探索推荐引擎内部的秘密”系列将带领读者从浅入深的学习探索推荐引擎的机制,实现方法,其中还涉及一些基本的优化方法,例如聚类和分类的应用。同时在理论讲解的基础上,还会结合 Apache Mahout 介绍如何在大规模数据上实现各种推荐策略,进行策略优化,构建高效的推荐引擎的方法。本文作为这个系列的第一篇文章,将深入介绍推荐引擎的工作原理,和其中涉及的各种推荐机制,以及它们各自的优缺点和适用场景,帮助用户清楚的了解和快速构建适合自己的推荐引擎。信息发现如今已经进入了一个数据爆炸的时代,随着 Web 2.0 的发展, Web 已经变成数据分享的平台,那么,如何让人们在海量的数据中想要找到他们需要的信 阅读全文
posted @ 2013-05-20 08:49 ahujack 阅读(210) 评论(0) 推荐(0) 编辑
  2013年5月6日
摘要: 我们谈到“文本处理”时,我们通常是指处理的内容。Python 将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个“读”方法: .read()、.readline() 和 .readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。 .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而 .read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实现这种处理。.readline() 和 .readlines() 非常相似。它们都在类似于以下的结构中使用 阅读全文
posted @ 2013-05-06 11:52 ahujack 阅读(327) 评论(0) 推荐(0) 编辑
  2013年5月5日
摘要: 引用是指保存的值为对象的地址。在Python语言中,一个变量保存的值除了基本类型保存的是值外,其它都是引用,因此对于它们的使用就需要小心一些。下面举个例子:问题描述:已知一个列表,求生成一个新的列表,列表元素是原列表的复制a=[1,2]b=a这种做法其实并未真正生成一个新的列表,b指向的仍然是a所指向的对象。这样,如果对a或b的元素进行修改,a,b的值同时发生变化。解决的方法为:a=[1,2]b=a[:]这样修改a对b没有影响。修改b对a没有影响。但 这种方法只适用于简单列表,也就是列表中的元素都是基本类型,如果列表元素还存在列表的话,这种方法就不适用了。原因就是,象a[:]这种处理,只是将列 阅读全文
posted @ 2013-05-05 16:51 ahujack 阅读(188) 评论(0) 推荐(0) 编辑
  2013年5月3日
摘要: 考虑一下这个场景,使用网络爬虫高速爬取大量的网页内容,如果想把这些网页进行实时聚类,并从中提取每个网页聚类的主题.我们应该怎么样去做对于普通或常见的聚类算法,比如K-means,或Hierarchical聚类,无法适用于这个常见,对于这些聚类算法无法进行incremental聚类,即在聚类开始前必须知道整个数据集,而这个场景中的数据集是随着爬虫不断增多的.而且这些聚类算法的performance不够高,比如对于K-means需要不断的partition以达到比较好的聚类效果.所以向来聚类算法在我的印象中是低效的,而面对这样一个需要实时数据递增处理的场景,我们需要一种one-shot的高效算法, 阅读全文
posted @ 2013-05-03 15:13 ahujack 阅读(410) 评论(0) 推荐(0) 编辑
  2013年4月29日
摘要: PCA是一种能够通过提取数据主成分达到数据降维目的的无监督算法。因为数据之间(如自然图像的像素值)间都是存在冗余的,通过PCA可以将维度为256降到一个较低的近似向量。通过一个2D降到1D的例子来理解一下PCA的原理。假设有如下一堆二维数据,我们通过SVD奇异值变换可以找到,代表这堆数据的两个方向(特征向量的方向,为什么是特征向量,特征值呢?)怎么进行SVD变换呢?我们先计算这堆数据的协方差矩阵如下:数据变化的主方向就是sigma的主特征向量,次方向就是sigma的次特征向量。接下来我们计算旋转后的数据(也就是说把数据投影到以这两个特征方向为坐标轴的坐标平面内)如图:当我们只选取前面的k个主特 阅读全文
posted @ 2013-04-29 10:27 ahujack 阅读(1056) 评论(0) 推荐(0) 编辑
  2013年4月15日
摘要: 在机器学习中,如果参数很多,而样本数量比较少,很容易产生过拟合问题。因此在函数的损失模型中加入惩罚系数,这些参数一般都会很小,而越小的参数,模型越简单,越不会产生过拟合问题。参考的网页资源为:http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex5/ex5.html实验原理: 假设对于一个由10个点组成的样本,要拟合一条曲线来表示。如果想采取高次多项式预测表示,如下: 那么现在我们有了模型的六个特征,分别对应的六个预测参数。如果用这... 阅读全文
posted @ 2013-04-15 21:26 ahujack 阅读(456) 评论(0) 推荐(1) 编辑
摘要: Hadoop 是什么?Hadoop是一个提供分布式存储和计算能力的,具有对大型数据集的数据分割和并行计算的能力的平台。由上千台hosts组成的cluster(云)可以达到千兆级的存储和计算能力。一个Hadoop平台的核心组成有两个:分布式的计算(利用的是一个MapReduce的框架)和分布式的存储(一个分布式的文件系统叫做HDFS),高层次的结构图如下:HDFS:MapReduce:程序员要做的事情就是定义map和reduce函数,map函数用来输出key/value tuples,然后交给reduce函数生成最后的输出。伪代码如下:map函数有可能产生零个或者多个输出,当条件不满足时,产生零 阅读全文
posted @ 2013-04-15 13:58 ahujack 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 多线程和多进程的区别(小结)很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。今天终于下了决心,写点东西,以后可以再修修补补也无妨。一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。我想,只要你不是整天都写那种int main()到底的代码的人,那么或多或少你会遇到代码响应不够用的情况,也应该有尝过并发编程的甜头。就像一个快餐点的服务员,既要在前台接待客户点餐,又要接电话送外卖,没有分身术肯定会忙得你焦头烂额的。幸运的是 阅读全文
posted @ 2013-04-15 10:35 ahujack 阅读(156) 评论(0) 推荐(0) 编辑
  2013年4月12日
摘要: 前言 本文是多元线性回归的练习,这里练习的是最简单的二元线性回归,参考斯坦福大学的教学网http://openclassroom.stanford.edu/MainFolder/DocumentPage.php?course=DeepLearning&doc=exercises/ex2/ex2.html。本题给出的是50个数据样本点,其中x为这50个小朋友到的年龄,年龄为2岁到8岁,年龄可有小数形式呈现。Y为这50个小朋友对应的身高,当然也是小数形式表示的。现在的问题是要根据这50个训练样本,估计出3.5岁和7岁时小孩子的身高。通过画出训练样本点的分布凭直觉可以发现这是一个典型的线性回 阅读全文
posted @ 2013-04-12 15:32 ahujack 阅读(188) 评论(0) 推荐(0) 编辑