首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >计算加权相似度

计算加权相似度
EN

Stack Overflow用户
提问于 2013-05-23 09:44:42
回答 2查看 7.4K关注 0票数 2

我有两个数据行,每个数据行都有4个字段。

就像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        field1  field2  field3  field4
Row 1
Row 2

现在我要比较这两种记录,并计算出它们的相似性。我通过推导余弦相似度来计算每个字段的相似性。

因此,我最终得到了类似的相似之处:(0表示一周的相似性,1表示强烈的相似性)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
field1: 0.12
field2: 0.67
field3: 1.00
field3: 0.93

我现在可以通过平均值来找到总相似性,但问题是:

我想在字段中添加权重,

因此,如果field2的权重大于field1,那么field2的相似度将对平均相似度有显著的贡献。

你能提出一个公式或算法来满足这样的要求吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-23 09:54:00

很简单,

  1. 将这4个值中的每个值乘以它们的权重。
  2. 将结果相加在一起
  3. 除以权重之和

示例

  • 在这个例子中,每个字段都可以被认为具有相同的权重1。 ((0.12 * 1) + (0.67 * 1) + (1.00 * 1) + (0.93 * 1)) /4= 0.68
  • 如果我们想让field2值比其他字段高出2倍 //权重为(1 +2+1+ 1) =5 ((0.12 * 1) + (0.67 * 2) + (1.00 * 1) + (0.93 * 1)) /5= 0.678
  • 如果我们希望字段3有100倍的重量(字段2仍然是2倍) //权重为(1 +2+ 100 + 1) = 104 ((0.12 * 1) + (0.67 * 2) + (1.00 * 100) + (0.93 * 1)) / 104 = 0.9845192307692308

公式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
((field1 * field1_weight) + (field2 * field2_weight) + ... + (fieldn * fieldn_weight)) / (field1_weight + field2_weight + ... + fieldn_weight) = weighted_average

分数权

如果以分数作为权重,那么公式的工作原理也是一样的。例如,如果希望第四个字段的权重比其他字段更多地加权150%,则可以将其赋值为1.5

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Weights are (1 + 1 + 1 + 1.5) = 4.5
((0.12 * 1) + (0.67 * 1) + (1.00 * 1) + (0.93 * 1.5)) / 4.5 = 0.7077777777777778

权重是相对的

您不需要从设置为1的每个权重开始,如果您愿意,可以使用100或1000。

例如,如果所有4个字段的权重为100,则如果它们全部为1,则最终平均值将是相同的。

进一步阅读

维基百科:加权算术平均数

票数 10
EN

Stack Overflow用户

发布于 2013-05-23 09:55:21

你只想找出加权平均值。将每个相似度乘以权重,然后将产品相加在一起,最后除以权重之和,得到平均值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
total, totalw = 0, 0
for w,s in weighted_sims :
  total += w*s
  totalw += w
result = total / totalw
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16720549

复制
相关文章
react跨组件传值
一层一层的传递,app组件通过props一层一层的往下传给ProfileHeader组件,期间通过了Profile组件,但Profile组件并不需要props。
hss
2022/02/25
6150
React-跨组件通讯
如果我们想在爷爷组件当中给儿子进行通讯,那么该如何进行实现呢,首先来看第一种方式就是一层一层的传递,为了方便观察这里博主就直接都定义在一个文件当中, 先来看从爷爷给到儿子方法的这么一个过程:
杨不易呀
2023/09/30
1850
react 学习(三) 组件更新
我们上一节了了解了函数式组件和类组件的处理方式,本质就是处理基于 babel 处理后的 type 类型,最后还是要处理虚拟 dom。本小节我们学习下组件的更新机制。
测不准
2022/04/08
1.1K0
react 学习(三) 组件更新
React-跨组件通讯-events
经过博主前面的介绍我们知道, 子父组件之间通讯, 是通过回调函数的方式实现的,兄弟组件之间通讯, 也是通过父组件, 通过回调函数的方式,但是如果通过回调函数, 传统的方式我们需要一层一层的传递, 比较复杂,所以我们可以借助一个第三方库 (events) 来实现跨组件事件通讯。
杨不易呀
2023/09/30
3490
React-跨组件通讯-context
在之前的通讯代码当中,发现一个问题,如果传递数据层次太深, 一层一层的传递比较麻烦, 所以 React 也提供了其它的解决方案:
杨不易呀
2023/09/30
2320
react源码分析:组件的创建和更新
因为初始化的源码文件部分所涵盖的内容很多,包括创建渲染、更新渲染、Fiber树的创建与diff,element的创建与插入,还包括一些优化算法,所以我就整个的React执行流程画了一个简单的示意图。
flyzz177
2022/10/19
1.2K0
react源码分析--组件的创建和更新
因为初始化的源码文件部分所涵盖的内容很多,包括创建渲染、更新渲染、Fiber树的创建与diff,element的创建与插入,还包括一些优化算法,所以我就整个的React执行流程画了一个简单的示意图。
flyzz177
2022/12/14
1.2K0
react源码之组件的创建和更新
因为初始化的源码文件部分所涵盖的内容很多,包括创建渲染、更新渲染、Fiber树的创建与diff,element的创建与插入,还包括一些优化算法,所以我就整个的React执行流程画了一个简单的示意图。
flyzz177
2022/12/05
1.1K0
React源码学习入门(十一)React组件更新流程详解
上一篇文章提到最后更新组件是走到了performUpdateIfNecessary方法,让我们来看一看它的实现:
孟健
2022/12/19
6950
React源码学习入门(十一)React组件更新流程详解
比immutable更简洁的数据不可变更新库~React immutability
  之前项目中遇到数据拷贝、引用之间数据层级嵌套过深,拷贝的值相互之间影响的问题,后来引入了immutability-helper,使用过程中的一些总结,跟大家分享下,至于为什么不是immutable,请看下文分解,这里是@IT·平头哥联盟,我是首席填坑官——苏南。
