Quetiento commited on
Commit
f1487df
1 Parent(s): 5d8ebf7

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -42
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
- ## DISEASE PREDICTION
7
- #### IMPORT LIBRARIES
8
- train=pd.read_csv("Training.csv")
9
- test=pd.read_csv("Testing.csv")
10
- #### DATASET CHECKING
11
- train.head()
12
- test.head()
13
- #### DROP UNWANTED COLUMN
14
- train=train.drop(["Unnamed: 133"],axis=1)
15
- train.prognosis.value_counts()
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
- rf= RandomForestClassifier(random_state=42)
29
- model_rf = rf.fit(xtrain,ytrain)
30
- tr_pred_rf = model_rf.predict(xtrain)
31
- ts_pred_rf = model_rf.predict(xtest)
32
 
33
- print("training accuracy is:",accuracy_score(ytrain,tr_pred_rf))
34
- print("testing accuracy is:",accuracy_score(ytest,ts_pred_rf))
 
35
 
36
- # Title of the Streamlit app
37
- st.title('Prognosis Prediction App')
38
- ### PREDICTIONS
39
- test.join(pd.DataFrame(model_rf.predict(Y),columns=["predicted"]))[["prognosis","predicted"]]
40
 
41
- # Display a title
42
- st.title('Disease-Prognosis Correlation Visualization')
 
43
 
44
- # Calculate the correlation matrix
45
- corr = train.corr()
 
46
 
47
- # Create a heatmap to visualize the correlation
48
- plt.figure(figsize=(10, 8))
49
- sns.heatmap(corr, annot=True, cmap='coolwarm', fmt='.2f')
50
- plt.title('Correlation Matrix')
51
- st.pyplot()
52
 
53
- # Display the correlation values
54
- st.write("Correlation Values:")
55
- st.write(corr)
 
 
 
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])