def q14(never_used_param): n_params = 2 N = 1000 X, y = load_dataset(N, f, n_params, noise_level=0.1) lr = linreg.LinearRegression() lr.fit(transform(X), y) return lr.w
def q13(never_used_param): n_params = 2 N = 1000 X, y = load_dataset(N, f, n_params, noise_level=0.1) lr = linreg.LinearRegression() lr.fit(X, y) err = np.sum(np.vectorize(sign)(lr.predict(X)) != y) err_rate = err * 1.0 / N return err_rate
def q15(never_used_param): n_params = 2 N = 1000 X_train, y_train = load_dataset(N, f, n_params, noise_level=0.1) lr = linreg.LinearRegression() lr.fit(transform(X_train), y_train) X_test, y_test = load_dataset(N, f, n_params, noise_level=0.1) err = np.sum(np.vectorize(sign)(lr.predict(transform(X_test))) != y_test) err_rate = err * 1.0 / N return err_rate
test_data = np.loadtxt("boston_test.csv", delimiter=",") X_train, t_train = train_data[:,:-1], train_data[:,-1] X_test, t_test = test_data[:,:-1], test_data[:,-1] # print("Initial X_train:",X_train.shape) # print("Initial t_train:", t_train.shape) # make sure that we have N-dimensional Numpy arrays (ndarray) t_train = t_train.reshape((len(t_train), 1)) t_test = t_test.reshape((len(t_test), 1)) # print("X_train after reshape", X_train.shape) # print("X_train after reshape", t_train.shape) print("Number of training instances: %i" % X_train.shape[0]) print("Number of test instances: %i" % X_test.shape[0]) print("Number of features: %i" % X_train.shape[1]) # (b) fit linear regression using only the first feature model_single = linreg.LinearRegression() model_single.fit(X_train[:,0], t_train) print("Single feature model weights w0 = %f and w1 = %f " % (model_single.w[0], model_single.w[1])) # (c) fit linear regression model using all features model_all = linreg.LinearRegression() model_all.fit(X_train, t_train) print("Weights for all features model:") print(model_all.w) # (d) evaluation of results def rmse(t, tp): return np.sqrt(((t - tp) ** 2).mean()) pred_single = model_single.predict(X_test[:,0]) rmse_single = rmse(t_test, pred_single)
X_train = X_train.reshape((len(X_train), 1)) X_plot = X_plot.reshape((len(X_plot), 1)) print(X_plot.shape) print("Shape of training data: %s" % str(X_train.shape)) print("Shape of target vector: %s" % str(t_train.shape)) print("Shape of plotting data: %s" % str(X_plot.shape)) # print(X_train) # In[ ]: import linreg # instantiate the regression model model = linreg.LinearRegression() # fit the model model.fit(X_train, t_train) # In[ ]: # get predictions for the data points preds = model.predict(X_plot) print(model.w) # plot the points and the linear regression model plt.plot(X_train, t_train, 'o') plt.plot(X_plot, preds, '-', color='red')