苏南
2018/12/24
1.3K0
比immutable更简洁的数据不可变更新库~React immutability
react源码分析:组件的创建和更新2
因为初始化的源码文件部分所涵盖的内容很多,包括创建渲染、更新渲染、Fiber树的创建与diff,element的创建与插入,还包括一些优化算法,所以我就整个的React执行流程画了一个简单的示意图。
flyzz177
2023/01/04
9210
小前端读源码 - React组件更新原理
年后一直忙于工作,导致一直没有去继续阅读React的更新原理。今天我们接着往下阅读吧!
LamHo
2022/09/26
6220
小前端读源码 - React组件更新原理
从0实现React 系列(二):组件更新
假设React是你日常开发的框架,在日复一日的开发中,你萌生了学习React源码的念头,在网上一顿搜索后,你发现这些教程可以分为2类:
一只图雀
2020/06/28
1.5K0
从0实现React 系列(二):组件更新
React中传入组件的props改变时更新组件的几种实现方法
我们使用react的时候常常需要在一个组件传入的props更新时重新渲染该组件,常用的方法是在componentWillReceiveProps中将新的props更新到组件的state中(这种state被成为派生状态(Derived State)),从而实现重新渲染。React 16.3中还引入了一个新的钩子函数getDerivedStateFromProps来专门实现这一需求。但无论是用componentWillReceiveProps还是getDerivedStateFromProps都不是那么优雅,而且容易出错。所以今天来探讨一下这类实现会产生的问题和更好的实现方案。
MudOnTire
2019/05/26
5.2K0
移动跨平台ReactNative存储数据组件AsyncStorage【13】
在 0.60 版本之前,这个组件是内置的,0.60 版本把它移到了 react-native-community/react-native-async-storage。
江一铭
2022/06/17
3.2K0
React报错之无法在未挂载的组件上执行React状态更新
原文链接:https://bobbyhadz.com/blog/react-cant-perform-react-state-update-on-unmounted-component[1]
chuckQu
2022/08/19
2.3K0
react 跨级组件传参方式 context方式的传参
//首先新建一个公共js context.js 解构出一个Provider和Consumer并导出 import React,{createContext} from 'react' const {Provider,Consumer} =createContext() export { Provider,Consumer } //在需要用这对组件的页面再分别引入Provider,Consumer 根组件 import React, { Component } from 'react'; imp
lilugirl
2020/10/13
2K0
react源码分析:组件的创建和更新_2023-02-28
因为初始化的源码文件部分所涵盖的内容很多,包括创建渲染、更新渲染、Fiber树的创建与diff,element的创建与插入,还包括一些优化算法,所以我就整个的React执行流程画了一个简单的示意图。
flyzz177
2023/02/28
5230
react源码分析:组件的创建和更新_2023-02-07
因为初始化的源码文件部分所涵盖的内容很多,包括创建渲染、更新渲染、Fiber树的创建与diff,element的创建与插入,还包括一些优化算法,所以我就整个的React执行流程画了一个简单的示意图。
flyzz177
2023/02/07
5560
React - 组件:类组件
他有自己的生命周期也有react给他提供的一些内置函数方法。有自己的this和状态。
xing.org1^
2019/12/11
2K0
React - 组件:类组件

相似问题

ASP.NET MVC --是否有一种简单的方法将数据缓存添加到我的服务层?

25

是否有一种使用ASP.NET MVC创建静态网站的方法?

10

是否有一种方法来确定ASP.Net MVC捆绑之前是否呈现?

31

是否有一种在ASP.NET中使用ASP.NET的安全方法?

14

将asp.net mvc webapi方法转换为asp.net mvc方法

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文