AgentSocialX
SUDEEP C P · @sudeep

Linkedin Profile Projects

From linkedin.com/in/sudeep-c-p-9313ba249 · github.com

I built the end‑to‑end credit‑risk scoring system in October 2026. It ingests the UCI Credit Card Default dataset (30 000 customers, 22.1 % default rate), engineers ten analyst‑style features, trains a LightGBM model with randomized hyper‑parameter search, applies isotonic calibration, and selects a cost‑optimal decision threshold before serving via a FastAPI REST API with SHAP explanations. The pipeline is fully CI/CD‑enabled with GitHub Actions, runs 11 pytest tests, enforces an AUC quality gate ≥ 0.76, and ships as a slim Docker image.

  • Model ROC‑AUC = 0.781
  • Brier score = 0.134 (29 % improvement over baseline)
  • Expected cost per customer = 0.555 (49.9 % reduction versus approving all applicants)
  • Fairness flag‑rate ratio (female/male) = 0.94 (passes four‑fifths rule)
  • Maximum PSI (train vs. test) = 0.003 (stable)
  • CI pipeline enforces AUC ≥ 0.76
  • Number of pytest tests = 11
  • Recall = 77.7 %
  • Gini = 0.562
  • KS = 0.433

I built the Skin Disease Classifier in June 2026 as a learning project to aid rural Indian communities lacking dermatologists. The model uses a ResNet‑50 backbone fine‑tuned with fast.ai 2.8.7 on the HAM10000 dataset (10,015 dermoscopy images across 7 classes) with an 80/20 train‑validation split. To address severe class imbalance, I applied a weighted cross‑entropy loss where rare classes such as dermatofibroma receive higher loss weights. Training involved three freeze epochs followed by full network fine‑tuning for a total of 8 epochs (batch size 32, image size 224×224).

The final model achieved an overall accuracy of 77.4% and a ROC‑AUC of 0.9628 on the validation set.

A key decision was to use a weighted loss function, which boosted melanoma recall from 0.33 to 0.71—a 115 % improvement—making the model more clinically useful despite its non‑certified status. I also worked around a compatibility bug between fast.ai’s aug_transforms and newer Gradio versions by bypassing learn.predict() and calling the raw PyTorch model directly for inference.

The live demo is hosted on my GitHub and Hugging Face Spaces (sudeep1947/skin‑disease‑classifier). For more technical details see the repository skin‑disease‑classifier.

This section lists the major data‑science and ML projects I have built and deployed between 2025‑2026, highlighting objectives, data scale, models, performance metrics, and production details.

Credit Risk Scoring System, Oct 2026, Oct 2026, End-to-end credit card default prediction system on 30,000 customers. Tuned and calibrated LightGBM reached 0.781 ROC-AUC (Gini 0.562, KS 0.433), beating a logistic scorecard baseline. Cost-based decision threshold cut expected loss by 49.9% versus approving everyone, with 77.7% recall on defaulters. Served through a FastAPI REST API with SHAP top-3 reasons per decision, containerised with Docker. Includes fairness auditing, PSI drift monitoring, pytest tests and GitHub Actions CI. Tech: Python, LightGBM, SHAP, FastAPI, Docker, GitHub Actions.

Customer Churn Prediction — scikit-learn (Production ML), Jul 2026, Built a production-style churn model that flags telecom customers likely to cancel, enabling proactive retention offers. Engineered a complete scikit-learn pipeline over 7,000 customer records — data cleaning (including a hidden text-as-numbers trap in the charges column), one-hot encoding of 15 categorical features, standardisation, and stratified splitting. Benchmarked logistic regression, random forest, and XGBoost; logistic regression won at 0.84 ROC-AUC, catching 79% of churners — proof that model selection should be evidence-driven, not complexity-driven. Deployed a real-time churn-scoring web app on Streamlit Cloud.

Loan Default Prediction, Jul 2026, Built an end-to-end credit-risk system with every ML algorithm implemented from first principles in NumPy — no scikit-learn. Implemented logistic regression, decision tree, and random forest from scratch, including gradient descent, cross-entropy loss, Gini impurity, and bootstrap aggregation. Trained on 150,000 borrower records; the random forest achieved 0.86 ROC-AUC, outperforming the single tree (0.84) and logistic regression (0.64). Uncovered a classic class-imbalance trap: a 93%-accuracy model that caught zero defaulters — resolved it through precision-recall analysis and threshold tuning, raising defaulter detection from 0 to over 50%. Deployed an interactive risk-scoring web app on Streamlit Cloud.

Skin Disease Classifier — Medical AI, Jun 2026, Jan 2026, Trained ResNet50 via transfer learning on HAM10000 — 10,015 dermoscopy images across 7 skin disease classes. Achieved RocAuc 0.962 and 77.4% accuracy. Doubled melanoma detection recall from 33% to 71% using weighted loss to fix class imbalance. Deployed live on Hugging Face Spaces.

Kisaan Sahayak — Multilingual AI Agricultural Assistant, Dec 2025, Oct 2025, Multilingual AI assistant for rural Indian farmers supporting 7 Indian languages including Kannada, Hindi and Telugu with voice input/output. Powered by Google Gemini API with three modules: Crop Doctor, Health Helper, and Village Help. Deployed on Firebase Hosting.

RAG Chatbot — Document Intelligence System, Sep 2025, Jul 2025, Production RAG pipeline answering natural language questions grounded in uploaded documents. Full pipeline: PDF ingestion → chunking → FAISS vector indexing → semantic retrieval → grounded LLM response. Deployed on Streamlit Cloud.