Advertisement
Guest User

pred

a guest
May 26th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. import pickle as pkl
  2. import numpy as np
  3.  
  4.  
  5. def predict(x):
  6. """
  7. Funkcja pobiera macierz przykladow zapisanych w macierzy X o wymiarach NxD i zwraca wektor y o wymiarach Nx1,
  8. gdzie kazdy element jest z zakresu {0, ..., 35} i oznacza znak rozpoznany na danym przykladzie.
  9. :param x: macierz o wymiarach NxD
  10. :return: wektor o wymiarach Nx1
  11. """
  12. train_data = pkl.load(open('train.pkl', mode='rb'))
  13. y = np.zeros(shape=(x.shape[0], 1))
  14. x_train = train_data[0][0:6000]
  15. y_train = train_data[1][0:6000]
  16. hamming_dist = hamming_distance(x, x_train)
  17. ordered = sort_train_labels_knn(hamming_dist, y_train.reshape(-1))
  18.  
  19. for i in range(hamming_dist.shape[0]):
  20. y[i, 0] = ordered[i][0]
  21. return y
  22.  
  23.  
  24. def hamming_distance(X, X_train):
  25. X_int = X.astype(int)
  26. X_train_int = np.transpose(X_train.astype(int))
  27. return (X_int @ (1 - X_train_int)) + ((1 - X_int) @ X_train_int)
  28. pass
  29.  
  30.  
  31. def sort_train_labels_knn(Dist, y):
  32. order = Dist.argsort(kind='mergesort')
  33. return y[order]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement