Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_labels(indices, y_train):
- labels = [y_train[i] for i in indices]
- return labels
- def accuracy_by_rank(y_pred, y_true, rank=1):
- return sum([y in prediction[:rank] for prediction, y in zip(y_pred, y_true)]) / len(y_true)
- ranks = 36
- predictions = []
- for i in range(len(y_train)):
- knn = KNeighborsClassifier(n_neighbors=1, p=1)
- x = np.vstack((x_train[:i], x_train[i+1:]))
- y = np.concatenate((y_train[:i], y_train[i+1:]))
- knn.fit(x, y)
- neighbours = knn.kneighbors(x_train[None, i], ranks)
- predictions.append(get_labels(neighbours[1][0], y_train))
- for i in range(1, ranks):
- print(f'Rank {i} Accuracy {accuracy_by_rank(predictions, y_train, i)}')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement