| 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') |