AceaWater / app.py
sifaaral's picture
Upload 3 files
1403a90 verified
import streamlit as st
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from keras.models import load_model
# Modeli yükle
model = load_model('lstm_model.h5') # Model dosyasının adı
# Streamlit uygulaması
st.title('Acea Water Tahmin Uygulaması')
# Kullanıcıdan girdi al
st.sidebar.header('Girdi Bilgileri')
# Kullanıcıdan alınacak girdileri tanımla
city = st.sidebar.selectbox('Şehir Seçin:', ['İstanbul', 'Ankara', 'İzmir']) # Şehir seçenekleri
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)
# Diğer özellikler
P1 = st.sidebar.number_input('P1 Değeri', min_value=0)
P2 = st.sidebar.number_input('P2 Değeri', min_value=0)
# ... Diğer özellikleri ekleyin (toplam 30 özellik olmalı)
# Kullanıcı girdilerini DataFrame'e dönüştür
input_data = pd.DataFrame({
'City': [city],
'Month': [month],
'Day': [day],
'Year': [year],
'P1': [P1],
'P2': [P2],
# ... Diğer özellikleri ekleyin
})
# One-hot encoding işlemi
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']))
# Girdileri birleştir
input_data = pd.concat([input_data.drop('City', axis=1), city_encoded_df], axis=1)
# Gerekli ön işleme adımlarını uygulayın
scaler = StandardScaler()
input_data_scaled = scaler.fit_transform(input_data)
# Giriş verilerini uygun şekle dönüştür
input_data_reshaped = input_data_scaled.reshape((1, 1, input_data_scaled.shape[1]))
# Tahmin yapma
if st.button("Tahmin Et"):
prediction = model.predict(input_data_reshaped)
st.success(f'Tahmin Edilen Su Tüketimi: {prediction[0][0]:.2f} birim')