首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 数据库 第二书店 程序员

Tag/ 


共67个网摘 [ 1  2  3 ]  下一页  |  

Bayesian评分系统:解决样本数量过少引起的问题

zdg收录,使用标签:Arithmetic,时间:2008-3-12 20:07:18 | 相关网摘我也收藏

问题的根源是什么?问题的根源就是,样本少了会导致结果不可靠。某篇文章的评分人数越少,其平均得分越不可靠,我们应该想办法让得分越靠近所有文章的总平均得分。

所有文章的总平均分*每篇文章的平均评分人数 + 这篇文章的平均分*这篇文章的评分人数
文章最终得分 = ---------------------------------------------------------------------------------
每篇文章的平均评分人数 + 这篇文章的评分人数

这里,总平均分的权值用的是每篇文章的平均评分人数。你也可以自己设定一个合适的权值。
这种评分方法叫做Bayesian评分。很多web 2.0站点都在用这种评分系统。


53 位回文平方数

zdg收录,使用标签:Math, Arithmetic,时间:2008-1-25 15:19:06 | 相关网摘我也收藏

回文平方数的记录原来是 Pete Leadbetter May 20, 2001 的:

64897400105515621177314682^2 = 4211672540455378958718869999688178598735540452761124 (52位).

我昨天找到了一个 53 位的回文平方数:

122063831551139898460740721^2 = 14899578972945056149893218681239894165054927987599841

用的机器是 DELL PRECISION 9200 DUAL QUADCORE 2.33 GHZ, C++, 算法用了八个 CORE. 不过还没算完所有 52 位数, 所以八个 CORE对找到这个数作用不大.

其他的一些回文数记录在:

http://www.worldofnumbers.com/palrecs.htm


Digg 算法揭密

zdg收录,使用标签:digg, Arithmetic,时间:2007-12-2 12:42:58 | 相关网摘我也收藏

是什么力量把一篇文章带到首页上的?算法啊算法~

* Digg的算法用来解释用户和粉丝们的近期参与等级。
* 频繁的成功(指上首页)会导致随后的上首页几率大减。应该走三天打鱼两天晒网路线。
* 从“高价值”用户那儿搞到快速有效的Diggs。
* 一篇文章显示到首页上需要的Diggs和以下两点相关:在某特定时间段内获得的Digg数,以及这个数值和平均值的对比。
* 在科技,世界和商业类别中的竞争比运动和娱乐类别更激烈。如果某个故事是它所在类别中的热门,50个Digg就可将它顶到首页上去。
* 一个故事获得投票的速度越快,晋级所必需的投票数就越少。但是多样性很重要。由"voting rings"digg的故事会在队列的高位保持数小时。
* 过多被埋(囧)会导致你的故事被从队列中移除。
* 评论会让一个故事脱颖而出。当然,不能是无效评论...
* 错误的:需要一个确切数量的投票数才能上首页。
* 错误的:如果你的故事没有被一个顶级用户提交,那么你注定上不了首页。
* 错误的:朋友数量很重要。Digg真正需要的是一个文章收到Diggs的多样性。
* 错误的:那儿有个迈向成功的24小时窗口


随机数有多随机?

zdg收录,使用标签:Math, Arithmetic,时间:2007-11-25 23:15:21 | 相关网摘我也收藏

最后,我的结论是:我用的 gcc 这个版本的 rand 函数不算很好。至少不能应用于极端要求随机性的场合。它对大量模拟六面骰这件事情上做的不太成功。


小议ID生成算法

zdg收录,使用标签:Arithmetic, SQLServer,时间:2007-11-19 15:59:20 | 相关网摘我也收藏

替代方案之三,就是把ID分成两部分,Seed和IncrementID。Seed采用上面的方案二或者其他办法生成,IncrementID使用一个AtomicInteger来每次递增生成。SEED转化为九进制数字,这样SEED就不会包含9,于是使用9作为分隔符,把SEED和IncrementID隔开。这样做,就可以做高性能产生ID,而且确保不重复。甚至可以更进一步,SEED由一个中心服务器生成。使用9个分隔符号隔开SEED和IncrementID,好处是SEED是变长,而不是使用固定位数来保存SEED,这样产生的ID会更短,可读性更好。


关于数据挖掘(协同过滤、关联推荐、聚类分类)一些资料

zdg收录,使用标签:DataMining, filter, Apriori, Arithmetic,时间:2007-11-14 18:53:01 | 相关网摘我也收藏

虽然Apriori算法自身已经进行了一定的优化,但是在实际的应用中,还是存在不令人满意的地方,于是人们相继提出了一些优化的方法。


相似性和相异性的度量 - 《数据挖掘导论》

zdg收录,使用标签:DataMining, Arithmetic,时间:2007-10-24 13:23:32 | 相关网摘我也收藏

相似性和相异性是重要的概念,因为它们被许多数据挖掘技术所使用,如聚类、最近邻分类和异常检测等。在许多情况下,一旦计算出相似性或相异性,原始数据就不再需要了。这种方法可以看作将数据变换到相似性(相异性)空间,然后进行分析。


C/C++面试之算法系列--如何实现用更少的空间表示英文字母(a ~ z)构成char A[n]字符串

zdg收录,使用标签:Arithmetic, 字符串,时间:2007-9-30 12:17:10 | 相关网摘我也收藏

比较而言,“26进制编码”的思想实现起来更为简单,因为有这么多函数可以借鉴,其转换的时间效率更高。但是这个思想不一定很容易想到。
但“字节压缩”算法的转换效率为5/8,节省3/8,而“26进制编码”最多节省1/3,因此“字节压缩”在大量数据需要压缩的情况下存储效率更好。


信息指纹概述

zdg收录,使用标签:指纹, Arithmetic,时间:2007-9-29 18:02:58 | 相关网摘我也收藏

转换为信息指纹的好处:

1 存储空间变小。一个只要存贮整形的数和一个需要存储整个字符串显然是数要好得多

2 查找方便。如果字符串查找,则需要一个个匹配。而转换为整形则可以使用排序后折半查找等方法可以大大的提高效率。效率得到了提高。


数学之美系列二十一--布隆过滤器(Bloom Filter)

zdg收录,使用标签:Arithmetic, filter, 指纹,时间:2007-9-29 17:51:03 | 相关网摘我也收藏

布隆过滤器是由巴顿.布隆于一九七零年提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。我们通过上面的例子来说明起工作原理。

假定我们存储一亿个电子邮件地址,我们先建立一个十六亿二进制(比特),即两亿字节的向量,然后将这十六亿个二进制全部设置为零。对于每一个电子邮件地址 X,我们用八个不同的随机数产生器(F1,F2, ...,F8) 产生八个信息指纹(f1, f2, ..., f8)。再用一个随机数产生器 G 把这八个信息指纹映射到 1 到十六亿中的八个自然数 g1, g2, ...,g8。现在我们把这八个位置的二进制全部设置为一。当我们对这一亿个 email 地址都进行这样的处理后。一个针对这些 email 地址的布隆过滤器就建成了。

现在,让我们看看如何用布隆过滤器来检测一个可疑的电子邮件地址 Y 是否在黑名单中。我们用相同的八个随机数产生器(F1, F2, ..., F8)对这个地址产生八个信息指纹 s1,s2,...,s8,然后将这八个指纹对应到布隆过滤器的八个二进制位,分别是 t1,t2,...,t8。如果 Y 在黑名单中,显然,t1,t2,..,t8 对应的八个二进制一定是一。这样在遇到任何在黑名单中的电子邮件地址,我们都能准确地发现。

布隆过滤器决不会漏掉任何一个在黑名单中的可疑地址。但是,它有一条不足之处。也就是它有极小的可能将一个不在黑名单中的电子邮件地址判定为在黑名单中,因为有可能某个好的邮件地址正巧对应个八个都被设置成一的二进制位。好在这种可能性很小。我们把它称为误识概率。在上面的例子中,误识概率在万分之一以下。


intelligent data analysis programs

zdg收录,使用标签:DataMining, Arithmetic,时间:2007-9-19 18:52:36 | 相关网摘我也收藏

A toolbox combining several intelligent data analysis programs under a uniform graphical user interface.


《环球科学》2007年第8期 打造围棋“深蓝”

zdg收录,使用标签:围棋, Arithmetic,时间:2007-8-28 23:44:22 | 相关网摘我也收藏

