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.")