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