为了处理如此众多的可能情况,人工智能专家已经设计出一些算法,来限制搜索的范围,但它们都无法在大棋盘的比赛中战胜实力稍强的人类棋手。去年秋季,两位匈牙利研究人员报告了一种新算法,它的胜率比现有最佳算法提高了5%,能够在小棋盘的比赛中与人类职业棋手抗衡。这种被称为UCT的算法,是匈牙利国家科学院计算机与自动化研究所(位于布达佩斯)的列文特·科奇什(Levente Kocsis)与加拿大阿尔伯塔大学(University of Alberta,位于埃德蒙顿)的乔鲍·塞派什瓦里(Csaba Szepesvári)合作提出的,是著名的蒙特卡罗方法(Monte Carlo method)的扩展应用。


迅雷(XUNLEI)的工作原理揭密

zdg收录,使用标签:Arithmetic, 迅雷, Download,时间:2007-8-7 18:09:15 | 相关网摘我也收藏

下载部分内容计划摘要,听起来真不错,又是一个中庸的想法,我现在越来越喜欢中庸了,没错,就是它,但下载哪部分内容呢?我们可以根据文件大小利用一些简单的散列算法生成散列值,根据这些值在文件的不同部分读取一定量的数据,总数据量控制在K级别(同网页差不多大小),然后将这些数据拼装成整体存储并生成其摘要。这种方法是可行的。首先,它的下载量不大,其次,根据该方法判文件的等价性同基准方法(根据所有数据算摘要)比准确率几乎相同(证明过程我就不说了,实践才是最好的标谁)

利用摘要判断文件等价性的方法有一个好处是可以忽略一些次要信息,比如文件名,创建时间,修改时间等,但文件类型,长度和摘要则是需要考虑的成份。也就是说,如果这三者一样,则我们认为文件是一样的。


推荐系统:Slope One 算法

zdg收录,使用标签:Recommend, Arithmetic,时间:2007-7-26 0:07:30 | 相关网摘我也收藏

Slope One 算法试图同时满足这样的的 5 个目标:

易于实现和维护:普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试。
运行时可更新的:新增一个评分项,应该对预测结果即时产生影响。
高效率的查询响应:快速的执行查询,可能需要付出更多的空间占用作为代价。
对初次访问者要求少:对于一个评分项目很少的用户,也应该可以获得有效的推荐。
合理的准确性:与最准确的方法相比,此方法应该是有竞争力的,准确性方面的微小增长不能以简单性和扩展性的大量牺牲为代价。


推荐系统:协同过滤 之 Item-based Collaborative Filtering

zdg收录,使用标签:Recommend, Arithmetic, filter,时间:2007-7-25 23:56:23 | 相关网摘我也收藏

同 User-based 方法类似,Item-based 方法需要同样的三个步骤:1)得到User-item的评分数据;2)针对项的最近邻搜索,即对项进行相似度计算;3)产生推荐。但相对于 User-based 方法,Item-based 方法最大的改进是提高了协同过滤方法的扩展性及性能。

Item-based 方法通过计算项之间的相似性来代替用户之间的相似性。对于项来讲,它们之间的相似性要稳定很多,因此可以离线完成工作量最大的相似性计算步骤,从而大大降低了在线计算量,提高推荐效率。

在 Item-based 方法中,要对 A 和 B 进行项相似性计算,通常分为两步:1)找出同时对 A 和 B 打过分的组合;2)对这些组合进行相似度计算,常用的算法包括:皮尔森相关系数、余弦相似性、调整余弦相似性和条件概率等。


推荐系统:协同过滤 之 User-based Collaborative Filtering

zdg收录,使用标签:Recommend, Arithmetic, filter,时间:2007-7-25 23:53:53 | 相关网摘我也收藏

协同过滤(Collaborative Filtering)技术,是推荐系统中应用最为广泛的技术之一。顾名思义,“Collaborative” 本身就已经说明了协同过滤算法的主要意思,它基于一组兴趣相同的用户进行推荐。协同过滤基于这样的假设:为用户找到他真正感兴趣的内容的好方法是,首先找他与他兴趣相似的用户,然后将这些用户感兴趣的内容推荐给此用户。

协同过滤技术可以分为三类:基于用户(User-based)的协同过滤;基于项目(Item-based)的协同过滤;基于模型(Model-based)的协同过滤。这篇文章针对基于用户(User-based)的协同过滤技术。建立一个基于用户的协同过滤系统通常需要三个步骤。

