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

This commit is contained in:
cy
2024-10-20 17:58:30 +08:00
parent 7a15d92ba8
commit 0d0899bbc9
+20 -2
View File
@@ -28,19 +28,37 @@ id = "202210423117"
name = "程悦"
def normalize(data):
"""
对数据进行归一化处理,将数据缩放到 [0, 1] 范围内。
Args:
- data (numpy array): 待归一化的数据。
Returns:
- numpy array: 归一化后的数据。
"""
min_val = data.min(axis=0)
max_val = data.max(axis=0)
return (data - min_val) / (max_val - min_val + 1e-10) # 避免除以零
def classify(input_vector, dataSet, labels, k=2):
"""
KNN 分类算法。
KNN 分类算法,添加了数据归一化处理。
Args:
- input_vector (numpy array): 输入待分类的样本。
- dataSet (numpy array): 训练数据集。
- labels (list or numpy array): 训练集对应的标签。
- k (int): kNN 算法参数,请**自行设置默认值**,评测时仅会使用其默认值,不修改默认值将**无法通过**评测,**成绩为零**。
- k (int): kNN 算法参数。
Returns:
- int: 预测的分类标签。
"""
# 归一化训练数据集和输入向量
dataSet = normalize(dataSet)
input_vector = normalize(input_vector)
dataSet_size = dataSet.shape[0]
# 计算欧氏距离
diff_mat = np.tile(input_vector, (dataSet_size, 1)) - dataSet