更新 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: 预测的分类标签。
"""
# 确保输入样本 inX 是二维数组
inX = np.mat(inX)
inX = np.atleast_2d(inX)
# 计算样本数量和特征数量
numSamples, numFeatures = dataSet.shape
@@ -66,8 +67,9 @@ def classify0(inX, dataSet, labels, k=3):
covMat += np.eye(numFeatures) * 0.0001
# 计算待分类样本与训练集中每个样本的马氏距离
inXMinusMean = inX - meanVals
dist = np.sqrt(np.sum(inXMinusMean * np.linalg.inv(covMat) * inXMinusMean.T))
diffMat = dataSet - meanVals
invCovMat = np.linalg.inv(covMat)
dist = np.sum(np.dot(diffMat, invCovMat) * diffMat, axis=1)
# 获取距离最近的k个样本的索引
sortedDistIndices = np.argsort(dist)