Ошибка в перекрестной проверке реализации в KNN Python - PullRequest
0 голосов
/ 20 ноября 2018

Я узнал Python KNN с нуля из этого: https://machinelearningmastery.com/tutorial-to-implement-k-nearest-neighbors-in-python-from-scratch/ Я хочу реализовать перекрестную проверку из этого: https://machinelearningmastery.com/implement-backpropagation-algorithm-scratch-python/ Вот моя реализация:

#Input
file = 'wdbc.csv'
fitur = 30
k = 2
n_folds = 2
#split = 0.80
#Proses
dataset = loadDataset(file, fitur, trainingSet, testSet)
folds = cross_validation_split(dataset, n_folds)
for fold in folds:
    trainingSet = list(folds)
    trainingSet.remove(fold)
    trainingSet = sum(trainingSet, [])
    #print(trainingSet)
    testSet = list()
    predictions = []
    for row in fold:
        row_copy = list(row)
        testSet.append(row_copy)
        #row_copy[-1] = None
    for x in range(len(testSet)):
        neighbors = getNeighbors(trainingSet, testSet[x], k)
        result = getResponse(neighbors)
        predictions.append(result)

Но это выводесть ошибка:

File "C:/Users/user.compaq/Documents/help/cobaknn_crossval.py", line 45, in euclideanDistance
    distance += math.pow((instance1[x] - instance2[x]), 2)

TypeError: unsupported operand type(s) for -: 'str' and 'float'

Как я могу это исправить?Все instance1 [x] и instance2 [x] я гарантировал им как float, но я не знаю, как программа идентифицирует один из них как строку.Помоги мне.Thankyou.

...