Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| def prepare_input_features(raw_input: dict) -> pd.DataFrame: | |
| df = pd.DataFrame([raw_input]) | |
| # ------------------------------- | |
| # EXPENSE AGGREGATION | |
| # ------------------------------- | |
| df["total_monthly_expenses"] = ( | |
| df["school_fees"] | |
| + df["college_fees"] | |
| + df["travel_expenses"] | |
| + df["groceries_utilities"] | |
| + df["other_monthly_expenses"] | |
| + df["monthly_rent"] | |
| ) | |
| # ------------------------------- | |
| # FINANCIAL RATIOS | |
| # ------------------------------- | |
| df["debt_to_income"] = df["current_emi_amount"] / df["monthly_salary"] | |
| df["expense_to_income"] = df["total_monthly_expenses"] / df["monthly_salary"] | |
| df["savings_ratio"] = df["bank_balance"] / df["monthly_salary"] | |
| # ------------------------------- | |
| # CREDIT RISK BUCKET (CRITICAL FIX) | |
| # ------------------------------- | |
| df["credit_risk_bucket"] = pd.cut( | |
| df["credit_score"], | |
| bins=[0, 600, 700, 900], | |
| labels=["Low", "Medium", "High"] | |
| ) | |
| # ------------------------------- | |
| # EMPLOYMENT STABILITY SCORE | |
| # ------------------------------- | |
| df["employment_stability_score"] = ( | |
| df["years_of_employment"] * | |
| df["employment_type"].map({ | |
| "Government": 1.5, | |
| "Private": 1.0, | |
| "Self-employed": 0.8 | |
| }) | |
| ) | |
| return df |