AEGISP3 ยท AEGIS ยท static

๐Ÿ“Š AEGIS โ€” Loan Approval Screening P3 ยท static

Project 3 case-study companion ยท predicts whether a LendingClub application would proceed to full underwriting (get a Grade) or be screened out first. Champion (Decision Tree) shown side-by-side with the LightGBM runner-up.

Enter an application

Why only 3 fields, and why does annual income = 0 matter?

Both models are trained only on Loan Amount, Annual Income, and DTI. The human-assigned credit Grade is deliberately excluded โ€” an earlier benchmark pass that included Grade leaked obviously, since Grade trivially predicts Grade.

On this restricted feature set, both models still score a suspiciously perfect 1.000 on every metric. That traced back to annual_inc == 0 for essentially all "No Grade" (rejected) rows, versus only a handful of the 2.26M graded rows. After review this was judged not leakage: income is only collected once an application proceeds to full underwriting โ€” the same event as being graded. So "was income even collected" is a real, live-available signal at screening time. Try setting Annual Income to 0 above and watch both models flip to Rejected.

One limitation stated plainly: because annual_inc == 0 is such a dominant signal, the model doesn't meaningfully sanity-check Loan Amount or DTI. Enter an extreme value โ€” a $100,000,000 loan against a modest income โ€” and it still predicts "Approved" as long as income is non-zero. That isn't a bug: the model predicts whether an application reached underwriting, not whether a loan is financially sound.

Full model benchmark (12 models tested)

Decision Tree was chosen for production despite Random Forest, LightGBM, and AdaBoost scoring almost identically, because it trains and predicts far faster. KNN scored near-perfect too but was disqualified for a ~2,631s prediction time on the full dataset. Ridge Classifier is the cautionary example: a near-perfect ROC-AUC masked terrible recall and F1 โ€” the worst model despite one good-looking metric.

AEGIS โ€” AI augments judgment, it does not replace it. Accuracy tuning was not the goal; this is a simple, testable wrapper around the production model. Static edition โ€” runs entirely in your browser, no server. Predictions are bit-exact reproductions of the original scikit-learn / LightGBM models (verified to machine epsilon).

๐Ÿ“ฌ Get new-app alerts โœ‰ Contact us