bhalml/play_golf_select_algorithm
0
1import numpy as np2import pandas as pd3import gradio as gr4import joblib5import pickle6from sklearn.tree import DecisionTreeClassifier7from xgboost import XGBClassifier8 9def predict(select_model: str10 ,Windy: bool = True11 ,Outlook_Rainy: bool = True12 ,Outlook_Sunny: bool = True13 ,Temp_Hot: bool = True14 ,Temp_Mild: bool = True15 ,Humidity_Normal: bool = True):16 17 if select_model == "DecisionTreeClassifier":18 full_model_path = "./model_playgolf_decision_tree_classifier"19 if select_model == "RandomForestClassifier":20 full_model_path = "./model_playgolf_RandomForestClassifier" 21 if select_model == "XGBoost":22 full_model_path = "./model_playgolf_XGBoost" 23 if select_model == "LogisticRegression":24 full_model_path = "./model_playgolf_logistic_regression"25 26 27 with open(full_model_path,'rb') as f:28 dct_playgolf = pickle.load(f) 29 30 prediction_array = np.array([Windy, Outlook_Rainy, Outlook_Sunny, Temp_Hot, Temp_Mild, Humidity_Normal], dtype=np.double)31 play_golf = dct_playgolf.predict([prediction_array]) 32 33 34 if play_golf == ['Yes'] or play_golf == [1]: 35 return f'Weather is good for playing golf - ' + select_model36 else: 37 return f'Weather is horrible for playing golf - ' + select_model38 39with gr.Blocks() as playgolf:40 with gr.Row() as outlookrow:41 Windy = gr.Dropdown(choices=[True,False], label="Windy Day?")42 Outlook_Rainy= gr.Dropdown(choices=[True,False], label="Rainy Day?")43 Outlook_Sunny= gr.Dropdown(choices=[True,False], label="Sunny Day?")44 45 with gr.Row() as Temprow:46 Temp_Hot = gr.Dropdown(choices=[True,False], label="Is Hot Today?")47 Temp_Mild= gr.Dropdown(choices=[True,False], label="Is Mild Temperature Today?")48 Humidity_Normal= gr.Dropdown(choices=[True,False], label="Is Humidity Normal?")49 50 select_model = gr.Dropdown(choices=['DecisionTreeClassifier','RandomForestClassifier','XGBoost','LogisticRegression'], label="Select Model")51 52 submit = gr.Button(value='Predict')53 54 output = gr.Textbox(label='Is weather good to play Golf?', interactive = False)55 56 submit.click(predict, inputs=[select_model,Windy,Outlook_Rainy,Outlook_Sunny,Temp_Hot,Temp_Mild,Humidity_Normal], outputs = [output])57 58 59playgolf.launch(share = False, debug = True)60 61 