fast !!!
Gitea Actions Challenge Test / Challenge-Actions (push) Successful in 10s

This commit is contained in:
2024-10-09 01:13:40 +08:00
parent 6c648e35ec
commit e3f04c4443
+6 -7
View File
@@ -39,7 +39,7 @@ name = "向兴宇"
# 这里写自己的代码实现 # 这里写自己的代码实现
def classify0(inX, dataSet, labels, k=8, _cache={"VI": None}): def classify0(inX, dataSet, labels, k=8, _cache={"VI": None, "dataSet": None}):
""" """
KNN 分类算法。 KNN 分类算法。
@@ -61,14 +61,13 @@ def classify0(inX, dataSet, labels, k=8, _cache={"VI": None}):
diff = dataSet - inX diff = dataSet - inX
# 使用矩阵运算计算马氏距离 # 使用矩阵运算计算马氏距离
# distances = np.einsum("ij,jk,ik->i", diff, _cache["VI"], diff) distances = np.einsum("ij,jk,ik->i", diff, _cache["VI"], diff)
# 对距离排序,获取前 k 个最近的样本索引
sortedDistIndices = np.argpartition(distances, 8)[:8]
# 统计前 k 个样本的标签 # 统计前 k 个样本的标签
classCount = np.bincount( classCount = np.bincount(labels[sortedDistIndices])
labels[
np.argpartition(np.einsum("ij,jk,ik->i", diff, _cache["VI"], diff), 8)[:8]
]
)
# 返回出现次数最多的标签 # 返回出现次数最多的标签
return np.argmax(classCount) return np.argmax(classCount)