相似矩阵

机器学习:Python实现聚类算法(二)之AP算法

吃可爱长大的小学妹 提交于 2020-03-24 18:42:52
1.算法简介 AP(Affinity Propagation)通常被翻译为近邻传播算法或者亲和力传播算法,是在2007年的Science杂志上提出的一种新的聚类算法。AP算法的基本思想是将全部数据点都当作潜在的聚类中心(称之为exemplar),然后数据点两两之间连线构成一个网络(相似度矩阵),再通过网络中各条边的消息(responsibility和availability)传递计算出各样本的聚类中心。 2.相关概念(假如有数据点i和数据点j) (图1) (图2) (图3) 1)相似度: 点j作为点i的聚类中心的能力,记为S(i,j)。一般使用负的欧式距离,所以S(i,j)越大,表示两个点距离越近,相似度也就越高。使用负的欧式距离,相似度是对称的,如果采用其他算法,相似度可能就不是对称的。 2)相似度矩阵:N个点之间两两计算相似度,这些相似度就组成了相似度矩阵。如图1所示的黄色区域,就是一个5*5的相似度矩阵(N=5) 3) preference:指点i作为聚类中心的参考度(不能为0),取值为S对角线的值(图1红色标注部分),此值越大,最为聚类中心的可能性就越大。但是对角线的值为0,所以需要重新设置对角线的值,既可以根据实际情况设置不同的值,也可以设置成同一值。一般设置为S相似度值的中值。(有的说设置成S的最小值产生的聚类最少,但是在下面的算法中设置成中值产生的聚类是最少的) 4

推荐算法入门

空扰寡人 提交于 2020-03-24 01:21:31
推荐算法概览(一) 为推荐系统选择正确的推荐算法非常重要,而可用的算法很多,想要找到最适合所处理问题的算法还是很有难度的。这些算法每种都各有优劣,也各有局限,因此在作出决策前我们应当对其做以衡量。在实践中,我们很可能需要测试多种算法,以便找出最适合用户的那种;了解这些算法的概念以及工作原理,对它们有个直观印象将会很有帮助。 推荐算法通常是在 推荐模型 中实现的,而推荐模型会负责收集诸如用户偏好、物品描述这些可用作推荐凭借的数据,据此预测特定用户组可能感兴趣的物品。 主要的推荐算法系列有四个(表格1-4): 协同过滤(Collaborative Filtering)的推荐算法 基于内容过滤(Content-based Filtering)的推荐算法 混合型推荐算法 流行度推荐算法 此外,还有很多高级或非传统的方式,可参见表格5。 本文是系列文中的第一篇,将会以表格形式来介绍推荐算法的主要分类,包括算法简介、典型的输入内容、常见的形式及其优劣。在系列文的第二与第三篇中,我们将会更详细地介绍各种算法的不同,以便让大家更深入地理解其工作原理。本文的某些内容是基于一篇2014年的推荐算法2014教程 《推荐问题再探(Recommender Problem Revisited)》 来撰写的,该文的作者是 Xavier Amatriain 。 表格一:协同过滤推荐算法概览 表格二

动手学深度学习之Task09:目标检测基础;图像风格迁移;图像分类案例1

江枫思渺然 提交于 2020-02-25 23:51:18
目标检测基础 9.4 锚框 目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边缘从而更准确地预测目标的真实边界框(ground-truth bounding box)。不同的模型使用的区域采样方法可能不同。这里我们介绍其中的一种方法:它以每个像素为中心生成多个大小和宽高比(aspect ratio)不同的边界框。这些边界框被称为锚框(anchor box)。我们将在后面基于锚框实践目标检测。 9.4.1 生成多个锚框 假设输入图像高为 h,宽为w。我们分别以图像的每个像素为中心生成不同形状的锚框。设大小为s∈(0,1]且宽高比为r>0,那么锚框的宽和高将分别为wsr和hs/r。当中心位置给定时,已知宽和高的锚框是确定的。 下面我们分别设定好一组大小s1,…,sn和一组宽高比r1,…,rm。如果以每个像素为中心时使用所有的大小与宽高比的组合,输入图像将一共得到whnm个锚框。虽然这些锚框可能覆盖了所有的真实边界框,但计算复杂度容易过高。因此,我们通常只对包含s1或r1的大小与宽高比的组合感兴趣,即 (s1,r1),(s1,r2),…,(s1,rm),(s2,r1),(s3,r1),…,(sn,r1). 也就是说,以相同像素为中心的锚框的数量为n+m−1。对于整个输入图像,我们将一共生成wh(n+m−1)个锚框。

矩阵特征值

