Assignment 4 Instructions
Assignment 4 Instructions
# del X_train,X_test
[7]: X_train.shape
[7]: (7500, 2)
1
1 Implementing Custom RandomSearchCV
[21]: from sklearn.metrics import accuracy_score
from random import randint
import pdb
def select_test_indices(x_train,j,folds):
return list(range(int(j*len(x_train)/folds), int((j+1)*len(x_train)/folds)))
trainscores = []
testscores = []
for k in tqdm(params):
trainscores_folds = []
testscores_folds = []
for j in range(0, folds):
# check this out: https://stackoverflow.com/a/9755548/4084039
test_indices = select_test_indices(x_train,j,folds)
train_indices = list(set(list(range(0, len(x_train)))) -␣
,→set(test_indices))
#pdb.set_trace()
# selecting the data points based on the train_indices and␣
,→test_indices
2
X_train = x_train[train_indices]
Y_train = y_train[train_indices]
X_test = x_train[test_indices]
Y_test = y_train[test_indices]
classifier.n_neighbors = k
classifier.fit(X_train,Y_train)
Y_predicted = classifier.predict(X_test)
testscores_folds.append(accuracy_score(Y_test, Y_predicted))
Y_predicted = classifier.predict(X_train)
trainscores_folds.append(accuracy_score(Y_train, Y_predicted))
trainscores.append(np.mean(np.array(trainscores_folds)))
testscores.append(np.mean(np.array(testscores_folds)))
return trainscores,testscores
neigh = KNeighborsClassifier()
3
[33]: def plot_decision_boundary(X1, X2, y, clf):
# Create color maps
cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])
cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF'])
plt.figure()
plt.pcolormesh(xx, yy, Z, cmap=cmap_light)
# Plot also the training points
plt.scatter(X1, X2, c=y, cmap=cmap_bold)
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.title("2-Class classification (k = %i)" % (clf.n_neighbors))
plt.show()
4
[34]: from matplotlib.colors import ListedColormap
neigh = KNeighborsClassifier(n_neighbors = 16)
neigh.fit(X_train, y_train)
plot_decision_boundary(X_train[:, 0], X_train[:, 1], y_train, neigh)
[ ]: