【发布时间】:2021-09-09 14:04:47
【问题描述】:
假设我有这个点的特征列表[3.5, 2.5, 7.5] 和一个类的计算质心 - 0.700
我必须找到点和质心之间的欧几里得距离。这就是我迷失的地方,因为我使用的欧几里得距离公式是:
def __euclidean(self, x, y):
return sqrt(sum(pow(a - b, 2) for a, b in zip(x, y)))
在这种情况下,x 变量是特征列表,y 变量是质心的值 - 0.7。 我错过了什么明显的东西吗?
编辑:我正在添加我正在尝试实现的算法以及质心的公式。
算法 1 的输入是训练数据,X = {x1, x2,...,xn}、质心邻居的数量 k、用于计算点之间相似度的距离度量 (Dist) 和目标将估计其类的点 p。输出是定义周围邻域的半径 目标点p。
质心公式:
def __compute_centroid(self, points):
sum_centroid = []
for p in points:
sum_centroid.append(sum(p))
return (1 / len(points)) * sum(sum_centroid)
【问题讨论】:
-
?您的代码是否产生错误?有什么问题?
-
不清楚,你的空间是1D还是2D?我只看到一个一维向量作为您的点列表
-
@mozway 不,这是一个具有 3 个特征(x1、x2、x3)的点。我的问题是我没有 y1, y2, y3 因为质心只有 0.7
-
@Him 没有错误只是停留在一些逻辑上
-
找到 3D 向量
x和 1D 向量y之间的距离是什么意思?
标签: python nearest-neighbor centroid