| | import pandas as pd |
| | import gradio as gr |
| | from sklearn.tree import DecisionTreeRegressor |
| | from sklearn.preprocessing import LabelEncoder |
| |
|
| | |
| | data = { |
| | 'Age': [25, 45, 30, 50, 28, 42], |
| | 'Income': [300000, 1200000, 600000, 1500000, 350000, 1000000], |
| | 'CreditScore': [720, 800, 760, 820, 710, 790], |
| | 'RiskAppetite': ['High', 'Low', 'Medium', 'Low', 'High', 'Medium'], |
| | 'LoanAmount': [200000, 600000, 400000, 750000, 220000, 580000] |
| | } |
| |
|
| | |
| | df = pd.DataFrame(data) |
| | le = LabelEncoder() |
| | df['RiskAppetiteEncoded'] = le.fit_transform(df['RiskAppetite']) |
| |
|
| | X = df[['Age', 'Income', 'CreditScore', 'RiskAppetiteEncoded']] |
| | y = df['LoanAmount'] |
| |
|
| | |
| | model = DecisionTreeRegressor(random_state=42) |
| | model.fit(X, y) |
| |
|
| | |
| | def predict_loan(age, income, credit_score, risk_appetite): |
| | encoded_risk = le.transform([risk_appetite])[0] |
| | input_df = pd.DataFrame([[age, income, credit_score, encoded_risk]], |
| | columns=['Age', 'Income', 'CreditScore', 'RiskAppetiteEncoded']) |
| | prediction = model.predict(input_df)[0] |
| | return f"Predicted Loan Amount: ₹{prediction:,.0f}" |
| |
|
| | |
| | app = gr.Interface( |
| | fn=predict_loan, |
| | inputs=[ |
| | gr.Number(label="Age"), |
| | gr.Number(label="Annual Income (₹)"), |
| | gr.Number(label="Credit Score"), |
| | gr.Dropdown(choices=['High', 'Medium', 'Low'], label="Risk Appetite") |
| | ], |
| | outputs=gr.Textbox(label="Loan Prediction"), |
| | title="Loan Amount Predictor (Tree-Based Regression)", |
| | description="Enter customer details to predict the loan amount using a decision tree model." |
| | ) |
| |
|
| | |
| | app.launch() |
| |
|