|
import streamlit as st
|
|
import pandas as pd
|
|
import numpy as np
|
|
from sklearn.preprocessing import StandardScaler, OneHotEncoder
|
|
from keras.models import load_model
|
|
|
|
|
|
model = load_model('lstm_model.h5')
|
|
|
|
|
|
st.title('Acea Water Tahmin Uygulaması')
|
|
|
|
|
|
st.sidebar.header('Girdi Bilgileri')
|
|
|
|
|
|
city = st.sidebar.selectbox('Şehir Seçin:', ['İstanbul', 'Ankara', 'İzmir'])
|
|
month = st.sidebar.number_input('Ay', min_value=1, max_value=12)
|
|
day = st.sidebar.number_input('Gün', min_value=1, max_value=31)
|
|
year = st.sidebar.number_input('Yıl', min_value=2000, max_value=2023)
|
|
|
|
|
|
P1 = st.sidebar.number_input('P1 Değeri', min_value=0)
|
|
P2 = st.sidebar.number_input('P2 Değeri', min_value=0)
|
|
|
|
|
|
|
|
input_data = pd.DataFrame({
|
|
'City': [city],
|
|
'Month': [month],
|
|
'Day': [day],
|
|
'Year': [year],
|
|
'P1': [P1],
|
|
'P2': [P2],
|
|
|
|
})
|
|
|
|
|
|
encoder = OneHotEncoder(sparse_output=False)
|
|
city_encoded = encoder.fit_transform(input_data[['City']])
|
|
city_encoded_df = pd.DataFrame(city_encoded, columns=encoder.get_feature_names_out(['City']))
|
|
|
|
|
|
input_data = pd.concat([input_data.drop('City', axis=1), city_encoded_df], axis=1)
|
|
|
|
|
|
scaler = StandardScaler()
|
|
input_data_scaled = scaler.fit_transform(input_data)
|
|
|
|
|
|
input_data_reshaped = input_data_scaled.reshape((1, 1, input_data_scaled.shape[1]))
|
|
|
|
|
|
if st.button("Tahmin Et"):
|
|
prediction = model.predict(input_data_reshaped)
|
|
st.success(f'Tahmin Edilen Su Tüketimi: {prediction[0][0]:.2f} birim') |