n = 100 x_origin = np.linspace(X.min(), X.max(), n) _, _, xdata = utils.expand_feature(x_origin.reshape((n, 1)), mu, std) ydata = model.predict(xdata) plt.figure() plt.plot(xdata[:, 1], ydata, 'r-') plt.scatter(trainX[:, 1], trainy) plt.xlabel('normalized hand-size') plt.ylabel('stature') plt.legend(['compound model', 'data points'], loc='lower right') plt.show() #%% 预测 best_idx = np.argmin(model.validloss) model.W = model.snapshot[best_idx] hand_size = float(input('输入你手的尺寸(以毫米为单位):')) hand_size = np.array([[hand_size]]) _, _, hand_size = utils.expand_feature(hand_size, mu, std) print("预测的身高: %.2f mm" % (model.predict(hand_size))) #%% 目标值和测试值对照检查 target_pred = np.hstack((testy, model.predict(testX))) for i in range(testy.shape[0]): print('目标值:{0}, 预测值:{1}'.format(target_pred[i, 0], target_pred[i, 1])) #%% 载入作业用数据 data = np.load('data.npy') #%% #%% 定义常量 n_feature = 3
regularisation_strength, animate) plot_axes.plot(X, linear_regression.predict(X)) wait_for_keypress() # Caluclate final accuracy test_X = test['GrLivArea'] test_y = test['SalePrice'] training_acc = calculate_accuracy(linear_regression, X, y) test_acc = calculate_accuracy(linear_regression, test_X, test_y) print("W: {}".format(linear_regression.W)) print "b: {}".format(linear_regression.b) print("Training Accuracy: {}".format(training_acc)) print("Test Accuracy: {}".format(test_acc)) print("Normal equation solution:") Xe = np.array([X, np.ones(X.shape)]) W = np.linalg.pinv(Xe.T).dot(y) print("W: {}".format(W)) l2 = LinearRegression() l2.W = W[[0]] l2.b = W[[1]] plt.plot(X, l2.predict(X)) print("Training Accuracy: {}".format(calculate_accuracy(l2, X, y))) print("Test Accuracy: {}".format(calculate_accuracy(l2, test_X, test_y))) wait_for_keypress()