from sklearn.neighbors import KNeighborsClassifier
# 样本数据
X = [[1, 6], [1, 2], [3, 5], [3, 6],[5, 2], [6, 5], [7, 7], [7, 1], [8, 3]] # 每个样本有两个特征
# 标签
y = ['Left', 'Left', 'middle','middle', 'middle', 'top right', 'top right', 'bottom right', 'bottom right'] # 每个样本对应的标签
# 创建并训练K最近邻模型
estimator = KNeighborsClassifier(n_neighbors=3)
estimator.fit(X, y)
# 使用模型进行预测
ret = estimator.predict([[4, 1]])
print(ret)
输出是 ['Left']
如图所示,应该是离middle更近呀,为什么是left,随后问了一下文心一言,他算出来的也是middle:
文心一言的三个最小的说错了,最近的三个是[5, 2](距离=(\sqrt{2})),[7,1] (距离=(3))和 [1, 2](距离=(\sqrt{10}))
这三个的标签分别是 middle、bottom right、Left , 那么按照多个不同的标签,随机取一个的说法应该是随机的,但是运行很多次都是left。为什么呢
而且为啥不是取三个中最近的middle
求大家指点,哪里有问题