/Breast-cancer-classification

Benign vs malignant cancer classifier from microscopic images using convolutional neural networks

Primary LanguageJupyter NotebookMIT LicenseMIT

Breast-cancer-classification

Benign vs Malignant classifier using convolutional neural networks

Check out the corresponding medium blog post https://towardsdatascience.com/convolutional-neural-network-for-breast-cancer-classification-52f1213dcc9.

Data

The dataset can be downloaded from here. This is a binary classification problem. I split the data as shown-

dataset train
  benign
   b1.jpg
   b2.jpg
   //
  malignant
   m1.jpg
   m2.jpg
   //  validation
   benign
    b1.jpg
    b2.jpg
    //
   malignant
    m1.jpg
    m2.jpg
    //...

Environment and tools

  1. Jupyter Notebook
  2. Numpy
  3. Pandas
  4. Scikit-image
  5. Matplotlib
  6. Scikit-learn
  7. Keras

Installation

pip install numpy pandas scikit-image matplotlib scikit-learn keras

jupyter notebook

Model

model

Results

Loss/Accuracy vs Epoch

loss/accuracy

loss/accuracy

Confusion Matrix

roc-auc

ROC-AUC curve

roc-auc

Correct/Incorrect classification samples

results

results

The model is able to reach a validation accuracy of 98.3%, precision 0.65, recall 0.95, f1 score of 0.77 and ROC-AUC as 0.692.

Citing

@misc{Abhinav:2019,
  Author = {Abhinav Sagar},
  Title = {Breast-cancer-classification},
  Year = {2019},
  Publisher = {GitHub},
  Journal = {GitHub repository},
  Howpublished = {\url{https://github.com/abhinavsagar/Breast-cancer-classification}}
}