Now i have predictions on test sets and now With the model trained, how do I use RF to predict future values? My goal is to predict next 3 days temperature values but I'm kind of stuck on how to do that.
What I have tried:
import pandas as pd
import numpy as np
import datetime as dt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestRegressor
from sklearn import metrics
dataset = pd.read_csv(r"C:\Users\saadh\Desktop\The Weather Forecast(RFR)\Rawalpindi.csv",index_col='date_time',parse_dates=True)
X = dataset[['maxtempC', 'WindChillC', 'FeelsLikeC', 'HeatIndexC', 'mintempC', 'uvIndex', 'pressure']].values
Y = dataset['tempC'].values
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.20, random_state=0)
regressor = RandomForestRegressor(n_estimators=30, random_state=0)
regressor.fit(X_train, Y_train)
predictData = regressor.predict(X_test)
print("test outputs")
print(predictData[:10].astype(int))
print(Y_test[:10].astype(int))
print('Mean Absolute Error:', metrics.mean_absolute_error(Y_test, predictData))
print('Mean Squared Error:', metrics.mean_squared_error(Y_test, predictData))
print('Root Mean Squared Error:', np.sqrt(metrics.mean_squared_error(Y_test, predictData)))
test outputs
[16 16 40 45 36 19 20 41 24 36]
[16 16 40 45 36 19 20 41 24 36]
Mean Absolute Error: 0.022748815165876773
Mean Squared Error: 0.013322801474460246
Root Mean Squared Error: 0.11542444054211502