Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import pandas as pd
- import operator
- def ed(x1, x2):
- return np.sqrt(np.sum((x1-x2)**2))
- def predict(K, x_train, y_train, x_test):
- predictions = []
- for i in range(len(x_test)):
- dist = np.array([ed(x_test[i], t) for t in x_train])
- dist_sorted = dist.argsort()[:K]
- nc = {}
- for idx in dist_sorted:
- if y_train[idx] in nc:
- nc[y_train[idx]] += 1
- else:
- nc[y_train[idx]] = 1
- snc = sorted(nc.items(), reverse=True)
- predictions.append(snc[0][0])
- return predictions
- from sklearn.datasets import load_iris
- from sklearn.model_selection import train_test_split
- from sklearn.metrics import accuracy_score
- import matplotlib.pylab as plt
- data = load_iris()
- x_train,x_test,y_train,y_test = train_test_split(data['data'],data['target'],test_size=0.1,random_state=0)
- predictions=predict(5, x_train, y_train, x_test)
- print(x_test.shape,y_train.shape,x_train.shape,y_test.shape)
- # print(x_train, '\n\n\n',y_train[0])
- pd.scatter_matrix(x_train, y_train)
- # plt.scatter(x_test, y_train[0])
- print(predictions)
- print('Accuracy:', accuracy_score(y_test,predictions))
Advertisement
Add Comment
Please, Sign In to add comment