0
私はKNNアルゴリズムを学習しています。私は現在、訓練データセットの各インスタンスを再び類似性測度を計算することによって、私のテストインスタンスの最も近い近隣を取得する段階にあります。私がオンラインで遭遇したことのほとんどは、文字列のシーケンスまたは文字列のリストの類似点を比較しています。文字列と整数のリストのリストです。どのように私は私のトレーニングデータセットの各インスタンスに対して私testInstanceの類似度を得ることができますリストのリスト間の類似度を取得する
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)