Tumor Classifier

Personal Machine Learning project, based on the BRAIN TUMOR MRI Kaggle Dataset
Resultado con Inception V3 de un 84% Accuracy y un 100% en Recall en la clasificación de tumores en MRI
You can see a summary below or use the buttons to go to Github or project results.
The project was done with Python using Jupiter Notebook
The most relevant tools used were:
- Panda and Numpy.
- For visualisation Plotly and Seaborn.
- For Machine Learning training, Scikit-Learn, TensorFlow and Keras.
Project summary
- Image pre-processing
-
Each image in the Dataset was searched for the maximum contour, to find the extreme points and crop it to eliminate possible noise, such as MRi dates, hospital names etc... There is a notebook dedicated to this procedure if you wish to see the process.
- Dataset distribution
-
As you can see we had an unbalanced dataset, and not very numerous, which led us to perform two procedures to verify results, one with ImageDataGenerator and others without, given the special nature of an MRI, the best results were without ImageDataGenerator.
- Winning model
-
The final result was 0.8461 Model Accuracy, and 100% recall.
As can be seen it does not fail in any MRI with tumour saying that it is healthy, if it has some failures indicating as Tumours healthy MRI. Talking about brain tumours, it seems of utmost importance that no tumours are left undetected even if there are some false positives. If you look at the total results of the project and the comparison of models you will see that the failures of Inception V3 look like MRi with noise or mislabelled, because to the human eye they also look like tumours even though they are labelled as healthy.