Machine learning project implementing neural network experiments using Keras/TensorFlow for three different ML problems: breast cancer binary classification, car price regression, and sonar signal classification.
This project includes three comprehensive machine learning analyses:
- Breast Cancer Classification: Binary classification to distinguish malignant from benign tumors
- Cars Regression: Regression to predict car prices
- Sonar Classification: Binary classification to distinguish metal from rock using sonar signals
kerasProject/
├── README.md # This file
├── requirements.txt # Python dependencies
├── ML_Theory_Summary.md # Neural networks theory summary
├── ML2025_lab5_NeuralNets.pdf # Lab documentation
│
├── breast_cancer_analysis.py # Main script - Breast cancer
├── breastCancerModules/ # Breast cancer analysis modules
│ ├── __init__.py
│ ├── data_handler.py # Data management and preprocessing
│ ├── models.py # Model architectures
│ ├── training.py # Training and experiments
│ └── visualization.py # Plots and visualizations
│
├── cars_regression_analysis.py # Main script - Car regression
├── carsModules/ # Car regression modules
│ ├── data_handler.py
│ ├── model.py
│ ├── training.py
│ └── visualization.py
│
├── sonar_classification_analysis.py # Main script - Sonar classification
├── sonarModules/ # Sonar classification modules
│ ├── __init__.py
│ ├── data_handler.py
│ ├── model.py
│ ├── training.py
│ └── visualization.py
│
├── results/ # Experiment results
└── venv/ # Virtual environment
- Python 3.8+
- pip
# Clone repository
git clone <repository-url>
cd kerasProject
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
- TensorFlow 2.20.0
- Scikit-learn 1.7.1
- NumPy 2.2.6
- Pandas 2.2.3
- Matplotlib 3.10.6
Dataset: Wisconsin Breast Cancer Dataset (569 samples, 30 features) Problem: Binary classification (Malignant/Benign)
Features:
- Architecture comparison: Basic (64→32→1) vs Funnel
- Experiments on epochs, batch_size, and architecture
- Metrics: accuracy, precision, recall, F1-score
- Complete visualizations with confusion matrix
Execution:
python breast_cancer_analysis.py
Dataset: Car price prediction based on customer characteristics Problem: Regression (continuous value prediction)
Features:
- Age, Gender, Miles/day, Personal debt, Monthly income
- Architecture: 64→32→1 with linear activation
- Loss function: MSE (Mean Squared Error)
- Feature importance analysis
Execution:
python cars_regression_analysis.py
Dataset: 208 samples, 60 sonar features Problem: Binary classification (Metal/Rock)
Features:
- Base model and improved model with Dropout
- Early stopping to prevent overfitting
- Parameters: epochs=100, batch_size=5
- Prediction confidence analysis
Execution:
python sonar_classification_analysis.py
- ReLU: Hidden layers (computational efficiency)
- Sigmoid: Binary classification output (0-1)
- Linear: Regression output (continuous values)
- Adam: Used in all experiments for adaptive convergence
- Binary Crossentropy: Binary classification
- MSE: Regression
- Validation Split: 80/20 for overfitting monitoring
- Early Stopping: Automatic halt when validation loss stops improving
- Dropout: In improved sonar model
Each experiment automatically generates:
- Training History: Accuracy/loss plots over epochs
- Classification Analysis: Confusion matrix, per-class metrics
- Prediction Analysis: Confidence distribution, prediction examples
- Comprehensive Reports: Complete performance analysis
Results are saved in the results/grafici/
folder.