PCOS_Prediction / app.py
AdithyaSNair's picture
Update app.py
45ff6fa
import pandas as pd
import gradio as gr
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import sklearn
from sklearn import tree
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.preprocessing import scale
from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix
from sklearn.preprocessing import StandardScaler
def main(Follicle_No_Right,Follicle_No_Left,Skin_darkening,Hair_growth,Weight_gain,Cycle):
url="https://raw.githubusercontent.com/Athulg19/datasets/main/PCOS_clean_data_without_infertility.csv"
data = pd.read_csv(url)
data=pd.DataFrame(data)
data=data.astype(np.float64)
data.dtypes
correlation=data.corrwith(data['PCOS (Y/N)']).abs().sort_values(ascending=False)
correlation=correlation[correlation>0.4].index
data=data[correlation]
arr=data.values
X=arr[:,1:6]
Y=arr[:,0]
scaler=StandardScaler().fit(X)
rescaledX=scaler.transform(X)
np.set_printoptions(precision=3)
y=data['PCOS (Y/N)']
x=data.drop(['PCOS (Y/N)'],axis=1)
X_train,X_test,y_train,y_test = train_test_split(x,y,test_size=.25)
logistic = LogisticRegression()
logistic.fit(X_train,y_train)
data = {'Follicle No. (R)':Follicle_No_Right,'Follicle No. (L)':Follicle_No_Left,'Skin darkening (Y/N)':Skin_darkening,'hair growth(Y/N)':Hair_growth,'Weight gain(Y/N)':Weight_gain,'Cycle(R/I)':Cycle}
index = [0]
cust_df = pd.DataFrame(data, index)
costpredLog = logistic.predict(cust_df)
if costpredLog ==0:
Prediction = "There is less chance for the patient to catch PCOS"
else:
Prediction = "There is more chance for the patient to catch PCOS."
return Prediction
iface = gr.Interface(fn = main,
inputs =['number','number','number','number','number','number'],
outputs =['text'],
title="Onset of PCOS prediction",
description =''' Description
Polycystic ovary syndrome (PCOS) is a problem with hormones that happens during the reproductive years. If you have PCOS, you may not have periods very often.
Or you may have periods that last many days. You may also have too much of a hormone called androgen in your body.
With PCOS, many small sacs of fluid develop along the outer edge of the ovary. These are called cysts. The small fluid-filled cysts contain immature eggs.
These are called follicles. The follicles fail to regularly release eggs.
The exact cause of PCOS is unknown. Early diagnosis and treatment along with weight loss may lower the risk of long-term complications such as type 2 diabetes and heart disease.
Output0 - Describes the Prediction made
More details about the Inputs taken and how they needed to be taken are given below:
Follicle_No_Right = Number of follicles is in Right Overy
Follicle_No_Left = Number of follicles is in Left Ovary
Skin_darkening = yes(1)/No(0)
Hair_growth = yes(1)/No(0)
Weight_gain = yes(1)/No(0)
Cycle = If it is Regular (0) or Irregular (1)
''',
article='''
Complications of PCOS can include:
* Infertility
* Gestational diabetes or pregnancy-induced high blood pressure
* Miscarriage or premature birth
* Nonalcoholic steatohepatitis β€” a severe liver inflammation caused by fat accumulation in the liver
* Metabolic syndrome β€” a cluster of conditions including high blood pressure,
high blood sugar, and abnormal cholesterol or triglyceride levels that significantly increase your risk of cardiovascular disease
* Type 2 diabetes or prediabetes
* Sleep apnea
* Depression, anxiety and eating disorders
* Abnormal uterine bleeding
* Cancer of the uterine lining (endometrial cancer)''')
iface.launch(debug =True)