步骤一,收集可以代表用户兴趣的信息。
另外一种被认为更有效的方法是“隐式评分”方法。这种方法不需要用户直接输入评价数据,而是根据用户的行为特征由系统代替用户完成评价。一种研究得比较多的方法是 Web Mining 。

步骤二,最近邻搜索。
目前使用比较多的相似度算法包括,皮尔森相关系数(Person Correlation Coefficient)、余弦相似性(Cosine-based Similarity)以及调整余弦相似性(Adjusted Consine Similarity)。这里有一个试验,结论是“调整余弦相似性”算法的准确性较好。

步骤三,生成推荐结果。
最常见的推荐结果有两种,Top-N 推荐和关联推荐。
Top-N 推荐是针对单个用户产生的,它对每个人是不一样的:通过对你的最近邻用户进行统计,选择出现频率最高且在你的评分项目中不存在的项目作为推荐结果。


推荐系统:关联规则(2)--Apriori Algorithm

zdg收录,使用标签:Arithmetic, DataMining, Recommend,时间:2007-7-25 23:00:48 | 相关网摘我也收藏

Apriori Algorithm 是关联规则领域里最具影响力的基础算法。它是由 Rakesh Agrawal 在 1994 年提出的,详细的介绍在这里《Fast Algorithms for Mining Association Rules》。

Apriori 是一种广度优先算法,通过多次扫描数据库来获取支持度大于最小支持度的频繁项集。它的理论基础是频繁项集的两个单调性原则:频繁项集的任一子集一定是频繁 的;非频繁项集的任一超集一定是非频繁的。


智能推荐系统技术研究

zdg收录,使用标签:Recommend, Arithmetic,时间:2007-3-20 18:04:23 | 相关网摘我也收藏

几种推荐系统技术介绍:

1.基于关联规则的推荐算法

关联规则就是在一个交易数据库中统计购买了商品集X的交易中有多大比例的交易同时购买了商品集Y,得到的关联规则表示为:X=>Y[s%,c%]
s表示关联规则的支持度,c表示关联规则的置信度

关联规则的发现算法很多,如Apriori,AprioriTid,DHP,FP-tree等

算法过程:

使用关联规则发现算法找出所有满足最小支持度和最小置信度的关联规则R
找出R中所有被客户支持的关联规则R1,即关联规则左边的所有商品都被客户购买
找出被关联规则R1所预测并且没有被客户所购买的所有商品P
根据P中商品在关联规则R1中的置信度排序,如果某商品被多个规则预测,则取置信度最大者作为排序依据,挑选前N个商品作为算法输出
2.基于最近邻居的协同过滤算法

基本思想:使用统计技术寻找与目标客户有相同喜好的邻居;然后根据目标客户多个邻居的观点产生向目标客户的推荐,
通过奇异值分解(Singular Value Decomposition)将m*n阶客户-商品矩阵变换为m*k阶矩阵,这种表示称为降维表示(Reduced Dimensional Representation),可以部分解决原始表示存在的稀疏性、缩放性和同义词问题

表示(Representation):对客户已经购买的商品进行建模
邻居形成(Neighborhood Formation):寻找目标客户所对应的邻居
推荐产生(Recommendation Generation):从目标客户的邻居中产生N项产品推荐
3.基于项目的协同过滤算法

基本思路:根据目标客户已经评价过的项目与目标项目的相似性,选择k个最相似的项目{i1, i2, ……, ik},同时得到k个最相似的项目与目标项目的相似度,记为{si1, si2, ……, sik},然后将目标客户对这k个最相似的项目的评分及这k个最相似的项目与目标项目的相似度的加权平均值作为对目标项目的评分
本算法主要分两步:

项目相似性计算
产生推荐


Url排重Bloom Filter 算法、误差及其他

zdg收录,使用标签:搜索技术, Arithmetic,时间:2007-1-25 12:43:06 | 相关网摘我也收藏

