Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Disease prediction
86 changes: 86 additions & 0 deletions MachineLearning Projects/Diabetes-disease-Prediction/app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
from wsgiref import simple_server
from flask import Flask, request, app,render_template
from flask import Response
from flask_cors import CORS
import pickle
import bz2
import datetime
import numpy as np
import pandas as pd
from flask import Flask, request, jsonify
# from pymongo import MongoClient
# from pymongo.server_api import ServerApi


app = Flask(__name__)
CORS(app)
app.config['DEBUG'] = True

scalarobject=bz2.BZ2File("Model/standardScalar.pkl", "rb")
scaler=pickle.load(scalarobject)
modelforpred = bz2.BZ2File("Model/modelForPrediction.pkl", "rb")
model = pickle.load(modelforpred)
## Route for homepage

@app.route('/',methods=['GET','POST'])
def index():
return render_template('index.html')

## Route for patient Registration
@app.route('/add-patients',methods=['GET','POST'])
def reg():
return render_template('patient-registration.html')


## Route for Single data point prediction
@app.route('/diabetes',methods=['GET','POST'])
def predict_datapoint():
result=""
current_datetime = datetime.datetime.now()
f_datetime = current_datetime.strftime('%d-%m-%Y %I:%M %p')

if request.method=='POST':
name=request.form.get("name")
Age = int(request.form.get('Age'))
gender = request.form.get('gender')
if gender=='Male':
Pregnancies=0
pregnancy='No'
if gender =='Female':
Pregnancies=int(request.form.get("Pregnancies"))
pregnancy=request.form.get("pregnancy")

Glucose = float(request.form.get('Glucose'))
BloodPressure = float(request.form.get('BloodPressure'))
SkinThickness = float(request.form.get('SkinThickness'))
Insulin = float(request.form.get('Insulin'))
BMI = float(request.form.get('BMI'))
DiabetesPedigreeFunction = float(request.form.get('DiabetesPedigreeFunction'))

#classification
if Glucose > 200 and Insulin < 10:
classification = 'Type 1 Diabetes'
elif Glucose > 126 and Insulin >= 10:
classification = 'Type 2 Diabetes'
elif Glucose > 92:
classification = 'Gestational Diabetes'
else:
classification = 'Unclassified Diabetes'

new_data=scaler.transform([[Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age]])
predict=model.predict(new_data)

if predict[0] ==1 :
result = 'Diabetic'
else:
result ='Non-Diabetic'

return render_template('diabetes.html',result=result,name=name,Age=Age,BMI=BMI,Pregnancies=Pregnancies,Glucose=Glucose,BloodPressure=BloodPressure,Insulin=Insulin,DiabetesPedigreeFunction=DiabetesPedigreeFunction,SkinThickness=SkinThickness,gender=gender,Pregnancy=pregnancy,datetime=f_datetime,type=classification)

else:
return render_template('home.html')


if __name__=="__main__":
app.run(host="0.0.0.0")
app.debug(True)
11 changes: 11 additions & 0 deletions MachineLearning Projects/Diabetes-disease-Prediction/data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"Pregnancies":6,
"Glucose":148,
"BloodPressure":72,
"SkinThickness":35,
"Insulin":0,
"BMI":33.6,
"DiabetesPedigreeFunction":0.62,
"Age":59

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
certifi==2019.11.28
Click==7.0
Flask==1.1.1
Flask-Cors==3.0.8
gunicorn==20.0.4
itsdangerous==1.1.0
Jinja2==2.10.3
joblib==0.14.1
MarkupSafe==1.1.1
numpy==1.18.0
pandas==0.25.3
python-dateutil==2.8.1
pytz==2019.3
scikit-learn==0.22
scipy==1.4.1
six==1.13.0
Werkzeug==0.16.0
wincertstore==0.2
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
body{
overflow-x: hidden;
}
.report{
display: flex;
justify-content: space-between;
border: 1px solid black;
background-color: #f0f0f0;
padding: 20px;
}
.left, .right {
padding: 20px;
}
.left {
width: 48%;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 5px;
}
.right {
width: 48%;
background-color: #fff;
border: 1px solid #ccc;
border-radius: 5px;
}


h3 {
font-size: 24px;
text-decoration: underline;
margin-bottom: 15px;
}
p {
font-size: 16px;
margin-bottom: 10px;
}

.print:last-child {
display: flex;
justify-content: center;
margin-top: 20px;
}

button{
margin: 1rem;
padding: 0.5rem;
width: 30%;
border: 1px solid black;
background-color: #fff;
cursor: pointer;
}

button:hover{
background-color: #000;
color: #fff;
}

.positive{
color: green;
}
.ideal{
color: #DBA800;
}
.negative{
color: red;
}

.end p{
font-size: 16px;
text-align: center;
}

.diabetes {
background-color: #FFA0A0;
border-radius: 20px;
padding: 20px;
margin: 20px ;
width:auto;
}

.diabetes blockquote {
font-size: 18px;
font-style: italic;
margin: 20px 0;
}

.diabetes ul {
list-style: disc;
padding-left: 20px;
}

.diabetes li {
font-size: 16px;
}

.non-diabetic {
background-color: #A0FFA0;
border-radius: 20px;
padding: 20px;
margin: 20px ;
width:auto;
}

.non-diabetic blockquote {
font-size: 18px;
font-style: italic;
margin: 20px 0;
}

.non-diabetic ul {
list-style: disc;
padding-left: 20px;
}

.non-diabetic li {
font-size: 16px;
}
.print{
align-items: center;
justify-content: center;
}
.date{
margin-left: 1px;
padding:2px;
}

table {
width: 100%;
border:1px solid #000;
/* border-collapse: collapse; */
margin: 20px auto;
}
th, td {
border: 1px solid #000;
padding: 10px;
text-align: left;
}
th {
background-color: #333;
color: #fff;
}
tr:nth-child(even) {
background-color: #f2f2f2;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
body {
font-family: Arial, sans-serif;
/* background-image: linear-gradient(
to left top,
#04b4c4,
#04b4c4,
#a8eb12,
#a8eb12
); */
min-height: 100vh;
background-size: cover;
}

.container {
max-width: 400px;
margin: 200px auto;
padding: 20px;
border: 1px solid #ccc;
border-radius: 5px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.form-group {
margin-bottom: 15px;
}

label {
display: block;
font-weight: bold;
margin-bottom: 5px;
}

input {
width: 70%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
font-size: 16px;
}

button {
background-color: #007bff;
color: #fff;
padding: 10px 20px;
border: none;
border-radius: 5px;
cursor: pointer;
}

#error-message {
color: red;
margin-top: 10px;
}
Loading