if question == "1": dataset = load_dataset('nonLinearData.pkl') X = dataset['X'] y = dataset['y'] Xtrain, Xtest, ytrain, ytest = train_test_split(X, y, random_state=0) # standard logistic regression lr = logRegL2(lammy=1) lr.fit(Xtrain, ytrain) print("Training error %.3f" % np.mean(lr.predict(Xtrain) != ytrain)) print("Validation error %.3f" % np.mean(lr.predict(Xtest) != ytest)) utils.plotClassifier(lr, Xtrain, ytrain) utils.savefig("logReg.png") # kernel logistic regression with a linear kernel lr_kernel = kernelLogRegL2(kernel_fun=logReg.kernel_linear, lammy=1) lr_kernel.fit(Xtrain, ytrain) print("Training error %.3f" % np.mean(lr_kernel.predict(Xtrain) != ytrain)) print("Validation error %.3f" % np.mean(lr_kernel.predict(Xtest) != ytest)) utils.plotClassifier(lr_kernel, Xtrain, ytrain) utils.savefig("logRegLinearKernel.png") elif question == "1.1":
y_pred = np.zeros(y.size) + utils.mode(y) error = np.mean(y_pred != y) print("Mode predictor error: %.3f" % error) # 3Evaluate decision stump model = DecisionStumpEquality() model.fit(X, y) y_pred = model.predict(X) error = np.mean(y_pred != y) print("Decision Stump with inequality rule error: %.3f" % error) # Plot result utils.plotClassifier(model, X, y) fname = os.path.join("..", "figs", "q6_decisionBoundary.pdf") plt.xlabel("x-coordinate") plt.ylabel("y-coordinate") plt.legend() plt.savefig(fname) print("\nFigure saved as '%s'" % fname) elif question == "6.2": # Load citiesSmall dataset with open(os.path.join('..','data','citiesSmall.pkl'), 'rb') as f: dataset = pickle.load(f) X = dataset["X"] y = dataset["y"]
print("KNN with k={} gets validation error of {}".format( k_test, y_error)) elif question == '3.3': with open(os.path.join('..', 'data', 'citiesSmall.pkl'), 'rb') as f: dataset = pickle.load(f) X = dataset['X'] y = dataset['y'] Xtest = dataset['Xtest'] ytest = dataset['ytest'] k = 1 model = KNN(k) model.fit(X, y) utils.plotClassifier(model, X, y) fname = os.path.join("..", "figs", "q3_3_knn_training.pdf") plt.savefig(fname) print("\nFigure saved as '%s'" % fname) utils.plotClassifier(model, Xtest, ytest) fname = os.path.join("..", "figs", "q3_3_knn_test.pdf") plt.savefig(fname) print("\nFigure saved as '%s'" % fname) model = KNeighborsClassifier(n_neighbors=1, p=2) model.fit(X, y) utils.plotClassifier(model, X, y) fname = os.path.join("..", "figs", "q3_3_sklearn_kneighbors_training.pdf") plt.savefig(fname)
if question == "1": dataset = load_dataset('nonLinearData.pkl') X = dataset['X'] y = dataset['y'] Xtrain, Xtest, ytrain, ytest = train_test_split(X, y, random_state=0) # standard logistic regression lr = logRegL2(lammy=1) lr.fit(Xtrain, ytrain) print("Training error %.3f" % np.mean(lr.predict(Xtrain) != ytrain)) print("Validation error %.3f" % np.mean(lr.predict(Xtest) != ytest)) utils.plotClassifier(lr, Xtrain, ytrain) utils.savefig("logReg.png") # kernel logistic regression with a linear kernel lr_kernel = kernelLogRegL2(kernel_fun=logReg.kernel_linear, lammy=1) lr_kernel.fit(Xtrain, ytrain) print("Training error %.3f" % np.mean(lr_kernel.predict(Xtrain) != ytrain)) print("Validation error %.3f" % np.mean(lr_kernel.predict(Xtest) != ytest)) utils.plotClassifier(lr_kernel, Xtrain, ytrain) utils.savefig("logRegLinearKernel.png") elif question == "1.1":
if question == "1": dataset = load_dataset('nonLinearData.pkl') X = dataset['X'] y = dataset['y'] Xtrain, Xtest, ytrain, ytest = train_test_split(X, y, random_state=0) # standard logistic regression lr = logRegL2(lammy=1) lr.fit(Xtrain, ytrain) print("Training error %.3f" % np.mean(lr.predict(Xtrain) != ytrain)) print("Validation error %.3f" % np.mean(lr.predict(Xtest) != ytest)) utils.plotClassifier(lr, Xtrain, ytrain) utils.savefig("logReg.png") # kernel logistic regression with a linear kernel lr_kernel = kernelLogRegL2(kernel_fun=logReg.kernel_linear, lammy=1) lr_kernel.fit(Xtrain, ytrain) print("Training error %.3f" % np.mean(lr_kernel.predict(Xtrain) != ytrain)) print("Validation error %.3f" % np.mean(lr_kernel.predict(Xtest) != ytest)) utils.plotClassifier(lr_kernel, Xtrain, ytrain) utils.savefig("logRegLinearKernel.png") elif question == "1.1":
if question == "1": dataset = load_dataset("nonLinearData.pkl") X = dataset["X"] y = dataset["y"] Xtrain, Xtest, ytrain, ytest = train_test_split(X, y, random_state=0) # standard logistic regression lr = logRegL2(lammy=1) lr.fit(Xtrain, ytrain) print("Training error %.3f" % np.mean(lr.predict(Xtrain) != ytrain)) print("Validation error %.3f" % np.mean(lr.predict(Xtest) != ytest)) utils.plotClassifier(lr, Xtrain, ytrain) utils.savefig("logReg.png") # kernel logistic regression with a linear kernel lr_kernel = kernelLogRegL2(kernel_fun=logReg.kernel_linear, lammy=1) lr_kernel.fit(Xtrain, ytrain) print("Training error %.3f" % np.mean(lr_kernel.predict(Xtrain) != ytrain)) print("Validation error %.3f" % np.mean(lr_kernel.predict(Xtest) != ytest)) utils.plotClassifier(lr_kernel, Xtrain, ytrain) utils.savefig("logRegLinearKernel.png") elif question == "1.1":
if question == "1": dataset = load_dataset('nonLinearData.pkl') X = dataset['X'] y = dataset['y'] Xtrain, Xtest, ytrain, ytest = train_test_split(X, y, random_state=0) # standard logistic regression lr = logRegL2(lammy=1) lr.fit(Xtrain, ytrain) print("Training error %.3f" % np.mean(lr.predict(Xtrain) != ytrain)) print("Validation error %.3f" % np.mean(lr.predict(Xtest) != ytest)) utils.plotClassifier(lr, Xtrain, ytrain) utils.savefig("logReg.png") # kernel logistic regression with a linear kernel lr_kernel = kernelLogRegL2(kernel_fun=logReg.kernel_linear, lammy=1) lr_kernel.fit(Xtrain, ytrain) print("Training error %.3f" % np.mean(lr_kernel.predict(Xtrain) != ytrain)) print("Validation error %.3f" % np.mean(lr_kernel.predict(Xtest) != ytest)) utils.plotClassifier(lr_kernel, Xtrain, ytrain) utils.savefig("logRegLinearKernel.png") elif question == "1.1":