import pandas as pd import streamlit as st from sklearn.preprocessing import StandardScaler from sklearn.compose import ColumnTransformer import joblib # Load data and update column names df = pd.read_csv('BTC-Hourly.csv') df.columns = df.columns.str.replace(r'[\s\.]', '_', regex=True) # Select dependent and independent variables x = df[["open", "high", "low", "close", "Volume_BTC", "Volume_USD"]] # Preprocessing (StandardScaler) preprocessor = ColumnTransformer( transformers=[ ('num', StandardScaler(), ["open", "high", "low", "close", "Volume_BTC", "Volume_USD"]) ] ) # Streamlit application def fiyat_pred(open, high, low, close, Volume_BTC, Volume_USD): input_data = pd.DataFrame({ 'open': [open], 'high': [high], 'low': [low], 'close': [close], 'Volume_BTC': [Volume_BTC], 'Volume_USD': [Volume_USD] }) input_data_transformed = preprocessor.fit_transform(input_data) model = joblib.load('ML.pkl') prediction = model.predict(input_data_transformed) return float(prediction[0]) # Streamlit interface def main(): st.title("Prediction Model") st.write("Enter Input Data") open = st.slider('Open', float(df['open'].min()), float(df['open'].max())) high = st.slider('High', float(df['high'].min()), float(df['high'].max())) low = st.slider('Low', float(df['low'].min()), float(df['low'].max())) close = st.slider('Close', float(df['close'].min()), float(df['close'].max())) Volume_BTC = st.slider('Volume BTC', float(df['Volume_BTC'].min()), float(df['Volume_BTC'].max())) Volume_USD = st.slider('Volume USD', float(df['Volume_USD'].min()), float(df['Volume_USD'].max())) if st.button('Predict'): fiyat = fiyat_pred(open, high, low, close, Volume_BTC, Volume_USD) st.write(f'The predicted price is: {fiyat:.2f}') if __name__ == '__main__': main()