Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pickle as pkl
- import numpy as np
- def predict(x):
- """
- Funkcja pobiera macierz przykladow zapisanych w macierzy X o wymiarach NxD i zwraca wektor y o wymiarach Nx1,
- gdzie kazdy element jest z zakresu {0, ..., 35} i oznacza znak rozpoznany na danym przykladzie.
- :param x: macierz o wymiarach NxD
- :return: wektor o wymiarach Nx1
- """
- train_data = pkl.load(open('train.pkl', mode='rb'))
- y = np.zeros(shape=(x.shape[0], 1))
- x_train = train_data[0][0:6000]
- y_train = train_data[1][0:6000]
- hamming_dist = hamming_distance(x, x_train)
- ordered = sort_train_labels_knn(hamming_dist, y_train.reshape(-1))
- for i in range(hamming_dist.shape[0]):
- y[i, 0] = ordered[i][0]
- return y
- def hamming_distance(X, X_train):
- X_int = X.astype(int)
- X_train_int = np.transpose(X_train.astype(int))
- return (X_int @ (1 - X_train_int)) + ((1 - X_int) @ X_train_int)
- pass
- def sort_train_labels_knn(Dist, y):
- order = Dist.argsort(kind='mergesort')
- return y[order]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement