humidity_train, humidity_test, temperature_train, temperature_test = train_test_split( humidity, temperature, test_size=0.3, random_state=0) humidity_train, humidity_test, apptemp_train, apptemp_test = train_test_split( humidity, apparentTemperature, test_size=0.3, random_state=0) humidity_train = humidity_train humidity_test = humidity_test temperature_train = temperature_train.flatten() temperature_test = temperature_test.flatten() apptemp_train = apptemp_train.flatten() apptemp_test = apptemp_test.flatten() #Task 1 To predict Temperature given Humidity from LinearRegression import LinearRegression lr1 = LinearRegression(humidity_train, temperature_train) print(lr1.computeCostFunction()) theta1 = lr1.returnTheta() theta1, cost_history1, theta_history1 = lr1.performGradientDescent(10000, 0.01) temperature_predict, temperature_error = lr1.predict(humidity_test, temperature_test) temperature_pred_normal, error_temp_normal = lr1.predictUsingNormalEquation( humidity_test, temperature_test) plt.scatter(humidity_test, temperature_test) plt.plot(humidity_test, temperature_pred_normal, 'r') plt.title('Humidity vs Temperature using normal equation') plt.xlabel('Humidity') plt.ylabel('Temperature') plt.show() plt.scatter(humidity_test, temperature_test)
lr = LinearRegression(X_train, Y_train) theta = lr.returnTheta() print(theta) #testing set prediction y_pred_normal, error_percentage = lr.predictUsingNormalEquation(X_test, Y_test) y_pred_normal = fs.inverse_transform_Y(y_pred_normal) print(error_percentage) #training set prediction y_pred_train_normal, error_percentage_train_normal = lr.predictUsingNormalEquation( X_train, Y_train) y_pred_train_normal = fs.inverse_transform_Y(y_pred_train_normal) print(lr.computeCostFunction()) #learning parameters n_iter = 1000 alpha = 0.05 theta, J_Array, theta_array = lr.performGradientDescent(n_iter, alpha) y_pred_grad, ErrorPercentage = lr.predict(X_test, Y_test) print(ErrorPercentage) y_pred_grad = fs.inverse_transform_Y(y_pred_grad) #let's see how train set is predicted y_pred_train, error_for_train = lr.predict(X_train, Y_train) y_pred_train = fs.inverse_transform_Y(y_pred_train) print(error_for_train)