試著忘記壹切 提交于 2020-02-13 02:19:32
参考:https://www.zhihu.com/question/21874816 如何理解矩阵特征值? 想要理解特征值,首先要理解矩阵相似。什么是矩阵相似呢?从定义角度就是:存在可逆矩阵P满足B= 则我们说A和B是相似的。让我们来回顾一下之前得出的重要结论:对于同一个线性空间,可以用两组不同的基 和基 来描述,他们之间的过渡关系是这样的: ,而对应坐标之间的过渡关系是这样的: 。其中P是可逆矩阵,可逆的意义是我们能变换过去也要能变换回来,这一点很重要。 我们知道,对于一个线性变换,只要你选定一组基,那么就可以用一个矩阵T1来描述这个线性变换。换一组基,就得到另一个不同的矩阵T2(之所以会不同,是因为选定了不同的基,也就是选定了不同的坐标系)。所有这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。具体来说,有一个线性变换 ,我们选择基 来描述,对应矩阵是 ;同样的道理,我们选择基 来描述 ,,对应矩阵是 ;我们知道基 和基 是有联系的,那么他们之间的变换 和 有没有联系呢? 当然有, 和 就是相似的关系,具体的请看下图: <img src="https://pic1.zhimg.com/6cf43eca0f26cb1752f8fbf2633b699c_b.jpg" data-rawwidth="721" data-rawheight="449" class

从原理到落地,七大维度读懂协同过滤推荐算法

感情迁移 提交于 2020-02-04 11:16:54
转载 AI科技大本营 最后发布于2019-08-09 19:52:18 阅读数 195 收藏 展开 作者丨gongyouliu 来源 | 大数据与人工智能 导语:本文会从协同过滤思想简介、协同过滤算法原理介绍、离线协同过滤算法的工程实现、近实时协同过滤算法的工程实现、协同过滤算法应用场景、协同过滤算法的优缺点、协同过滤算法落地需要关注的几个问题等7个方面来讲述。希望读者读完本文,可以很好地理解协同过滤的思路、算法原理、工程实现方案,并且具备基于本文的思路自己独立实现一个在真实业务场景中可用的协同过滤推荐系统的能力。 作者在《 推荐系统产品与算法概述 》这篇文章中简单介绍了协同过滤算法。协同过滤算法是在整个推荐系统发展史上比较出名的算法,具备举足轻重的地位,甚至在当今还在大量使用。本篇文章作者会详细讲解协同过滤推荐算法的方方面面,这里所讲的也是作者基于多年推荐系统研究及工程实践经验的基础上总结而成,希望对大家学习协同过滤推荐算法有所帮助,提供一些借鉴。在正式讲解之前,先做一个简单定义。本文用“ 操作过” 这个词来表示用户对标的物的各种操作行为,包括浏览、点击、播放、收藏、评论、点赞、转发、评分等等。 一、协同过滤思想简介 协同过滤,从字面上理解,包括协同和过滤两个操作。所谓协同就是利用群体的行为来做决策(推荐),生物上有协同进化的说法,通过协同的作用,让群体逐步进化到更佳的状态

Linear_algebra_05_相似对角形

旧城冷巷雨未停 提交于 2020-01-28 17:38:13
山东大学——线性代数: http://www.xuetangx.com/courses/course-v1:SDUx+00931800X+sp/courseware/45412e228fef48e08a937bdebd19a5a0/61676d9b49ce410290738e6bbc5ed468/ 自反性:自己跟自己相似,相似变换矩阵E(单位阵)。 对称性:A和B相似,B与A也相似,相似变换矩阵P -1 传递性:A与B相似,B与C相似,则A与C相似。 B= P 1 -1 AP 1 => C = P 2 -1 BP 2 = P 2 -1 P 1 -1 AP 1 P 2 所以A与C的相似变换矩阵式P 1 P 2 2)相似可以推出等价,而等价不能推出相似。 相似矩阵的秩是相同的。 2)方阵的行列式等于行列式的乘积。P的行列式与P逆行列式的倒数。 3)A=P -1 BP => A -1 = P -1 B -1 p 直接做A的k次幂比较难做,而做A的相似矩阵对角阵的k次幂相对更简单。 将P矩阵拆开,再分别与A矩阵相乘。得到了4与-2,及P矩阵。 而(1,2)矩阵就不能与A(1,2)相乘后的矩阵(5,3)线性相关。 任意给定A,Apha,Beta,Aa=ka,而ABeta != kBeta A与a相乘 来源: https://www.cnblogs.com/tlfox2006/p

推荐方法-1:UserCF&ItemCF

