artificial-intelligence heuristics traveling-salesman nearest-neighbor genetic-algorithm
我的任务是找到N个簇,其中包含特定数据集的最多点,因为簇具有一定的大小.目前,我试图通过将我的数据插入到kd树中,迭代数据并找到它的最近邻居,然后在他们制作的集群不超过限制时合并这些点来尝试这样做.我不确定这种方法会给我一个全局解决方案,所以我正在寻找方法来调整它.如果你能告诉我这会遇到什么类型的问题,那也很棒.
python algorithm classification cluster-analysis nearest-neighbor
给定3D中的数千个点的集合,我需要得到每个粒子的邻居列表,这些粒子落在某个截止值(就欧氏距离而言)中,并且如果可能的话,从最近的最远点排序.
在CUDA或OpenCL语言中,这是用于此目的的最快GPU算法?
我有一个大约3000点的空间数据帧.我想生成一个矩阵,为每个点提供k(在本例中为30)最近邻居.
我可以使用循环来做到这一点,但我觉得应该有一个优雅和最佳的空间点数据帧类的方式,我不知道.
我正在寻找一种方法来做快速最近邻居(希望是O(log n))的高维点(通常是~11-13维).我希望它在初始化结构后的插入过程中表现得最佳.KD树出现在我的脑海中,但是如果你不进行批量加载但是进行动态插入,则kd树不再平衡,并且afaik平衡是一项昂贵的操作.
所以,我想知道你喜欢哪种数据结构进行这种设置.您有高维度点,并且您想要插入并查询最近邻居.
我正在使用PostgreSQL 9,我想在RP
所有元组中查找表中最近的邻居RQ
,比较日期(t
),但是我得到了这个错误:
错误:FROM中的子查询不能引用相同查询级别的其他关系
使用此查询:
SELECT *
FROM RQ, (SELECT * FROM RP ORDER BY ABS(RP.t - RQ.t) LIMIT 1) AS RA
Run Code Online (Sandbox Code Playgroud)
RQ.t
在子查询中似乎是问题所在.我怎样才能避免这个错误?如何从子查询访问RQ
?
sql postgresql subquery nearest-neighbor correlated-subquery
我在MATLAB中遇到如下问题:
假设我有一个如下所示的矩阵.我想要做的是计算以黄色给出的像素的平均值.(ans是108)
如果给出的选项在外面,将计算这一点.
另一方面,如果选项是作为内部给出的,那么在图像中执行的操作.
**我想编写一个算法,根据手动设置的选项找出标有零的区域内外的平均值.**
****4邻里**或8邻居**可考虑.我想在MATLAB中计算它.你们能帮助我吗?
我有一个只有1和0的2D列表:
Boundaries = [
[0,0,0,0,0],
[0,1,1,1,0],
[0,1,1,1,1],
[0,1,1,1,0],
[0,0,1,0,0]]
Run Code Online (Sandbox Code Playgroud)
我需要测试这个列表以检查是否有任何1被8个其他1包围(例如此列表中的中间1).如果有1被1作为邻居包围,那么它应该变为0,这样在运行程序之后,上面的列表将返回如下所示:
[
[0,0,0,0,0],
[0,1,1,1,0],
[0,1,0,1,1],
[0,1,1,1,0],
[0,0,1,0,0]]
Run Code Online (Sandbox Code Playgroud)
我试图只使用一个参数(1和0的矩阵).出于某种原因,这是一个非常困难的事情.到目前为止,我的代码看起来像这样:
def tempBoundaries(matrixC):
for i in matrixC:
for j in i:
if j == 1:
try:
if matrixC[i-1]==1 or matrixC[i+1]==1:
.......
Run Code Online (Sandbox Code Playgroud)
无论出于何种原因,这都是一次真正的斗争,我似乎无法弄清楚要做什么,任何提示或帮助将不胜感激!谢谢.
我正在尝试使用spark执行K最近邻搜索.
我有一个RDD [Seq [Double]],我正在计划用实际的行和邻居列表返回RDD [(Seq [Double],Seq [Seq [Double]])]
val out = data.map(row => {
val neighbours = data.top(num = 3)(new Ordering[Seq[Double]] {
override def compare(a:Seq[Double],b:Seq[Double]) = {
euclideanDistance(a,row).compare(euclideanDistance(b,row))*(-1)
}
})
(row,neighbours.toSeq)
})
Run Code Online (Sandbox Code Playgroud)
并且它在spark提交时给出以下错误
15/04/29 21:15:39 WARN TaskSetManager: Lost task 0.0 in stage 1.0 (TID 2, 192.168.1.7): org.apache.spark.SparkException: RDD transformations and actions can only be invoked by the driver, not inside of other transformations; for example, rdd1.map(x => rdd2.values.count() * x) is invalid because the values transformation and count action cannot …
Run Code Online (Sandbox Code Playgroud) 我在MATLAB中构建了一个空心立方体,我想用小立方体完全填充其体积.然后我想找到一种方法来访问这些立方体并通过它们制作路径,即如果当前访问了立方体x,应该有一种方法可以知道它的右边,左边,顶边,底边,前面和后面最近的邻居是什么(最近邻居=直接在当前立方体旁边的立方体).我想我们有6个邻居,因为我们有6个不同的立方体面.
通过知道每个方向上最近的立方体,可以将通过立方体的路径定义为一系列步骤(例如,右,左,左,顶,右,前).我认为能够访问每个小立方体并移动到附近我们需要在矩阵中表示小立方体(可能是3D),如果一个小立方体在其右边有一个邻居立方体x,那么在矩阵中,x将出现在小立方体的当前列旁边的列中.此外,如果在另一深度层存在直接邻居(相同的x,y坐标但不同的z坐标,例如,前邻居和后邻居),则应指示.是否有更简单的方法来识别邻居?
我已经通过rayryeng获得了一个代码(构建一个空心立方体并在MATLAB中用小立方体填充它)以在大的立方体中随机填充许多小立方体并构建一个3D矩阵,其中矩阵的每个切片(深度)代表一个小立方体以及每个切片(8行和3列)的行和列表示每个小立方体的顶点的xyz坐标.请查看我提供的问题链接以查看代码.
我想对代码进行两次修改,
1-以有组织的方式用小立方体填充大立方体,而不是随机.
2-调整3D矩阵以表示小立方体如何彼此相邻.
我试图调整链接问题中的代码以有组织的方式填充多维数据集.这是我的试用版(我在for循环中添加了if else),
clf;
figure(1);
format compact
h(1) = axes('Position',[0.2 0.2 0.6 0.6]);
%These are the different 8 vertices of the cube, each is defined by its 3 x
%y z coordinates:
vert = [1 1 -1;
-1 1 -1;
-1 1 1;
1 1 1;
-1 -1 1;
1 -1 1;
1 -1 -1;
-1 -1 -1];
%These are the 6 faces of the cube, each is defined …
Run Code Online (Sandbox Code Playgroud) nearest-neighbor ×10
matlab ×2
python ×2
3d ×1
algorithm ×1
apache-spark ×1
arrays ×1
cuda ×1
dataframe ×1
gpu ×1
graphics ×1
heuristics ×1
kdtree ×1
knn ×1
list ×1
matrix ×1
neighbours ×1
opencl ×1
postgresql ×1
r ×1
scala ×1
spatial ×1
sql ×1
subquery ×1