Spaces:
Runtime error
Runtime error
Upload app.py
Browse files
app.py
CHANGED
@@ -1,55 +1,48 @@
|
|
1 |
import streamlit as st
|
2 |
import pandas as pd
|
|
|
3 |
from sklearn.ensemble import RandomForestClassifier
|
|
|
4 |
from sklearn.metrics import accuracy_score
|
5 |
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
train.
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
train.isna().sum()
|
17 |
-
test.isna().sum()
|
18 |
-
#### SPLITTING DATESET
|
19 |
P = train[["prognosis"]]
|
20 |
-
X = train.drop(["prognosis"],axis=1)
|
21 |
-
Y = test.drop(["prognosis"],axis=1)
|
22 |
-
from sklearn.model_selection import train_test_split
|
23 |
-
xtrain,xtest,ytrain,ytest = train_test_split(X,P,test_size=0.2,random_state=42)
|
24 |
-
## MODEL - RANDOM FOREST
|
25 |
-
from sklearn.ensemble import RandomForestClassifier
|
26 |
-
from sklearn.metrics import accuracy_score
|
27 |
|
28 |
-
|
29 |
-
|
30 |
-
tr_pred_rf = model_rf.predict(xtrain)
|
31 |
-
ts_pred_rf = model_rf.predict(xtest)
|
32 |
|
33 |
-
|
34 |
-
|
|
|
35 |
|
36 |
-
#
|
37 |
-
|
38 |
-
|
39 |
-
test.join(pd.DataFrame(model_rf.predict(Y),columns=["predicted"]))[["prognosis","predicted"]]
|
40 |
|
41 |
-
#
|
42 |
-
st.title('Disease
|
|
|
43 |
|
44 |
-
#
|
45 |
-
|
|
|
46 |
|
47 |
-
#
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
st.pyplot()
|
52 |
|
53 |
-
#
|
54 |
-
st.
|
55 |
-
|
|
|
|
|
|
1 |
import streamlit as st
|
2 |
import pandas as pd
|
3 |
+
import numpy as np
|
4 |
from sklearn.ensemble import RandomForestClassifier
|
5 |
+
from sklearn.model_selection import train_test_split
|
6 |
from sklearn.metrics import accuracy_score
|
7 |
|
8 |
+
# Load your data
|
9 |
+
train = pd.read_csv("Training.csv")
|
10 |
+
test = pd.read_csv("Testing.csv")
|
11 |
+
|
12 |
+
# Data preprocessing
|
13 |
+
train = train.drop(["Unnamed: 133"], axis=1)
|
14 |
+
|
15 |
+
# Splitting the dataset into features and target
|
16 |
+
X = train.drop(["prognosis"], axis=1)
|
17 |
+
Y = test.drop(["prognosis"], axis=1)
|
|
|
|
|
|
|
18 |
P = train[["prognosis"]]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
+
# Splitting data for training and testing
|
21 |
+
x_train, x_test, y_train, y_test = train_test_split(X, P, test_size=0.2, random_state=42)
|
|
|
|
|
22 |
|
23 |
+
# Initialize and train classifier
|
24 |
+
model_rf = RandomForestClassifier(random_state=42)
|
25 |
+
model_rf.fit(x_train, y_train.values.ravel())
|
26 |
|
27 |
+
# Predictions
|
28 |
+
train_preds = model_rf.predict(x_train)
|
29 |
+
test_preds = model_rf.predict(x_test)
|
|
|
30 |
|
31 |
+
# Streamlit user interface
|
32 |
+
st.title('Disease Prediction App')
|
33 |
+
st.write('This app uses a machine learning model to predict diseases based on symptoms.')
|
34 |
|
35 |
+
# Display accuracies
|
36 |
+
st.write("Training Accuracy: ", accuracy_score(y_train, train_preds))
|
37 |
+
st.write("Testing Accuracy: ", accuracy_score(y_test, test_preds))
|
38 |
|
39 |
+
# User input features form
|
40 |
+
input_data = {}
|
41 |
+
for feature in X.columns:
|
42 |
+
input_data[feature] = st.number_input('Enter value for {}:'.format(feature), min_value=0, max_value=1)
|
|
|
43 |
|
44 |
+
# Prediction
|
45 |
+
if st.button('Predict'):
|
46 |
+
input_df = pd.DataFrame([input_data])
|
47 |
+
prediction = model_rf.predict(input_df)
|
48 |
+
st.write('Predicted Disease:', prediction[0])
|