J'ai donné des conférences sur la façon de prédire la consommation d'énergie à l'aide de l'apprentissage automatique à divers endroits, mais la valeur réellement prédite n'est pas si correcte, n'est-ce pas? Après tout, c'est PoC, non? Nous avons reçu divers avis, je souhaite donc publier la valeur réellement prédite en CSV et lui faire vérifier sa capacité ...
Veuillez consulter l'article de Qiita pour des exemples de prédiction par plusieurs méthodes dans le passé.
Prévisions de consommation d'énergie avec Keras (TensorFlow)
Prédire la consommation d'énergie dans la zone d'alimentation en Chine après 2 jours.
Les résultats des prévisions deux jours plus tard sont publiés sur le site Web afin de pouvoir être comparés aux résultats publiés de consommation d'électricité par M. Chugoku Denryoku.
https://blueomega.jp/20200811_power_prediction_challenge/yyyy-mm-dd_.csv
Si c'est le 2 septembre 2020, ce sera l'URL suivante. https://blueomega.jp/20200811_power_prediction_challenge/2020-09-02_.csv
Vous pouvez comparer en exécutant le script suivant sur Colaboratory.
python
import datetime as dt
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import r2_score
#Acquérir des données réelles jusqu'à la veille de la zone d'alimentation électrique de Chine
url = "https://www.energia.co.jp/nw/jukyuu/sys/juyo-2020.csv"
df_juyo = pd.read_csv(url, skiprows=2, encoding="Shift_JIS")
df_juyo.index = pd.to_datetime(df_juyo["DATE"] + " " + df_juyo["TIME"])
#Obtenez les données réelles du jour dans la zone d'alimentation en Chine
d = dt.datetime.now() + dt.timedelta(hours=9) - dt.timedelta(days=0)
url = "https://www.energia.co.jp/nw/jukyuu/sys/juyo_07_" + d.strftime("%Y%m%d") + ".csv"
df_tmp = pd.read_csv(url, skiprows=13, encoding="Shift_JIS",nrows=24)
df_tmp.index = pd.to_datetime(df_tmp.DATE + " " + df_tmp.TIME)
#Obtenez des prévisions après le 31 août
df = pd.DataFrame()
d = dt.datetime(2020,8,31)
while d < dt.datetime.now() + dt.timedelta(days=3):
try:
url = "https://blueomega.jp/20200811_power_prediction_challenge/" + d.strftime("%Y-%m-%d") + "_.csv"
df = pd.concat([df, pd.read_csv(url)])
except:
print("No file.")
d += dt.timedelta(days=1)
df.index = pd.to_datetime(df.pop("datetime"))
#Reflète la valeur réelle jusqu'à la veille
df["act"] = df_juyo["Performance(10 000 kW)"]
#Refléter la valeur réelle de la journée
for idx in df_tmp[df_tmp["Résultats du jour(10 000 kW)"] > 0].index:
df.loc[idx, "act"] = df_tmp.loc[idx]["Résultats du jour(10 000 kW)"]
#Visualisez les prévisions et les performances
df_plot = df.copy()
df_plot = df_plot[["act", "y2"]]
df_plot.columns = ["act", "pred tuned"]
df_plot["2020-08-31":].plot(figsize=(15,5), ylim=(300,1200))
plt.show()
#Coefficient de décision
df_scr = df[df.act > 0]
print("Coefficient de décision(R2 SCORE) : ", r2_score(df_scr.act, df_scr.y2))
Voici le résultat de l'exécution à 17 heures le 3 septembre. Facteur déterminant (R2 SCORE): 0,9494716417755021
Les valeurs prévues sont mises à jour quotidiennement à 1h00 et 12h00, veuillez donc jeter un œil si vous êtes intéressé. Nous sommes également impatients d'entendre ceux qui ont besoin de la même capacité pour faire des prédictions.
Voici le résultat de l'exécution à 6h00 le 4 septembre. Facteur déterminant (R2 SCORE): 0,9454478929760703
Je me demande si ça a empiré un peu ...