Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.87 KB | None | 0 0
  1. #!/usr/bin/python
  2. import operator
  3. import math
  4.  
  5. def euclideanDistance(data_set1, data_set2, length):
  6.     distance = 0
  7.     for x in range(length):
  8.         distance += pow((data_set1[x] - data_set2[x]), 2)
  9.     return math.sqrt(distance)
  10.  
  11. #k-nn regression (k-nearest neighbors algorithm) using the euclidean distance
  12. def knnR(training_set, test_set, k, length, colTarget):
  13.  
  14.     distances = []
  15.     avg = 0
  16.     sum_avg = 0
  17.  
  18.     for x in range(len(training_set)):
  19.         dist = euclideanDistance(test_set, training_set[x], length)
  20.         distances.append((training_set[x], dist))
  21.     distances.sort(key=operator.itemgetter(1))
  22.     neighbors = []
  23.     for x in range(k):
  24.         neighbors.append(distances[x][0])
  25.  
  26.     #Average calculation
  27.     for n in range(len(neighbors)):
  28.         sum_avg += neighbors[n][colTarget]
  29.     avg = sum_avg/len(neighbors)
  30.  
  31.     return avg
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement