Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chanmeng666/mnist-handwritten-digit-recognition-project

A comprehensive implementation and analysis of handwritten digit recognition using multiple neural network architectures on the MNIST dataset. Features basic MLP, optimized feature-selected model, and deep CNN approaches with detailed performance comparisons and visualizations.
https://github.com/chanmeng666/mnist-handwritten-digit-recognition-project

cnn computer-vision data-analysis data-visualization deep-learning feature-analysis handwritten-digit-recognition keras machine-learning mlp mnist model-optimization neural-networks python scikit-learn tensorflow

Last synced: 16 days ago
JSON representation

A comprehensive implementation and analysis of handwritten digit recognition using multiple neural network architectures on the MNIST dataset. Features basic MLP, optimized feature-selected model, and deep CNN approaches with detailed performance comparisons and visualizations.

Awesome Lists containing this project

README

        


MNIST Neural Network Analysis








# Features
- **Multiple Model Architectures**: Implementation of basic MLP, optimized feature-selected, and deep CNN models
- **Comprehensive Analysis**: Detailed data exploration, visualization, and performance metrics
- **Advanced Techniques**: Feature importance analysis, sensitivity testing, and error analysis
- **Performance Optimization**: Model comparison and trade-off analysis
- **Interactive Visualizations**: Detailed charts and graphs for model behavior understanding
- **Extensive Documentation**: Step-by-step explanations and implementation details

## Model Performance
| Model | Accuracy | Prediction Time | Parameters |
| --------- | -------- | --------------- | ---------- |
| Basic MLP | 99.05% | 0.621s | 407,050 |
| Optimized | 97.86% | 0.528s | 84,618 |
| Deep CNN | 99.71% | 4.869s | 1,015,530 |

## Technologies Used
![Python](https://img.shields.io/badge/python-%233776AB.svg?style=for-the-badge&logo=python&logoColor=white)
![TensorFlow](https://img.shields.io/badge/tensorflow-%23FF6F00.svg?style=for-the-badge&logo=tensorflow&logoColor=white)
![Keras](https://img.shields.io/badge/keras-%23D00000.svg?style=for-the-badge&logo=keras&logoColor=white)
![NumPy](https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge&logo=numpy&logoColor=white)
![Pandas](https://img.shields.io/badge/pandas-%23150458.svg?style=for-the-badge&logo=pandas&logoColor=white)
![Matplotlib](https://img.shields.io/badge/Matplotlib-%23ffffff.svg?style=for-the-badge&logo=Matplotlib&logoColor=black)
![scikit-learn](https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=for-the-badge&logo=scikit-learn&logoColor=white)

## Key Features in Detail

### 1. Data Analysis & Preprocessing
- Extensive MNIST dataset exploration
- Class distribution analysis
- Feature importance visualization
- Robust preprocessing pipeline

### 2. Model Implementations
- **Basic MLP Model**
- Simple yet effective architecture
- Multiple neuron configurations tested
- Baseline performance establishment

- **Optimized Model**
- Feature selection optimization
- Resource-efficient implementation
- Fast prediction times

- **Deep CNN Model**
- Advanced architectural design
- State-of-the-art accuracy
- Comprehensive performance analysis

### 3. Analysis Tools
- Detailed performance metrics
- Sensitivity analysis
- Error visualization
- Model behavior exploration

## Getting Started

### Prerequisites
```python
python>=3.7
tensorflow>=2.0
numpy>=1.19
pandas>=1.1
matplotlib>=3.3
scikit-learn>=0.24
```

### Installation
```bash
# Clone the repository
git clone https://github.com/ChanMeng666/mnist-handwritten-digit-recognition-project.git

# Navigate to project directory
cd mnist-handwritten-digit-recognition-project

# Install required packages
pip install -r requirements.txt
```

### Usage
```python
# Run the Jupyter notebook
jupyter notebook hand-written-digit-recognition_final.ipynb
```

## Results Visualization
The project includes extensive visualizations of:
- Model performance comparisons
- Feature importance maps
- Error analysis
- Sensitivity studies
- Training progression

## Future Improvements
- Implementation of additional architectures
- Enhanced data augmentation techniques
- Model compression exploration
- Real-time prediction capabilities
- Transfer learning experiments

## Contributing
Contributions are welcome! Please feel free to submit pull requests.

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Author
[Chan Meng](https://github.com/ChanMeng666)

## Acknowledgments
- The MNIST database creators
- TensorFlow and Keras teams
- Scientific Python community
- All contributors and supporters

## Contact
Chan Meng - [email protected]

Project Link: https://github.com/ChanMeng666/mnist-handwritten-digit-recognition-project