ML / app.py
ErenKontas's picture
Upload 4 files
55d41e1 verified
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()