【问题标题】:how can i predict future days' temperature values?我如何预测未来几天的温度值?
【发布时间】:2020-11-04 05:13:36
【问题描述】:

希望你没事,我基本上是机器学习的新手,我需要你们的帮助。我想每小时预测接下来 3 天的温度值,我该怎么做?谁能帮忙....??

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\Rawalpindi.csv")
#print(dataset.head)
X = dataset[['moon_illumination','sunHour','date_time','mintempC','uvIndex','DewPointC','humidity','cloudcover','pressure','windspeedKmph']].values
Y = dataset['maxtempC'].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.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)))

输出: [43 40 41 41 40 40 39]

平均绝对误差:0.5561904761904758
均方误差:1.0668126984126995
均方根误差:1.0328662538841606

【问题讨论】:

    标签: machine-learning regression random-forest prediction weather


    【解决方案1】:

    您需要获取要预测的值的功能,并将其馈送到培训的模型。 就像在您的代码中,您对测试数据集X_test的预测,这是存储在X的一部分的一部分。

    因此,对代码中的功能类似于此行的功能进行预测

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

    然后做这样的预测

    predictData = regressor.predict(X)
    

    【讨论】:

    • 我没有得到你的观点,你能解释一下。如果我做 predictData = regressor.predict(X_test) 那么在输出中我有数组形式的值,它们是预测值输出是:[38 38 40 41 44 44 40 ...... 41]
    • 当前正在进行对X_Test数据的预测。如果我理解你的问题,你现在想做其他预测,对吗?然后您需要将其他数据传递给您的模型。 span>
    • 我想预测3天未来的温度。我只是想问我如何执行此任务....因为在输出中,我有许多值,我想在日期和时间下选择接下来的3天。 span>
    • 确定,因此模型通过regressor.predict(x)来对其传入IT的数据进行预测。在您的数据X中,您有一个date_time列。如果要预测接下来的 3 天,请查看该列中的日期,从数据中选择接下来的三天,然后将其传递给模型的 predict() 函数。输出只是预测的温度值,无需日期标签,但它应该是相同的顺序,因此您可以重新分配日期之后。 span>
    • 哦,谢谢谢谢很多伙伴我有多愚蠢......它帮助了我很多,再次留下祝福:) span>
    猜你喜欢
    • 2017-03-15
    • 2023-04-08
    • 2018-09-16
    • 2022-07-28
    • 1970-01-01
    • 2021-10-24
    • 2021-07-13
    • 2020-02-20
    • 1970-01-01
    相关资源
    最近更新 更多