Ich lerne den KNN-Algorithmus. Ich bin derzeit in der Phase, in der ich die nächsten Nachbarn meiner Test-Instanz durch Berechnung des Ähnlichkeitsmaßes wieder in jeder Instanz meines Trainings-Datensatzes erhalte. Das meiste, was ich online gefunden habe, vergleicht die Ähnlichkeiten zwischen der Reihenfolge von Strings oder Listen von Strings, was ich habe, sind Listen von Listen mit Strings und ganzen Zahlen. Wie kann ich die Ähnlichkeit Maß meiner testInstance gegen jede Instanz meiner Ausbildung DatasetDas Ähnlichkeitsmaß zwischen Listen von Listen erhalten
def getNeighbours(trainingSet,testInstance,K):
distances = []
for x in range (len(trainingSet)):
dist = distance.levenshtein(testInstance,trainingSet)
distances.append((trainingSet[x],dist.ratio()))
distances.sort(key = operator.itemgetter(1))
neighbors = []
for x in range(K):
neighbors.append(distances[x][0])
return neighbors
trainSet = [['low', 'low', 4, 'more', 'med', 'high', 'vgood'],['low', 'low', '5more', 4, 'big', 'low', 'unacc'],['low', 'med', 3, 4, 'med', 'high', 'good']]
test_Instance = ['low', 'med', 3, 4, 'med', 'high', 'good']
neigbors = getNeighbours(trainSet,test_Instance,1)
print(neigbors)