ML / Bioinformatics · College Mini Project · 2022–23

Lung Cancer Detection
DNA Methylation with LASSO & Ensembled RIPPER

Python scikit-learn LASSO (LassoCV) RIPPER + ensembling Pandas / NumPy GEOparse (NCBI GEO) wittgenstein Google Colaboratory

About the project

Detection of lung cancer, its stage, and recurrence probability from genome data. Uses DNA methylation data (CpG-probe methylation values) from public NCBI GEO series — GSE32861 as the main dataset and GSE63384 as an independent test set for the diagnosis task — building on published evidence that methylation signatures can indicate cancer presence, stage, and recurrence likelihood.

What I built / how it worked

  • Dataset — two public NCBI GEO DNA methylation series (GSE32861, GSE63384) pulled programmatically with GEOparse; high-dimensional CpG-probe feature matrix prepared through data cleaning and preprocessing.
  • Feature selection — LASSO (LassoCV) dimensionality reduction compacting the methylation feature space; evaluated 15-feature and 1,307-feature LASSO-selected subsets.
  • Modeling — classification with the rule-based RIPPER algorithm (wittgenstein), applied as an ensembled learner with per-stage/per-task models combined via soft-voting (VotingClassifier).
  • Baselines — comparative evaluation against Random Forest, Logistic Regression, K-Nearest Neighbors, Kernel SVM, Complement Naive Bayes, and gcForest across three tasks (presence / stage / recurrence).
  • Reproducibility — three reproducible 5-step pipelines (data collection → preprocessing → feature selection → model training → prediction) with saved per-task models, plus a Flask CSV-upload front-end prototype.

Results

  • Ensembled RIPPER reached ~94.3% accuracy on stage-classification and diagnosis comparisons, beating Random Forest (~77%) by ~17 pts.
  • On the recurrence task, RIPPER reached ~77.4% vs Random Forest ~54.8%.
  • Graded detection of presence, stage (Stage I/II/III), and recurrence — not just a binary outcome.
← Back to all projects