parent
5bf5f507a5
commit
5ae8b7d071
@ -0,0 +1 @@
|
||||
.venv
|
@ -0,0 +1,56 @@
|
||||
import streamlit as st
|
||||
from sklearn.ensemble import RandomForestClassifier
|
||||
from sklearn.ensemble import RandomForestRegressor
|
||||
from sklearn.linear_model import LogisticRegression
|
||||
from sklearn.linear_model import LinearRegression
|
||||
from sklearn.model_selection import train_test_split
|
||||
from sklearn.metrics import accuracy_score
|
||||
from sklearn import datasets
|
||||
from sklearn.impute import SimpleImputer # Add this line
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
st.header("Prediction")
|
||||
|
||||
if "data" in st.session_state:
|
||||
data = st.session_state.data
|
||||
|
||||
with st.form("my_form"):
|
||||
header = st.columns([2,1,2])
|
||||
header[0].subheader("Model")
|
||||
header[1].subheader("Data Name")
|
||||
|
||||
row1 = st.columns([2,1,2])
|
||||
model = row1[0].selectbox("", ["Random Forest Classifier", "Random Forest Regressor", "Logistic Regression", "Linear Regression"])
|
||||
data_name = row1[1].selectbox("", data.columns)
|
||||
|
||||
st.form_submit_button('launch')
|
||||
|
||||
if model == "Random Forest Classifier":
|
||||
model = RandomForestClassifier()
|
||||
elif model == "Random Forest Regressor":
|
||||
model = RandomForestRegressor()
|
||||
elif model == "Logistic Regression":
|
||||
model = LogisticRegression()
|
||||
elif model == "Linear Regression":
|
||||
model = LinearRegression()
|
||||
|
||||
x = data.drop(data_name, axis=1)
|
||||
y = data[data_name]
|
||||
|
||||
# Convert categorical data to numerical values
|
||||
x = pd.get_dummies(x)
|
||||
|
||||
# Handle missing values
|
||||
imputer = SimpleImputer()
|
||||
x = imputer.fit_transform(x)
|
||||
x = pd.get_dummies(x)
|
||||
|
||||
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=42)
|
||||
model.fit(x_train, y_train)
|
||||
y_pred = model.predict(x_test)
|
||||
if model == "Random Forest Classifier":
|
||||
st.write("Accuracy: ", accuracy_score(y_test, y_pred))
|
||||
elif model == "Random Forest Regressor" or model == "Logistic Regression" or model == "Linear Regression":
|
||||
st.write("Mean Squared Error: ", np.mean((y_pred - y_test) ** 2))
|
||||
else:
|
||||
st.error("file not loaded")
|
Loading…
Reference in new issue