Итак, я знакомлюсь с глубоким обучением, и в связи с первой проблемой, связанной с домашней работой, меня просят попрактиковаться в вычислении KNN, либо вручную, либо написав скрипт. Я решил сделать сценарий, чтобы я мог практиковать. Вот мой код, и мне было интересно, достаточно ли этого?
import math
from math import sqrt
set1 = [[0,1,0],[0,1,1],[1,2,1],[1,2,0]]
set2 = [[1,2,2],[2,2,2],[1,2,-1],[2,2,3]]
set3 = [[-1,-1,-1],[0,-1,-2],[0,-1,1],[-1,-2,1]]
# dataset = [
# [[0,1,0],[0,1,1],[1,2,1],[1,2,0]],
# [[1,2,2],[2,2,2],[1,2,-1],[2,2,3]],
# [[-1,-1,-1],[0,-1,-2],[0,-1,1],[-1,-2,1]]
# ]
test = [[1,0,1]]
distance = []
for a in test:
temp = []
for b in set1:
dist = sum([pow(a[i]-b[i], 2) for i in range(len(a))])
temp.append(dist)
distance.append(temp)
print(distance)
for a in test:
temp = []
for c in set2:
dist = sum([pow(a[i]-c[i], 2) for i in range(len(a))])
temp.append(dist)
distance.append(temp)
print(distance)
for a in test:
temp = []
for d in set3:
dist = sum([pow(a[i]-d[i], 2) for i in range(len(a))])
temp.append(dist)
distance.append(temp)
print(distance)
Это возвращает:
[[3, 2, 4, 5]]
[[3, 2, 4, 5], [5, 6, 8, 9]]
[[3, 2, 4, 5], [5, 6, 8, 9], [9, 11, 2, 8]]
Я чувствую, что это может быть неправильно, но я не слишком уверен, что полный результат влечет за собой. Любая помощь или советы будут оценены. Я знаю, что есть функция numpy, чтобы сделать это проще, но я новичок в кодировании.
Спасибо всем!