AliInamdar's picture
Update app.py
6e4de9d verified
raw
history blame
1.92 kB
import streamlit as st
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report
from sklearn.preprocessing import StandardScaler
st.set_page_config(page_title="Random Forest Diabetes Classifier", layout="centered")
st.title("๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปDynamic Code Generating ChatBot๐Ÿค–")
uploaded_file = st.file_uploader("๐Ÿ“‚ Upload your CSV dataset", type=["csv"])
if uploaded_file:
df = pd.read_csv(uploaded_file)
st.success("โœ… File loaded successfully!")
st.write("### Preview of Dataset:")
st.dataframe(df.head())
all_columns = df.columns.tolist()
target_column = st.selectbox("๐ŸŽฏ Select the target column (diabetes outcome)", all_columns)
feature_columns = st.multiselect("๐Ÿ› ๏ธ Select feature columns", [col for col in all_columns if col != target_column])
if st.button("๐Ÿš€ Run Random Forest Classifier"):
try:
X = df[feature_columns]
y = df[target_column]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
report = classification_report(y_test, y_pred, output_dict=False)
st.write("### โœ… Accuracy:")
st.write(f"{accuracy * 100:.2f}%")
st.write("### ๐Ÿ“‹ Classification Report:")
st.code(report)
except Exception as e:
st.error(f"โŒ An error occurred: {e}")
else:
st.info("๐Ÿ‘ˆ Upload a CSV file to begin.")