Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. def get_labels(indices, y_train):
  2. labels = [y_train[i] for i in indices]
  3. return labels
  4.  
  5. def accuracy_by_rank(y_pred, y_true, rank=1):
  6. return sum([y in prediction[:rank] for prediction, y in zip(y_pred, y_true)]) / len(y_true)
  7.  
  8. ranks = 36
  9. predictions = []
  10. for i in range(len(y_train)):
  11. knn = KNeighborsClassifier(n_neighbors=1, p=1)
  12. x = np.vstack((x_train[:i], x_train[i+1:]))
  13. y = np.concatenate((y_train[:i], y_train[i+1:]))
  14. knn.fit(x, y)
  15. neighbours = knn.kneighbors(x_train[None, i], ranks)
  16. predictions.append(get_labels(neighbours[1][0], y_train))
  17.  
  18. for i in range(1, ranks):
  19. print(f'Rank {i} Accuracy {accuracy_by_rank(predictions, y_train, i)}')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement