import gradio as gr import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression import warnings # Ignore all warnings warnings.filterwarnings("ignore") # Load Data df_lending_data = pd.read_csv('Resources/lending_data.csv') # Prepare Features and Labels y = df_lending_data['loan_status'] X = df_lending_data.drop(columns=['loan_status']) # Split Data X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1) # Train Logistic Regression Model model = LogisticRegression(max_iter=200, random_state=1) model.fit(X_train, y_train) # Gradio Function for Prediction def predict_loan_status(loan_size, interest_rate, borrower_income, debt_to_income, num_of_accounts, derogatory_marks, total_debt): input_data = pd.DataFrame({ 'loan_size': [loan_size], 'interest_rate': [interest_rate], 'borrower_income': [borrower_income], 'debt_to_income': [debt_to_income], 'num_of_accounts': [num_of_accounts], 'derogatory_marks': [derogatory_marks], 'total_debt': [total_debt] }) prediction = model.predict(input_data) return "Healthy Loan (0)" if prediction[0] == 0 else "High-Risk Loan (1)" # Create the Gradio interface interface = gr.Interface( fn=predict_loan_status, inputs=[ gr.Number(label="Loan Size"), gr.Number(label="Interest Rate"), gr.Number(label="Borrower Income"), gr.Number(label="Debt-to-Income Ratio"), gr.Number(label="Number of Accounts"), gr.Number(label="Derogatory Marks"), gr.Number(label="Total Debt"), ], outputs="text", title="Loan Status Prediction", description="Input loan details to predict whether the loan is healthy or high-risk. " "Explore the project on GitHub [here](https://github.com/thaychansy/credit-risk-classification) " "and try out other models [here](https://huggingface.co/tchans123)." ) # Launch Gradio interface interface.launch(share=True)