generated from LufsX/Experiment-kNN
This commit is contained in:
+1
-18
@@ -28,21 +28,8 @@ 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):
|
||||
def classify(input_vector, dataSet, labels, k=9):
|
||||
"""
|
||||
KNN 分类算法,添加了数据归一化处理。
|
||||
|
||||
@@ -55,10 +42,6 @@ def classify(input_vector, dataSet, labels, k=2):
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user