A collection of machine learning and deep learning projects developed for the Epitech AI courses. This repository contains two main projects: MNIST digit classification and chest X-ray pneumonia detection.
T-AIA-810/
├── MNIST/
│ ├── notebook.ipynb # Jupyter notebook for MNIST project
│ └── csv/
│ ├── sample_submission.csv
│ ├── test.csv
│ └── train.csv
└── Zoidberg/
├── notebook.ipynb # Jupyter notebook for chest X-ray classification
├── requirements.txt # Python dependencies
└── chest_xray/
├── train/ # Training dataset
│ ├── NORMAL/
│ └── PNEUMONIA/
├── test/ # Test dataset
│ ├── NORMAL/
│ └── PNEUMONIA/
└── val/ # Validation dataset
├── NORMAL/
└── PNEUMONIA/
The MNIST project focuses on classifying handwritten digits (0-9) using machine learning techniques. The project utilizes the popular MNIST dataset containing 70,000 images of handwritten digits.
- notebook.ipynb: Interactive Jupyter notebook containing the complete MNIST analysis and classification pipeline
- csv/train.csv: Training dataset with features and labels
- csv/test.csv: Test dataset for predictions
- csv/sample_submission.csv: Sample submission format for results
- Data exploration and visualization
- Digit classification model training
- Performance evaluation on test data
The Zoidberg project is a deep learning application designed to detect pneumonia from chest X-ray images. Using convolutional neural networks (CNN), this project classifies X-ray images as either normal or showing signs of pneumonia.
- notebook.ipynb: Complete Jupyter notebook with data loading, model training, and evaluation
- requirements.txt: Python package dependencies
- chest_xray/: Directory containing the image dataset
- train/: Training images (NORMAL and PNEUMONIA classes)
- test/: Test images (NORMAL and PNEUMONIA classes)
- val/: Validation images (NORMAL and PNEUMONIA classes)
- Medical image classification using deep learning
- CNN architecture implementation
- Image data augmentation
- Model training and validation
- Performance metrics evaluation
The chest X-ray dataset is organized into three subsets:
- Training Set: Used to train the neural network model
- Validation Set: Used to tune hyperparameters and prevent overfitting
- Test Set: Used for final model evaluation
Each subset contains two classes:
- NORMAL: Chest X-rays showing no pneumonia
- PNEUMONIA: Chest X-rays showing pneumonia infection
To set up a Python virtual environment for these projects:
-
Create a virtual environment:
# Using VS Code command palette: # F1 > Python: Create Environment # Or using command line: python -m venv .venv
-
Activate the virtual environment:
On Windows:
.venv\Scripts\activate
On macOS/Linux:
source .venv/bin/activate -
Deactivate the virtual environment:
deactivate
Install the required packages for the Zoidberg project:
pip install -r Zoidberg/requirements.txtThe following packages are required:
- tensorflow: Deep learning framework for building neural networks
- matplotlib: Data visualization library
- pandas: Data manipulation and analysis
- numpy: Numerical computing library
- pydot: Graphviz interface for graph visualization
For the MNIST project, install the following packages:
pip install pandas ipykernel pyarrow matplotlib numpyPackage descriptions:
- pandas: Data loading and manipulation from CSV files
- ipykernel: Jupyter kernel for running Python notebooks
- pyarrow: Efficient data serialization
- matplotlib: Visualization of digit images and predictions
- numpy: Numerical operations and array handling
Both projects use Jupyter notebooks. To use them:
-
Install Jupyter:
pip install jupyter
-
Launch Jupyter:
jupyter notebook
-
Navigate to the project folder and open the respective
notebook.ipynbfile.
- Navigate to the MNIST directory
- Open the
notebook.ipynbfile in Jupyter - Execute the cells sequentially to:
- Load and explore the training data
- Visualize sample digits
- Calculate statistics for each digit class
- Train your classification model
- Evaluate on test data
- View predictions and performance metrics
- Navigate to the Zoidberg directory
- Activate your virtual environment
- Install dependencies:
pip install -r requirements.txt - Open the
notebook.ipynbfile in Jupyter - Execute the notebook cells to:
- Load chest X-ray images from the dataset directories
- Display sample X-ray images from both classes
- Preprocess and augment image data
- Build the CNN architecture
- Train the neural network on the training dataset
- Validate performance on the validation set
- Evaluate final results on the test set
- Generate predictions and confusion matrix
import pandas as pd
dataArray = pd.read_csv('csv/train.csv')
print(dataArray.head())import os
from tensorflow.keras.preprocessing.image import load_img
train_path = 'chest_xray/train'
classes = os.listdir(train_path)
# List images in NORMAL class
normal_dir = os.path.join(train_path, 'NORMAL')
normal_images = os.listdir(normal_dir)
print(f'Number of normal X-rays: {len(normal_images)}')- Input: 28×28 pixel grayscale images
- Output: 10 classes (digits 0-9)
- Data Format: CSV with pixel values and labels
- Input: Chest X-ray images (variable resolution)
- Output: Binary classification (NORMAL vs PNEUMONIA)
- Model Type: Convolutional Neural Network (CNN)
- Image Processing: Data augmentation using ImageDataGenerator
- Evaluation: Accuracy, Precision, Recall, F1-score
- Python 3.7 or higher
- pip (Python package manager)
- Jupyter Notebook
- All dependencies listed in respective requirements files
- Both projects are designed to be educational and demonstrate machine learning and deep learning concepts
- The Zoidberg project uses real medical imaging data for pneumonia detection
- Ensure your virtual environment is activated before installing packages or running notebooks
- GPU support is optional but recommended for faster training in the Zoidberg project
These projects are part of the Epitech AI coursework (T-AIA-810).
Last Updated: February 2026