import numpy as np
class kNN:
def __init__(self):
pass
def fit(self, x_train, y_train):
self.xtr = x_train
self.ytr = y_train
def predict(self, k, dis, x_test):
assert dis == 'E' or dis == 'M'
num_test = x_test.shape[0] # 测试样本数量
labelist = []
# 使用欧式距离公式做为距离数量
if dis == 'E':
for i in range(num_test):
distances = np.sqrt(np.sum(((self.xtr - np.tile(x_test[i], (self.xtr.shape[0], 1))) ** 2), axis=1))
nearest_k = np.argsort(distances) # 根据下标排序
topK = nearest_k[:k] # 按照K值进行切片
classCount = {} # 创建一个空字典
for i in topK:
classCount[self.ytr[i]] = classCount.get(self.ytr[i], 0) + 1
sortclassCount = sorted(classCount.items(), key=operator.itemgetter(1))
labelist.append(sortclassCount)
return np.array(labelist)
# 使用曼哈顿公式作为距离公式
if dis == 'M':
for i in range(num_test):
# 行相加
distances = np.sum(np.abs(self.xtr - np.tile(x_test[i], (self.xtr.shape[:0], 1))), axis=1)
nearest_k = np.argsort(distances)
topK = nearest_k[:k]
classCount = {}
for i in topK:
classCount[self.ytr[i]] = classCount.get(self.ytr[i], 0) + 1
sortedclassCount = sorted(classCount.items(), key= operatory.itemgetter(1))
labelist.append(sortedclassCount[0][0])
return np.array(labelist)
深度学习kNN算法
最新推荐文章于 2023-03-17 15:35:56 发布
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
TensorFlow-v2.15
TensorFlow
TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

5367

被折叠的 条评论
为什么被折叠?



