From 02a3886dd0b6d17951e99abed935894d8be75d11 Mon Sep 17 00:00:00 2001 From: butterfly-is-butter-fly <3425654530@qq.com> Date: Sat, 12 Oct 2024 20:07:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20function.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- function.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/function.py b/function.py index 902bf45..939cc8c 100644 --- a/function.py +++ b/function.py @@ -1,6 +1,6 @@ # function.py import numpy as np -from collections import Counter + """ 挑战说明: @@ -43,11 +43,17 @@ name = "邓杰元" # 这里写自己的代码实现 def classify0(inX, dataSet, labels, k=20): - distances = [np.sqrt(np.sum((x - inX) ** 2)) for x in dataSet] - k_indices = np.argsort(distances)[:k] - - most_common = Counter(k_nearest_labels).most_common(1) - return most_common[0][0] + # 计算输入向量与训练集中每个样本的欧氏距离 + distances = np.sqrt(np.sum((dataSet - input_vector) ** 2, axis=1)) + + # 获取距离最小的k个样本的索引 + k_indices = np.argsort(distances)[:k] + + # 获取这k个样本的标签 + k_nearest_labels = labels[k_indices] + + # 找出出现次数最多的标签 + most_common = Counter(k_nearest_labels).most_common(1)