Я хочу предсказать значение температуры в будущем - PullRequest
0 голосов
/ 14 июля 2020

Я немного запутался в предсказании будущих значений температуры. Я запустил свою модель с помощью регрессора randomForest и получил производительность алгоритма. Но как я могу предсказать будущие значения температуры?

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
from collections import OrderedDict
dataset = pd.read_csv(r"C:\Users\saadh\Desktop\The Weather Forecast\Rawalpindi.csv")
#print(dataset.head)
X = dataset[['mintempC','moon_illumination','date_time','uvIndex','sunHour','DewPointC','pressure','humidity','cloudcover']].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=300, random_state=0)
regressor.fit(X_train, Y_train)
predictData = regressor.predict(X_test)
df = pd.DataFrame({'Actual': Y_test, 'Predicted': predictData})
#res = df.head()
print(df)
#print(predictData)
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)))

И мой результат:

 Actual  Predicted
0        23  23.306667
1         9   7.659500
2        32  32.226667
3        25  27.363333
4        29  29.296667
..      ...        ...
634      18  16.773333
635      26  25.230000
636      32  32.460000
637      13  16.853333
638      19  19.443333

[639 rows x 2 columns]
Mean Absolute Error: 1.019759780907668
Mean Squared Error: 3.307029567423056
Root Mean Squared Error: 1.8185240079314478

1 Ответ

1 голос
/ 14 июля 2020

Вам нужно получить функции для значений, которые вы хотите предсказать, и скормить их вашей обученной модели. Как и в вашем коде, вы делаете прогноз для тестового набора данных X_test, который является частью функций, хранящихся в X.

Таким образом, чтобы сделать прогноз для других данных, вам необходимо получить аналогичные функции на эту строку в вашем коде

X = dataset[['mintempC','moon_illumination','date_time','uvIndex','sunHour','DewPointC','pressure','humidity','cloudcover']].values

, а затем сделайте прогноз следующим образом

predictData = regressor.predict(X)
...