import gradio as gr import joblib import pandas as pd model = joblib.load("best_random_forest_model.joblib") def predict_loan_status( loan_original_amount, credit_score_range_lower, stated_monthly_income, investors, monthly_loan_payment, ): input_dict = { 'LoanOriginalAmount': loan_original_amount, 'CreditScoreRangeLower': credit_score_range_lower, 'StatedMonthlyIncome': stated_monthly_income, 'Investors': investors, 'MonthlyLoanPayment': monthly_loan_payment, } user_input_df = pd.DataFrame(data=[[loan_original_amount, credit_score_range_lower, stated_monthly_income, investors, monthly_loan_payment]], columns=[ 'LoanOriginalAmount', 'CreditScoreRangeLower', 'StatedMonthlyIncome', 'Investors', 'MonthlyLoanPayment', ]) scaler = joblib.load('std_scaler.bin') # Convert the dictionary to a 2D array input_array = user_input_df.values # print(user_input_df) scaled_array = scaler.transform(input_array) # print('scaled array', scaled_array) prediction = model.predict(scaled_array) # print('Prediction: ', prediction) return prediction[0] options = ['Current', 'Completed', 'ChargedOff'] inputs = [ gr.Slider(1000, 100000, label="Loan Original Amount"), gr.Slider(100, 2000, step=1, label='Credit Score Range (Lower)'), gr.Slider(1000, 100000, step=10, label="Stated Monthly Income"), gr.Slider(0, 1000, step=1, label='Number of Investors'), gr.Slider(20, 5000, step=5, label="Monthly Loan Payment") ] outputs = gr.Label() title = "Loan Status Classifier" description = ( "Enter the details of the loan to check the status of the loan." ) gr.Interface( fn=predict_loan_status, inputs=inputs, outputs=outputs, title=title, description=description, ).launch(share=True) # def greet(name): # return "Hello " + name + "!!" # # # iface = gr.Interface(fn=greet, inputs="text", outputs="text") # iface.launch()