precipitation-pl/run3.py
2022-05-23 11:13:23 +02:00

57 lines
1.8 KiB
Python

import pandas as pd
import tensorflow.keras
import numpy as np
import pandas as pd
import xgboost as xg
import tensorflow.keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
in_columns = ["id_stacji", "nazwa_stacji", "typ_zbioru", "rok", "miesiąc"]
df = pd.read_csv("train/in.tsv", names=in_columns, sep="\t")
df_test = pd.read_csv("dev-0/in.tsv", names=in_columns, sep="\t")
df = pd.concat([df, df_test])
x = pd.get_dummies(df, columns=["id_stacji", "rok", "miesiąc"])
x = x.drop(["nazwa_stacji", "typ_zbioru"], axis=1)
x = x.iloc[:-600]
y = pd.read_csv("train/expected.tsv", sep="\t", names=["rainfall"])
model = Sequential(
[
Dense(1024, activation="relu", input_dim=73),
Dense(512, activation="relu"),
# tensorflow.keras.layers.BatchNormalization(),
Dense(512 // 2, activation="relu"),
# tensorflow.keras.layers.BatchNormalization(),
Dense(512 // 4, activation="relu"),
# tensorflow.keras.layers.BatchNormalization(),
Dense(512 // 8, activation="relu"),
# tensorflow.keras.layers.BatchNormalization(),
Dense(32, activation="relu"),
# tensorflow.keras.layers.BatchNormalization(),
Dense(1, activation="linear"),
]
)
model.compile(
loss="mean_squared_error", optimizer="adam", metrics=["mean_squared_error"]
)
model.fit(x, y, epochs=100)
x_test = pd.read_csv("test-A/in.tsv", sep="\t", names=in_columns)
df_train = pd.read_csv("train/in.tsv", names=in_columns, sep="\t")
x_test = pd.concat([x_test, df_train])
x_test = x_test.drop(["nazwa_stacji", "typ_zbioru"], axis=1)
x_test = pd.get_dummies(x_test, columns=["id_stacji", "rok", "miesiąc"])
x_test = x_test.iloc[:-8760]
pred = model.predict(x_test)
out = pd.DataFrame(pred)
out.to_csv("test-A/out.tsv", sep="\t", header=False, index=False)