标签: nearest-neighbor

使用最近邻插值调整 1 通道 numpy(图像)数组的大小

我得到了一个形状为 388x388x1 的 1 通道 numpy 数组,其值范围为 1-150,作为 ML 推理的输出。我需要使用最近邻插值将数组大小调整为 5000x4000x1。

目前我正在使用 PIL 调整大小。它可以工作,但为此必须导入 PIL 感觉过于复杂。

output = np.random.randint(150, size=(388, 388))
width, height = 4000, 5000

pilImage = Image.fromarray(pred.astype(np.uint8))
pilImageResized = pilImage.resize((width, height), Image.NEAREST)

resizedOutput = np.array(pilImageResized).astype(np.uint8)
Run Code Online (Sandbox Code Playgroud)

在 numpy 中是否有更简单的方法可以实现我想要的目标?(不使用cv2.resize,scipy.interpolatePIL

python numpy nearest-neighbor scipy python-imaging-library

2
推荐指数
1
解决办法
1126
查看次数

使用Haskell进行最近邻和模式识别

这是我拥有的3个数据集的简化版本:

Set A = [1, 1, 2, 2, 1, 2, 2, 1]
Set B = [2, 2, 1, 2, 2, 1, 1, 3]
Set C = [8, 4, 4, 4, 4, 9, 8, 4]
Run Code Online (Sandbox Code Playgroud)

Haskell是否具有用于在数据集之间查找未指定模式的任何内置功能?我想在2个或更多数据集上运行我的程序,并让它报告哪些数据类似,在这种情况下,它们将是集合A和B.

algorithm haskell cluster-analysis pattern-matching nearest-neighbor

1
推荐指数
1
解决办法
649
查看次数

RTree 与 kd-trees 的性能

我在 5 维空间中有大约 10 K 点。我们可以假设点在空间 (0,0,0,0,0) 和 (100,100,100,100,100) 中随机分布。显然,整个数据集可以很容易地驻留在内存中。

我想知道 k 最近邻的哪种算法运行得更快,kd-tree 或 RTree。

虽然我对这两种算法有一些非常高级的想法,但我不确定哪个会运行得更快,以及为什么。如果有的话,我愿意探索其他算法,这些算法可以快速运行。如果可能,请说明为什么算法可以运行得更快。

algorithm spatial kdtree nearest-neighbor r-tree

1
推荐指数
1
解决办法
3596
查看次数

如何哈希列表?

列表不可散列。但是,我正在实现LSH,我正在寻找一个哈希函数,该函数将一个正整数列表(在[1,29.000]中)与k个存储桶相对应。列表数为D,其中D> k(我认为),D = 40.000,其中k未知(建议接受)。


示例(D = 4,k = 2):

118 | 27 | 1002 | 225
128 | 85 | 2000 | 8700
512 | 88 | 2500 | 10000
600 | 97 | 6500 | 24000
800 | 99 | 7024 | 25874
Run Code Online (Sandbox Code Playgroud)

第一列应作为哈希函数的输入,并返回存储桶的编号。


令我感到困惑的是,我们不是在寻找一个函数来散列一个数字,而是一个列,即一个正整数列表。

有什么想法吗?

我正在使用如果这很重要

python hash list nearest-neighbor locality-sensitive-hash

1
推荐指数
1
解决办法
3339
查看次数

找到地图中每个像素的最近邻居

我试图在python中找到一个简单的方法,其中对于2dim掩码中的每个像素,我可以得到最近的非零邻居的索引.在Matlab中有一个bwdist,它正好返回.例如:如果我的输入是:

array [[0 0 0 0 0 0 0]
       [0 1 0 0 0 0 0]
       [0 0 0 0 0 1 0]
       [0 0 0 0 0 0 0]]
Run Code Online (Sandbox Code Playgroud)

我的输出应该是:

array [[(1,1) (1,1) (1,1) (1,1) (2,5) (2,5) (2,5)]
       [(1,1) (1,1) (1,1) (1,1) (2,5) (2,5) (2,5)]
       [(1,1) (1,1) (1,1) (2,5) (2,5) (2,5) (2,5)]
       [(1,1) (1,1) (1,1) (2,5) (2,5) (2,5) (2,5)]]
Run Code Online (Sandbox Code Playgroud)

该函数还可以返回绝对索引(对于1dim数组),如Matlab中的bwdist.

谢谢!

编辑:到目前为止,我已经尝试了一些与scipy相关的潜在解决方案,例如distance_transform_edt,但它只找到距离最近的像素而不是像素本身的距离.如果相关,我也会在我的代码中的其他地方使用OpenCV和VLfeat.

python opencv image-processing nearest-neighbor computer-vision

1
推荐指数
2
解决办法
785
查看次数

找到其值最接近某个值的k个dict项

假设我们想找到两个值最接近10的项:

A = {'abc': 12.3, 'def': 17.3, 'dsfsf': 18, 'ppp': 3.2, "jlkljkjlk": 9.23}
Run Code Online (Sandbox Code Playgroud)

它适用于:

def nearest(D, centre, k=10):
    return sorted([[d, D[d], abs(D[d] - centre)] for d in D], key=lambda e: e[2])[:k]

print(nearest(A, centre=10, k=2))
Run Code Online (Sandbox Code Playgroud)

[['jlkljkjlk',9.23,0.7699999999999996],['abc',12.3,2.3000000000000007]]

但是当dict具有更大的尺寸(数十万个项目)时,是否有Python内置方式来执行此操作和/或更优化的版本?

python sorting dictionary nearest-neighbor

1
推荐指数
1
解决办法
86
查看次数

使用.net中的"最近邻居"重新调整位图大小

我有一些低细节图像,我正在渲染到屏幕上.我正在使用位图作为缓冲区.有没有办法在.net中重新调整位图的大小(使用"最近邻居")?

我正在使用VB.net,所以所有.net解决方案都可以接受.

vb.net resize bitmap nearest-neighbor

0
推荐指数
1
解决办法
648
查看次数

加权k近邻和R kknn包

我想了解 R kknn 包如何计算二元分类问题的权重、距离和类概率。在下面的 R 代码中,训练样本中有 3 个观察值,保留样本中有 1 个观察值。两个预测变量是身高和体重。使用欧几里德距离,训练样本中每个观测值的距离为:

sqrt((6-8)^2 + (4-5)^2) = 2.24

sqrt((6-3)^2 + (4-7)^2) = 4.24

sqrt((6-7)^2 + (4-3)^2) = 1.41。

当 k=3 且权重相等时,我得到的保留概率为:

(1/3 * 1) + (1/3 * 0) + (1/3 * 1) = 0.67。

当 k=2 且权重相等时,我得到的保留概率为:

(1/2 * 1) + (1/2 * 1) = 1.00。

我想了解 R kknn 包如何使用“三角形”、“高斯”和“逆”权重(以及更一般的)进行相同的计算。

library(kknn)

training <- data.frame(class = c(1, 0, 1), height = c(8, 3, 7), weight = c(5, 7, 3))

holdouts <- data.frame(class = 1, …
Run Code Online (Sandbox Code Playgroud)

r machine-learning nearest-neighbor

0
推荐指数
1
解决办法
1168
查看次数

K最近邻伪码?

所以我试图编码k最近邻算法.我的函数的输入是一组数据和一个要分类的样本.我只是想了解算法的工作原理.你能告诉我这个我想做的"伪代码"是否正确吗?

kNN (dataset, sample){

   1. Go through each item in my dataset, and calculate the "distance" from that data item to my specific sample.
   2. Out of those samples I pick the "k" ones that are most close to my sample, maybe in a premade array of "k" items?

}
Run Code Online (Sandbox Code Playgroud)

我感到困惑的部分是当我说"浏览我的数据集中的每个项目"时.我是否应该浏览数据集中的每个CLASS并找到k-最近邻居?然后从那里找到哪一个最接近我的样本,然后告诉我班级?

第2部分问题(ish),正在使用此算法,但没有样本.我如何计算数据集的"准确度"?

我真的在寻找广泛的单词答案,而不是具体细节,但任何有助于我理解的东西都表示赞赏.我在R中实现这一点

谢谢

algorithm r data-mining nearest-neighbor

-3
推荐指数
1
解决办法
1万
查看次数