import streamlit as st import pandas as pd import numpy as np from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # Load your data train = pd.read_csv("Training.csv") test = pd.read_csv("Testing.csv") # Data preprocessing train = train.drop(["Unnamed: 133"], axis=1) # Splitting the dataset into features and target X = train.drop(["prognosis"], axis=1) Y = test.drop(["prognosis"], axis=1) P = train[["prognosis"]] # Splitting data for training and testing x_train, x_test, y_train, y_test = train_test_split(X, P, test_size=0.2, random_state=42) # Initialize and train classifier model_rf = RandomForestClassifier(random_state=42) model_rf.fit(x_train, y_train.values.ravel()) # Predictions train_preds = model_rf.predict(x_train) test_preds = model_rf.predict(x_test) # Streamlit user interface st.title('Disease Prediction App') st.write('This app uses a machine learning model to predict diseases based on symptoms.') # Display accuracies st.write("Training Accuracy: ", accuracy_score(y_train, train_preds)) st.write("Testing Accuracy: ", accuracy_score(y_test, test_preds)) # User input features form input_data = {} for feature in X.columns: input_data[feature] = st.number_input('Enter value for {}:'.format(feature), min_value=0, max_value=1) # Prediction if st.button('Predict'): input_df = pd.DataFrame([input_data]) prediction = model_rf.predict(input_df) st.write('Predicted Disease:', prediction[0])