假设我在2D图表上有一个重要的点,名为“Alpha A”。表面上的所有其他点有两种类型:“Beta A”和“Beta B”。
我想用这些属性计算相对于β点的'Alpha A'的度量标准:
示例数据框:
color distance
match 10
match 33
no_match 88
match 1000
这是一个非常天真的解决我的伪代码问题的方法:
metric = 0
for (point in df){
if (color == match){
weight = 1*(1/distance)
} else {
weight = -1*(1/distance)
}
metric = metric + weight
}
我不怀疑这个问题很常见,并且有无数的技巧 解决它。但是,由于我不知道要搜索的正确术语,查找信息并不是很成功......
要清楚,我并不是想预测'Alpha A'的位置。 我只是想计算一个有关其环境信息的指标。
DF
df = data.frame(color = c('match', 'match', 'no_match', 'match'), distance = c(10, 33, 1, 0))
答案 0 :(得分:1)
使用此
df$weight <- NULL
df$weight = 1*(1 - 1/df$distance)
df$weight[df$color!="match"] = -1*df$weight[df$color!="match"]
答案 1 :(得分:1)
目前还不清楚你要求的是什么。
如果找到更多有关此问题的文献是最近邻问题,或者更准确地说,是最近集问题。
您尚未解释如何使用此指标。如果最近邻居的颜色==匹配,那将是最积极的;如果颜色相反则最不利;如果两者等距,则为零。
这是你想要的吗?
如果是这样,这是正确的。唯一的问题是,如果它足够快地下降,使其幅度小于某个值,除非&#34;非常接近&#34;通过使用1 /(1-distance ^ 2)来表示。
编辑: 实际上,1 /(1 +距离)可能更好,或者你可能发现自己除以零。