Ich habe Vorträge darüber gehalten, wie der Stromverbrauch mithilfe von maschinellem Lernen an verschiedenen Orten vorhergesagt werden kann, aber der tatsächlich vorhergesagte Wert ist nicht so korrekt, nicht wahr? Immerhin ist es PoC, oder? Wir haben verschiedene Meinungen erhalten, daher möchte ich den tatsächlich vorhergesagten Wert in CSV veröffentlichen und seine Fähigkeit überprüfen lassen ...
In der Vergangenheit haben wir als Artikel von Qiita ein Beispiel für die Vorhersage mit mehreren Methoden veröffentlicht. Schauen Sie also bitte mal rein.
Stromverbrauchsprognose mit Keras (TensorFlow)
Prognostizieren Sie den Stromverbrauch im Energiegebiet China nach 2 Tagen.
Die Prognoseergebnisse zwei Tage später werden auf der Website veröffentlicht, damit sie mit den veröffentlichten Ergebnissen des Stromverbrauchs von Herrn Chugoku Denryoku verglichen werden können.
https://blueomega.jp/20200811_power_prediction_challenge/yyyy-mm-dd_.csv
Wenn es der 2. September 2020 ist, ist dies die folgende URL. https://blueomega.jp/20200811_power_prediction_challenge/2020-09-02_.csv
Sie können vergleichen, indem Sie das folgende Skript in Colaboratory ausführen.
python
import datetime as dt
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.metrics import r2_score
#Erfassen Sie aktuelle Daten bis zum Tag vor dem China Electric Power Area
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"])
#Erfassen Sie die tatsächlichen Daten des Tages des chinesischen Machtgebiets
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)
#Erhalten Sie Prognosedaten nach dem 31. August
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"))
#Gibt den tatsächlichen Wert bis zum Vortag wieder
df["act"] = df_juyo["Performance(10.000 kW)"]
#Reflektieren Sie den tatsächlichen Wert des Tages
for idx in df_tmp[df_tmp["Ergebnisse am Tag(10.000 kW)"] > 0].index:
df.loc[idx, "act"] = df_tmp.loc[idx]["Ergebnisse am Tag(10.000 kW)"]
#Visualisieren Sie Prognosen und Leistung
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()
#Entscheidungskoeffizient
df_scr = df[df.act > 0]
print("Entscheidungskoeffizient(R2 SCORE) : ", r2_score(df_scr.act, df_scr.y2))
Dies ist das Ausführungsergebnis ab 5 Uhr am 3. September.
Bestimmungsfaktor (R2 SCORE): 0,9494716417755021
Die vorhergesagten Werte werden täglich um 1:00 und 12:00 Uhr aktualisiert. Schauen Sie also bitte vorbei, wenn Sie interessiert sind. Wir freuen uns auch darauf, von denen zu hören, die die gleiche Fähigkeit benötigen, Vorhersagen zu treffen.
Dies ist das Ausführungsergebnis ab 6:00 Uhr am 4. September.
Bestimmungsfaktor (R2 SCORE): 0,9454478929760703
Ich frage mich, ob es etwas schlimmer geworden ist ...
Recommended Posts