更新 function.py
Gitea Actions Experiment Test / Experiment-Actions (push) Successful in 37s

This commit is contained in:
cy
2024-10-17 20:12:56 +08:00
parent 6fdfe0b65c
commit 2dff16e543
+6 -3
View File
@@ -41,19 +41,22 @@ def classify(input_vector, dataSet, labels, k=2):
Returns:
- int: 预测的分类标签。
"""
sigma = 1.0
dataSet_size = dataSet.shape[0]
# 计算欧氏距离
diff_mat = np.tile(input_vector, (dataSet_size, 1)) - dataSet
sq_diff_mat = diff_mat ** 2
sq_distances = sq_diff_mat.sum(axis=1)
sq_distances = sq_diff_mat.sum(axis = 1)
distances = np.sqrt(sq_distances)
# 对距离进行排序
sorted_indices = distances.argsort()
class_count = {}
for i in range(k):
vote_label = labels[sorted_indices[i]]
class_count[vote_label] = class_count.get(vote_label, 0) + 1
sorted_class_count = sorted(class_count.items(), key=lambda x: x[1], reverse=True)
# 计算权重,这里使用高斯核函数
weight = np.exp(- sq_distances[sorted_indices[i]] / (2 * sigma ** 2))
class_count[vote_label] = class_count.get(vote_label, 0)+ weight
sorted_class_count = sorted(class_count.items(), key = lambda x: x[1], reverse = True)
return sorted_class_count[0][0]