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

This commit is contained in:
sn
2024-10-16 19:38:21 +08:00
parent f6ae46cc45
commit f94e51d6e6
+5 -3
View File
@@ -54,7 +54,8 @@ def classify0(inX, dataSet, labels, k=3):
- int: 预测的分类标签。 - int: 预测的分类标签。
""" """
# 确保输入样本 inX 是二维数组 # 确保输入样本 inX 是二维数组
inX = np.mat(inX) inX = np.atleast_2d(inX)
# 计算样本数量和特征数量 # 计算样本数量和特征数量
numSamples, numFeatures = dataSet.shape numSamples, numFeatures = dataSet.shape
@@ -66,8 +67,9 @@ def classify0(inX, dataSet, labels, k=3):
covMat += np.eye(numFeatures) * 0.0001 covMat += np.eye(numFeatures) * 0.0001
# 计算待分类样本与训练集中每个样本的马氏距离 # 计算待分类样本与训练集中每个样本的马氏距离
inXMinusMean = inX - meanVals diffMat = dataSet - meanVals
dist = np.sqrt(np.sum(inXMinusMean * np.linalg.inv(covMat) * inXMinusMean.T)) invCovMat = np.linalg.inv(covMat)
dist = np.sum(np.dot(diffMat, invCovMat) * diffMat, axis=1)
# 获取距离最近的k个样本的索引 # 获取距离最近的k个样本的索引
sortedDistIndices = np.argsort(dist) sortedDistIndices = np.argsort(dist)