算法编程
robertXin
不为写代码而写代码
展开
-
欧几里德距离评价算法(集体智慧编程)
欧几里德距离是指多维空间两点间的距离,这是一种用直尺测量出来的距离。如果将两个点分别标记为(p1,p2,p3....pn)和(q1,q2,q3.....qn),则欧几里德距离的计算公式为: 欧几里德距离评价算法是一个非常简单的计算相似度评价值的方法。它以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到图上,并考查他们彼此间的距离远近。如图:该图显示了处于“偏好空间”中...2014-03-03 14:37:32 · 769 阅读 · 0 评论 -
Dijkstra算法(最短距离)
该算法由荷兰的一个牛人计算机科学家Edsger Wybe Dijkstra在1956年发现。 这套算法主要解决计算从一个点到其它的点的最短距离,而不是Floyd-Warshall算法的任意两点距离。 如图,现要计算出,从1号点到其它各点的最短距离,首先我还是转化成矩阵由此可见1号点到其它点的初始距离为: 0 1 12 ∞ ∞ ∞ 很明显2号点是离1号点最近的...2016-08-05 16:57:49 · 1819 阅读 · 0 评论 -
Floyd-Warshall算法(最短距离)
Robert W.Floyd和Stephen Warshall在1962年发表了Floyd-Warshall算法 如图,有1234,四个点,每个点都有一定的距离,比如1和2有2的距离,现在我想知道任意两个点的最短距离。 我先用“邻接矩阵存储法”将这个图转化为矩阵 竖坐标是出发点,横坐标是目的地,∞表示无穷大,也就是到不了,例如2到不1。有了这个矩阵,就可以用一个两维数组...2016-08-05 16:13:27 · 681 阅读 · 0 评论 -
玩转深度优先搜索算法
小时候玩游戏,有个BOMB人的游戏,把BOMB放在一个空地上,将怪兽炸死,如图: BOMB的威力只要不碰到墙壁,可以无限延长。那么我们应该把BOMB放哪里可以炸死最多的怪兽呢? 这个问题貌似很简单,一个一个地方试下不就知道了吗?是啊,那我们用代码来试下。 将图象转成字符,用#表示墙,用G表示怪兽,用.表示空地,最后得到的字符为:##############GG.GG...2016-08-01 17:32:42 · 281 阅读 · 0 评论 -
python实现数据的多维缩放(集体智慧编程)
多维缩放可以为数据集找到一种二维表达形式。算法根据每对数据项之间的差距情况,尝试绘制出一幅图来,图中的各数据项之间的距离远近,对应于它们彼此间的差异程度。 以分类聚集算法中的数据为例第一步:计算所有数据项两两间的实际距离(可参考皮尔逊算法或欧几里德算法)第二步:将数据项随机放置在二维图上。第三步:针对每两两构成的一对数据项,将它们的实际距离与当前在二维图上的距离进行比较,求出...2014-03-27 17:26:18 · 876 阅读 · 0 评论 -
K-均值聚类算法(集体智慧编程)
上篇博客中讲到的分级聚类算法为我们返回了一棵形象直观的树,但是这个方法有两个缺点。1.在没有额外的投入的情况下,树形视图是不会真正将数据拆分成不同组的。2.该算法的计算量非常惊人,因为我们必须计算每两个配对项之间的关系,并且在合并项之后,这些关系还得重新再计算,所以在处理很大规模的数据集时,该算法的运行速度会非常缓慢。 K-均值聚类完全不同于分级聚类,因为我们会预先告诉算法希望...2014-03-18 15:11:57 · 168 阅读 · 0 评论 -
分级聚类算法(集体智慧编程)
分级聚类是通过连续不断地将最为相似的群组两两合并,来构造出一个群组的层级结构。其中的每个群组都是从单一元素开始的。如图所示:元素的相似程序是通过它们的相对位置来体现的,距离越近越相似。两两合并,直到合并最后两个群组。 聚类是无监督学习的一个例子。与神经网络或决策树不同,无监督学习算法不是利用带有正确答案的样本数据进行“训练”。它们的目的是要在一组数据中找寻某种结构,而这些数据本身不...2014-03-10 11:51:32 · 294 阅读 · 0 评论 -
加权平均算法(集体智慧编程)
加权平均是这样一类求平均的运算:参与求平均运算的每一个观测变量都有一个对应的权重值。加权平均的计算公式如图: 其中的x1....xn是观测变量,w1....wn是权重值。 我们现将其利用在影片的推荐。 我们可以查找与自己口味最为相近的人,并从他所喜欢的影片中找出一部自己还未看过的影片,不过这样做太随意了。有时,这种方法可能会有问题:评论者还未对某些影片做过评论,而这些影片也许...2014-03-05 16:48:49 · 812 阅读 · 0 评论 -
皮尔逊相关系数评价算法(集体智慧编程)
皮尔逊相关系数是比欧几里德距离更加复杂的可以判断人们兴趣的相似度的一种方法。该相关系数是判断两组数据与某一直线拟合程序的一种试题。它在数据不是很规范的时候,会倾向于给出更好的结果。 如图,Mick Lasalle为<<Superman>>评了3分,而Gene Seyour则评了5分,所以该影片被定位中图中的(3,5)处。在图中还可以看到一条直线。其绘制原则是尽...2014-03-03 16:34:46 · 499 阅读 · 0 评论 -
代码实现任意容量倒水问题
形象化设计模式实战 HELLO!架构 redis命令源码解析 倒水问题:有两个杯子,一个A升,一个B升,水有无限多,现要求利用这两杯子装C升的水。 想必很多人都可能被问到过这个问题,问题虽然简单的,但是要费些脑子。这个问题显然是个逻辑问题,那么就肯定能够用程序来实现。 现在我假设A=3,B=5,C=4。...2014-11-05 11:49:10 · 802 阅读 · 0 评论