import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression import gradio as gr df=pd.read_csv("mexican_medical_students_mental_health_data.csv") df.head() df.info target=df.iloc[:,19:27].sum(axis=1) df.insert(43,"gad_total",target) df.head() df.nunique() #Checking the number of unique values for primary keys or constants df.isna().sum()#Missing values h_mean=df["height"].mean() w_mean=df["weight"].mean() age_mean=df["age"].mean() g_mode=df["gender"].mode()[0] r_mode=df["reported_sleep_hours"].mode()[0] n_mode=df["nap_duration"].mode()[0] p1=df["phq1"].mode()[0] p2=df["phq2"].mode()[0] p3=df["phq3"].mode()[0] p4=df["phq4"].mode()[0] p5=df["phq5"].mode()[0] p6=df["phq6"].mode()[0] p7=df["phq7"].mode()[0] p8=df["phq8"].mode()[0] p9=df["phq9"].mode()[0] r_mode df["height"].fillna(h_mean,inplace=True) df["weight"].fillna(w_mean,inplace=True) df["age"].fillna(age_mean,inplace=True) df["gender"].fillna(g_mode,inplace=True) df["phq1"].fillna(p1,inplace=True) df["phq2"].fillna(p2,inplace=True) df["phq3"].fillna(p3,inplace=True) df["phq4"].fillna(p4,inplace=True) df["phq5"].fillna(p5,inplace=True) df["phq6"].fillna(p6,inplace=True) df["phq7"].fillna(p7,inplace=True) df["phq8"].fillna(p8,inplace=True) df["phq9"].fillna(p9,inplace=True) df["reported_sleep_hours"].fillna(r_mode,inplace=True) df["nap_duration"].fillna(n_mode,inplace=True) df.isna().sum() import datetime new=[] for i in range(len(df["reported_sleep_hours"])): con=datetime.datetime.strptime(str(df["reported_sleep_hours"][i]),"%H:%M") t=float(con.minute/60) tot=float(con.hour)+t new.append(tot) df.insert(44,"reported_sleep_in_hours",new) new=[] for i in range(len(df["nap_duration"])): con=datetime.datetime.strptime(str(df["nap_duration"][i]),"%H:%M") t=float(con.minute/60) tot=float(con.hour)+t new.append(tot) df.insert(45,"nap_duration_hours",new) from sklearn import preprocessing le= preprocessing.LabelEncoder() df["gender"]=le.fit_transform(df["gender"]) df.head() df.insert(44,"epw_total",target) # In[22]: X=df[["age","gender","height","weight","phq1","phq2","phq3","phq4","phq5","phq6","phq7","phq8","phq9","reported_sleep_in_hours","nap_duration_hours"]] y=df["gad_total"] X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=21) model=LinearRegression() model.fit(X_train,y_train) print("Training complete.") r2_score=model.score(X_test,y_test) print(r2_score*100,"%") y_pred = model.predict(X_test) print('Coefficients: \n', model.coef_) print("Mean squared error: %.2f" % np.mean((model.predict(X_test) - y_test) ** 2)) #epw X=df[["age","gender","height","weight","phq1","phq2","phq3","phq4","phq5","phq6","phq7","phq8","phq9","reported_sleep_in_hours","nap_duration_hours"]] y=df["epw_total"] X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.15,random_state=21) modelepw=LinearRegression() modelepw.fit(X_train,y_train) print("Training complete.") # In[79]: r2_score=modelepw.score(X_test,y_test) print(r2_score*100,"%") # In[80]: y_pred = modelepw.predict(X_test) print('Coefficients: \n', modelepw.coef_) # The mean squared error print("Mean squared error: %.2f" % np.mean((modelepw.predict(X_test) - y_test) ** 2)) #local Testing # input = "25,1,10,70,3,3,3,2,3,3,3,3,2,24,2"; # temp =np.array(input.split(","), dtype=float) # y = model.predict([[temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8],temp[9],temp[10],temp[11],temp[12],temp[13],temp[14]]]) # z = modelepw.predict([[temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8],temp[9],temp[10],temp[11],temp[12],temp[13],temp[14]]]) # output = str(y)+ "," +str(z) # print(output) def greet(input): temp =np.array(input.split(","), dtype=float) y = model.predict([[temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8],temp[9],temp[10],temp[11],temp[12],temp[13],temp[14]]]) z = modelepw.predict([[temp[0],temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8],temp[9],temp[10],temp[11],temp[12],temp[13],temp[14]]]) output = str(y)+ "," +str(z) return output textbox_x = gr.Textbox(label="Enter Input:", placeholder="25,1,10,70,3,3,3,2,3,3,3,3,2,24,2", lines=1) textbox_y = gr.Textbox(label="Variable Y:", placeholder ="5.0000000", lines=1) grIn = gr.Interface(title = "Your Name Regeression ",fn=greet, inputs=textbox_x, outputs=textbox_y) grIn.launch()