google黑板报上一片文章,讲Url排重用到的一个技巧:把平均长度较长的Url转换成平均长度较短的GUID来节省空间。在Url排重方面还有一个常用的算法:Bloom Filter 算法。Bloom Filter 算法是查看元素E是否在集合S中存在的快速算法,典型的应用就是拼写检查spellcheck时,查看某个单词是否在字典中存在。关于查询的算法有很多种了,排序折半、B-Tree、Hash-Code 等等。Bloom Filter 的优点是什么呢?
1、Bloom Filter不存储key-value值,Bloom Filter 用一组Hash算法把集合S中的元素E换算成位表示;
2、查询速度快。


数学之美 系列十六(上) 不要把所有的鸡蛋放在一个篮子里 -- 谈谈最大熵模型

zdg收录,使用标签:Math, google, Arithmetic,时间:2006-11-18 0:38:42 | 相关网摘我也收藏

最大熵原理指出,当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。(不做主观假设这点很重要。)在这种情况下,概率分布最均匀,预测的风险最小。因为这时概率分布的信息熵最大,所以人们称这种模型叫“最大熵模型”。我们常说,不要把所有的鸡蛋放在一个篮子里,其实就是最大熵原理的一个朴素的说法,因为当我们遇到不确定性时,就要保留各种可能性。


数学之美 系列十六(下)- 不要把所有的鸡蛋放在一个篮子里 最大熵模型

zdg收录,使用标签:Math, google, Arithmetic,时间:2006-11-18 0:28:50 | 相关网摘我也收藏

拉纳帕提成功地将上下文信息、词性(名词、动词和形容词等)、句子成分(主谓宾)通过最大熵模型结合起来,做出了当时世界上最好的词性标识系统和句法分析器。拉纳帕提的论文发表后让人们耳目一新。拉纳帕提的词性标注系统,至今仍然是使用单一方法最好的系统。科学家们从拉纳帕提的成就中,又看到了用最大熵模型解决复杂的文字信息处理的希望。

最大熵模型,可以说是集简与繁于一体,形式简单,实现复杂。值得一提的是,在Google的很多产品中,比如机器翻译,都直接或间接地用到了最大熵模型。

我们知道,决定股票涨落的因素可能有几十甚至上百种,而最大熵方法恰恰能找到一个同时满足成千上万种不同条件的模型。达拉皮垂兄弟等科学家在那里,用于最大熵模型和其他一些先进的数学工具对股票预测,获得了巨大的成功。从该基金 1988 年创立至今,它的净回报率高达平均每年 34%。


用开源Carrot2的后缀树算法做Web文本聚类

zdg收录,使用标签:聚类, Arithmetic,时间:2006-11-12 21:32:16 | 相关网摘我也收藏

采用基于Java的开源搜索结果聚合引擎,Carrot2 2.0 中的后缀树算法
Carrot2 可以自动的把搜索结果归类到相应的语义类别中,这个功能是通过Carrot2一个现成的组件完成的,除此之外Carrot2 还包括了很多其他的搜索结果聚合聚类算法。


模糊聚类算法(FCM)和硬聚类算法(HCM)的VB6.0实现及其应用

zdg收录,使用标签:聚类, Arithmetic,时间:2006-11-12 20:46:12 | 相关网摘我也收藏

最后谈一点速度优化方面的问题:

1、FCM算法的计算量是比较大的,在算法模型不变的情况下我们可以通过以下方法减小计算量. a.如果对某一个特定的问题,我们知道聚类中心的大概位置,则通过程序提供的CreateByHand方法运行。 b、在不确定聚类中心的情况下,选择聚类中心由HCM产生,HCM算法的速度是相当块的。 c.针对不同对象选择不同数据类型,这点在下面要讲到。

2、如果处理对象是图像,则数据量一般很大,速度就是关键了。考虑到图像数据是byte类型的,则可以把FCM算法的Data()参数数据类型改为byte,我们知道浮点数的运算总是很慢的。并且考虑到象素值没有小数部分,程序中有些/可以改为\,整除总比一般除法块,还有既然确定了样本的第二维,则把程序中所有的 DataSize改为3,并且对于所有的有关DataSize的小循环,全部改为手写。

3、实践证明,RndDegree(i, k)^Exponent 的计算速度比 Exp(Log(RndDegree(i, k)) * Exponent)要慢。X^2 比X*X要慢,我是指大数据量的。



共67个网摘 [ 1  2  3 ]  下一页

Tag/相关标签



    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved