- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我希望能够计算一个矩形相对于矩形网格的 Jaccard 分数/距离(距离为 1 分)。我的网格是 50x50(总共 1625625 个矩形)。
我能够在 0.34 秒内针对所有这些计算出我的输入矩形的分数,但是它不够快,因为我要么需要能够处理 10k 个矩形,要么将结果存储在数据库中(更新 10s每次调用数千行)。所以我希望让数据库为我进行计算,而不必从数据库中提取任何东西,但是我想不出没有游标如何做到这一点......
sourceRectangles
包含我的单个矩形(虽然实际上会有 10k),rectangles
包含我的网格,temporaryRectangleList
包含分数。
Dictionary<UInt32, Rectangle> temporaryRectangleList = new Dictionary<UInt32, Rectangle>();
foreach (var sourceRectangle in sourceRectangles)
{
foreach (var rectangle in rectangles)
{
// For each rectangle within the group
//foreach (var rectangle in group)
//{
int max_MinX = Math.Max(sourceRectangle.MinX, rectangle.MinX);
int min_MaxX = Math.Min(sourceRectangle.MaxX, rectangle.MaxX);
// There is an overlap
//if (max_MinX < min_MaxX)
//{
int max_MinY = Math.Max(sourceRectangle.MinY, rectangle.MinY);
int min_MaxY = Math.Min(sourceRectangle.MaxY, rectangle.MaxY);
// Calculate the area of the overlap
int area = ((min_MaxX - max_MinX)*(min_MaxY - max_MinY));
// Store the Jaccard score
var score = (double) area/((sourceRectangle.Area + rectangle.Area) - area);
if (temporaryRectangleList.ContainsKey(rectangle.ID))
{
temporaryRectangleList[rectangle.ID].Weight += score;
}
else
{
temporaryRectangleList.Add(rectangle.ID, new Rectangle(rectangle, score));
}
}
}
我需要能够在字典中查找项目,因为我需要通过矩形的 ID 从字典中提取数据。
如果您认为可以加快 C# 的速度(10k 矩形处理 <1s),那就去做吧,但是 .34s 是我可以为每个矩形做的最好的,所以我正在寻找与此等效的 SQL代码(理想情况下更好......大声笑)。
不幸的是,SQL表太大,无法在这里转储,所以我只能给你结构:
USE [Rectangles]
GO
/****** Object: Table [dbo].[PreProcessed] Script Date: 14/01/2014 16:39:33 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[PreProcessed](
[ID] [int] NOT NULL,
[MinX] [int] NOT NULL,
[MinY] [int] NOT NULL,
[MaxX] [int] NOT NULL,
[MaxY] [int] NOT NULL,
[Area] [int] NOT NULL,
CONSTRAINT [PK_PreProcessed] PRIMARY KEY CLUSTERED
(
[ID] ASC,
[Area] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
矩形类:
public class Rectangle
{
public Rectangle(UInt32 id, int minX, int maxX, int minY, int maxY, double weight)
{
ID = id;
MinX = minX;
MaxX = maxX;
MinY = minY;
MaxY = maxY;
Area = (maxX - minX)*(maxY - minY);
Weight = weight;
}
public Rectangle(Rectangle input, double weight)
{
ID = input.ID;
MinX = input.MinX;
MaxX = input.MaxX;
MinY = input.MinY;
MaxY = input.MaxY;
Area = input.Area;
Weight = weight;
}
public int Area { get; set; }
public int MinX { get; set; }
public int MaxX { get; set; }
public int MinY { get; set; }
public int MaxY { get; set; }
public UInt32 ID { get; set; }
public double Weight { get; set; }
}
最佳答案
SQL Server 具有 geometry
数据类型。这有计算多边形的交集和并集的方法。
关于c# - Jaccard 得分/距离或重叠百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21118991/
我的表如下所示: author | group daniel | group1,group2,group3,group4,group5,group8,group10 adam | group2,g
我正在参加分布式系统考试,我试图解决去年考试中的一个 MapReduce 问题。但我很难弄清楚我将创建哪些 MR 功能。该练习是关于处理包含 {userID, movieID, timestamp}
我想根据标准代码列表的存在/不存在来计算两个数据集之间的 Jaccard 相似度。例如(x,y,z 是数据集):数据集 x 和 y 没有任何标准代码(Null),因此我将列表值设置为零。 x = [
是否可以使用 scikit-learn(或另一个著名的 python 包)来获取一对集合之间的 Jaccard 相似度? 我只看到 sklearn jaccard_similarity_score f
我想使用 Jaccard 计算距离矩阵距离。并尽快这样做。我曾经使用 scikit-learn's pairwise_distances功能。但是 scikit-learn 并不打算支持 GPU,甚至
我希望能够计算一个矩形相对于矩形网格的 Jaccard 分数/距离(距离为 1 分)。我的网格是 50x50(总共 1625625 个矩形)。 我能够在 0.34 秒内针对所有这些计算出我的输入矩形的
我需要什么 我正在寻找非常快速和准确的方法来找到多个庞大数据集之间的 Jaccard 相似性。我最多可以进行 10.000-20.000 次计算 Jaccard 相似度的操作。由于需要在转储该数据集后
是否有一种有效的方法可以使用 Jaccard 相似度对图中的节点进行聚类,使得每个聚类至少有 K 个节点? 节点i和j之间的Jaccard相似度: 令S为i的邻居集code> 和 T 是 j 的邻居集
我没有意识到 Python set 函数实际上将字符串分成单独的字符。我为 Jaccard 编写了 python 函数并使用了 python 交集方法。我将两个集合传递给此方法,在将这两个集合传递给我
有人可以提供一个关于如何在 pytorch 中为语义分割计算 IoU(交集对联合)的玩具示例吗? 最佳答案 我在某处找到了它并为我改编了它。如果我能再次找到它,我会发布链接。抱歉,如果这是重复的。 这
我想在 stringdist 函数中使用 Jaccard 相似度来确定词袋的相似度。据我所知,使用 Jaccard 只能匹配字符串中的字母。 c <- c('cat', 'dog', 'person'
我需要使用 Jaccard similarity over n-grams 计算 Lucene 中查询和文档的相似性。由于 Jaccard 相似度是 IR 中非常常见的度量,我希望找到它的 Lucen
Rand 和 Jaccard 相似性/验证指数之间的理论区别是什么? 我对方程式不感兴趣,但对它们的差异的解释感兴趣。 我知道 Jaccard 指数会忽略真负值,但为什么呢?这会产生什么样的影响? 谢
我需要计算所有文本行对的杰卡德相似度。我只希望输出相似度高于 80% 的对。过去我研究过 Hadoop MapReduce 框架,这就是我如何使用 Map 和 Reduce 函数解决这个问题: map
我试图理解 2 个 double 型数组之间的“Jaccard 相似性”,这些数组的值大于零且小于一。 到目前为止,我已经在很多网站上搜索过这个,但我发现两个数组的大小应该相同(数组 1 中的元素数应
我有一批形状为 (bs, m, n) 的向量(即维度为 mxn 的 bs 向量)。对于每个批处理,我想计算第一个向量与其余 (m-1) 个向量的 Jaccard 相似度 例子: a = [ [
给定 2 个巨大的值列表,我正在尝试计算 jaccard similarity它们之间使用 Scala 在 Spark 中。 假设 colHashed1包含第一个值列表和 colHashed2包含第二
我有一个数据框,如: animal ids cat 1,3,4 dog 1,2,4 hamster 5 dolphin 3,5 数据框非常大,有超过
我正在尝试计算大名称向量中每对名称之间的 jaccard 相似度(请参阅下面的小示例)并将它们的 jaccard 相似度存储在矩阵中。我的函数只是返回 NULL。我做错了什么? library(dpl
我正在尝试使用 Lucene 获得基于 Jaccard 的分数。我已成功获取每个文档的术语数量,我只需要找到每个文档中找到的查询术语数量。在搜索 Lucene 的 Javadocs 时,我遇到了 sc
我是一名优秀的程序员,十分优秀!