Coursework project / Computer vision

Skin-lesion classification

Learning how to train a model—and question its evaluation.

  • Apr — May 2026
  • PyTorch · CNN · ResNet18

The work

Compared a custom convolutional neural network with a partially fine-tuned ResNet18 for binary skin-lesion classification. Experiments included augmentation and training settings.

Coursework used the Kaggle Melanoma Cancer Image Dataset, with 224 × 224 RGB inputs and benign/malignant labels.

The evaluation boundary

ResNet18 classified 1,911 of 2,000 evaluation images correctly (95.55%). That set was used during development, so this is an exploratory result, not an unbiased estimate of performance on unseen data.

The evaluation set contains 1,000 benign and 1,000 malignant images. The confusion matrix shows 36 benign images classified as malignant and 53 malignant images classified as benign. Those errors matter even when the aggregate accuracy looks high.

ResNet18 confusion matrix: 964 benign and 947 malignant images correctly classified, with 36 false positives and 53 false negatives.
Original coursework plot (French labels): rows are true classes and columns are predictions. The same 2,000-image set informed development; this is neither untouched test-set generalization nor clinical validation. Public project and evaluation details ↗

What I learned

Training and evaluating image models in PyTorch, examining classification errors—including false negatives—and being precise about what an evaluation can actually establish. This was not a clinically validated diagnostic system.

A useful result needs an equally clear description of how it was measured.