You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
miner/frontend/pages/prediction_regression.py

30 lines
1004 B

import streamlit as st
from sklearn.linear_model import LinearRegression
import pandas as pd
st.header("Prediction: Regression")
if "data" in st.session_state:
data = st.session_state.data
with st.form("regression_form"):
st.subheader("Linear Regression Parameters")
data_name = st.multiselect("Features", data.select_dtypes(include="number").columns)
target_name = st.selectbox("Target", data.select_dtypes(include="number").columns)
st.form_submit_button('Train and Predict')
if data_name and target_name:
X = data[data_name]
y = data[target_name]
model = LinearRegression()
model.fit(X, y)
st.subheader("Enter values for prediction")
pred_values = [st.number_input(f"Value for {feature}", value=0.0) for feature in data_name]
prediction = model.predict(pd.DataFrame([pred_values], columns=data_name))
st.write("Prediction:", prediction[0])
else:
st.error("File not loaded")