import numpy as np import pandas as pd dataset=pd.read_csv("hcvdat0.csv") dataset.head() #Drop the unnecessary column dataset = dataset.drop(columns=(['Unnamed: 0'])) #Identify Null Values dataset.isnull().sum() #Handling Null Values from sklearn.impute import SimpleImputer imputer1 = SimpleImputer(missing_values=np.nan,strategy="median") imputer1.fit(dataset.iloc[:,[3,4,5,9,12]]) dataset.iloc[:,[3,4,5,9,12]]=imputer1.transform(dataset.iloc[:,[3,4,5,9,12]]) dataset.isnull().sum() #Convert Categorical Data to Numerical Data from sklearn.preprocessing import LabelEncoder le = LabelEncoder() dataset["Sex"]=le.fit_transform(dataset["Sex"]) #1 = m(male); 0 = f(female) dataset['Category'] = dataset['Category'].map({'0=Blood Donor': 0,'0s=suspect Blood Donor': 0,'1=Hepatitis': 1,'2=Fibrosis': 2,'3=Cirrhosis': 3}) #0 = Healthy; 1 = Hepatitis; 2 = Fibrosis; 3 = Cirrhosis # select features ALB, ALP, AST, BIL, CHE, CHOL and GGT as X into the model # Select category as target features y dataset_feature = ['ALB','ALP','ALT','AST','BIL','CHE','CHOL','GGT'] X = dataset.loc[:,dataset_feature] y = dataset.Category #split the data into train and test with portion 70,30 from sklearn.model_selection import train_test_split X_train,X_test, y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=10) from sklearn.naive_bayes import GaussianNB NB = GaussianNB() #fit model NB=NB.fit(X_train, y_train) NB_pred = NB.predict(X_test) def HCV(ALB,ALP,ALT,AST,BIL,CHE,CHOL,GGT): x = np.array([ALB,ALP,ALT,AST,BIL,CHE,CHOL,GGT]) prediction = NB.predict(x.reshape(1,-1)) if prediction == 0: result ="Healthy" elif prediction ==1: result="Hepatitis" elif prediction ==2: result="Fibrosis" elif prediction ==3: result="Cirrhosis" return result import gradio as gr outputs = gr.outputs.Textbox() app = gr.Interface(fn=HCV, inputs=['number','number','number','number','number','number','number','number'], outputs=outputs,description="This is a HCV model") app.launch()