99封情书 提交于 2020-01-16 11:26:01
Summary of recommended methods(1) 1.Metrics RMSE MAE Coverage Diversity Recall Precision 1.1 RMSE(均根方误差) R M S E = ∑ u , i ∈ T ( r u i − r ^ u i ) 2 ∣ T ∣ RMSE = \frac{\sqrt{\sum_{u, i \in T}(r_{ui} - \hat{r}_{ui}})^{2}}{\lvert T \rvert} R M S E = ∣ T ∣ ∑ u , i ∈ T ​ ( r u i ​ − r ^ u i ​ ​ ) 2 ​ u u u : 用户 u u u i i i : 物品 i i i r u i r_{ui} r u i ​ : 用户 u u u 对 i i i 的评分 r ^ u i \hat{r}_{ui} r ^ u i ​ : 算法预测的评分 1.2 MAE(平均绝对值误差) M A E = ∑ u , i ∈ T ∣ r u i − r ^ u i ∣ ∣ T ∣ MAE = \frac{\sum_{u,i \in T} \lvert r_{ui} - \hat{r}_{ui} \rvert}{\lvert T \rvert} M A E = ∣ T ∣ ∑ u , i ∈ T ​ ∣ r u i ​

【推荐系统实践-02】利用用户行为数据(协同过滤)

喜夏-厌秋 提交于 2020-01-12 05:14:19
项亮老师的《推荐系统实践》学习笔记​。​ 目录 用户行为数据简介 用户行为分析 用户活跃度和物品流行度的分布 用户活跃度和物品流行度的关系 基于邻域的算法 基于用户的协同过滤算法 基于物品的协同过滤算法 UserCF和ItemCF的比较 隐语义模型 基于图的模型 为了让推荐结果符合用户口味,我们需要深入了解用户。 基于用户行为分析的推荐算法是个性化推荐系统的重要算法,学术界一般将这种类型的算法称为协同过滤算法。顾名思义,协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。 1、用户行为数据简介 用户行为数据在网站上最简单的存在形式就是日志。网站在运行过程中都产生大量原始日志(raw log),并将其存储在文件系统中。很多互联网业务会把多种原始日志按照用户行为汇总成会话日志(session log),其中每个会话表示一次用户行为和对应的服务。 会话日志通常存储在分布式数据仓库中,这些日志记录了用户的各种行为,如在电子商务网站中这些行为主要包括网页浏览、购买、点击、评分和评论等。 用户行为在个性化推荐系统中一般分两种——显性反馈行为(explicit feedback)和隐性反馈行为(implicit feedback)。显性反馈行为包括用户明确表示对物品喜好的行为

数据挖掘——层次聚类(Hierarchical clustering)学习及python实现

被刻印的时光 ゝ 提交于 2019-12-24 18:49:17
文章目录 一、前言 二、自底向上的层次算法 三、 python实现层次聚类 四、使用Sklearn中的层次聚类 五、使用Scipy库中的层次聚类 (1). linkage(y, method=’single’, metric=’euclidean’) (2).fcluster(Z, t, criterion=’inconsistent’, depth=2, R=None, monocrit=None) 六、层次聚类的优缺点 参考资料: 一、前言   层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点。层次聚类算法相比划分聚类算法的优点之一是可以在不同的尺度上(层次)展示数据集的聚类情况。   根据创建聚类树有的两种方式:自下而上合并和自上而下。基于层次的聚类算法可以分为:凝聚的(Agglomerative)或者分裂的(Divisive)。 自下而上法就是一开始每个个体(object)都是一个类,然后根据linkage寻找同类,最后形成一个“类”。 自上而下法就是反过来,一开始所有个体都属于一个“类”,然后根据linkage排除异己,最后每个个体都成为一个“类”。   这两种路方法没有孰优孰劣之分

文本相似度计算-JaccardSimilarity和哈希签名函数

萝らか妹 提交于 2019-12-14 21:10:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在目前这个信息过载的星球上,文本的相似度计算应用前景还是比较广泛的,他可以让人们过滤掉很多相似的新闻,比如在搜索引擎上,相似度太高的页面,只需要展示一个就行了,还有就是,考试的时候,可以用这个来防作弊,同样的,论文的相似度检查也是一个检查论文是否抄袭的一个重要办法。 文本相似度计算的应用场景 过滤相似度很高的新闻,或者网页去重 考试防作弊系统 论文抄袭检查 光第一项的应用就非常广泛。 文本相似度计算的基本方法 文本相似度计算的方法很多,主要来说有两种,一是 余弦定律 ,二是 JaccardSimilarity 方法, 余弦定律 不在本文的讨论范围之内,我们主要说一下 JaccardSimilarity 方法。 JaccardSimilarity方法 JaccardSimilarity 说起来非常简单,容易实现,实际上就是两个集合的交集除以两个集合的并集,所得的就是两个集合的相似度,直观的看就是下面这个图。 数学表达式是: |S ∩ T|/|S ∪ T| 恩,基本的计算方法就是如此,而两个集合分别表示的是两个文本,集合中的元素实际上就是文本中出现的词语啦,我们需要做的就是把两个文本中的词语统计出来,然后按照上面的公式算一下就行了,其实很简单。 统计文本中的词语 关于统计文本中的词语,可以参考我的另外一篇博文