This repository serves as a unified AI Engineering Portfolio, designed to demonstrate solid expertise in Machine Learning, Deep Learning, Computer Vision, Python Backend Development, and MLOps.
Each project is hosted within a single, multi-page Streamlit application, allowing for a seamless and functional demonstration of models and analyses, which is crucial for interviews and professional opportunities. The modular structure ensures scalability and maintainability .
The repository follows a clear, modular architecture, separating presentation, core business logic, and models.
AI-Project/
βββ app.py # Main Streamlit entry point (Home Page)
βββ pages/
β βββ 1_π€_Fake_vs_Real_Classifier.py # Scripts for Streamlit side pages (your projects)
β βββ 2_π_Face_Morphing.py
β βββ ...
βββ src/ # Python modules with core logic (ML, analysis, utilities)
β βββ ml_inference.py # General inference logic
β βββ adult_logic.py # Specific logic for Adult Census
β βββ ...
βββ models/ # Pre-trained models and configuration files
β βββ cnn/ # Deep Learning models (.keras)
β βββ cv/ # Computer Vision assets (.xml, .dat)
β βββ lbp/ # Traditional ML models (.pkl)
βββ data/ # Data used for analysis or demos
βββ Chess/ # Isolated module for the Chess Engine (Pygame)
βββ requirements.txt # All Python dependencies
βββ README.md # This file
Below is a list of the AI and Data Science mini-projects included in the portfolio.
| Icon | Project Name | AI Type/Technology | Brief Description |
|---|---|---|---|
| π€ | Fake vs Real Classifier | Binary Classification/CV | A classifier to distinguish between real and generated/manipulated images using LBP features and a traditional ML model. |
| π | Face Morphing | Computer Vision (CV) | Demonstration of image manipulation and transition between faces using advanced CV techniques (dlib, OpenCV). |
| π§ | DFS Algorithmic Solvers | Search Algorithms | Implementation and visualization of solutions to classic problems (e.g., N-Queens, Maze) using the Depth First Search (DFS) algorithm. |
| βοΈ | Pygame Chess Engine | Game AI/External Engine | Integration of a chess engine (Stockfish) within a Pygame interface for analysis and gameplay. (Note: Run separately). |
| π | Clustering Analysis | Unsupervised Machine Learning | Execution and visualization of clustering algorithms (e.g., K-Means) for unlabeled data analysis. |
| π | Keras Regression | Deep Learning (TensorFlow) | A neural network model (CNN) for regression tasks, focused on optimization and training. |
| πΌοΈ | MNIST Classification | Deep Learning (CNN) | Handwritten digit recognition using a Convolutional Neural Network (CNN) on the MNIST dataset. |
| π’ | Titanic Survival | Classification (Traditional ML) | Prediction of Titanic passenger survival using feature engineering and a classification model (e.g., XGBoost). |
| π | Housing Regression | Regression (Traditional ML) | A predictive model to estimate house prices based on complex datasets. |
| π° | Adult Census | Classification (Traditional ML) | Income prediction (>50k or <=50k) using advanced preprocessing techniques for categorical data and XGBoost. |
| π¦ | Bank Marketing | Classification (Imbalanced Learning) | Prediction model for subscription to a banking product, with emphasis on managing imbalanced datasets (imbalanced-learn). |
| πΊοΈ | California Housing Analysis | Data Analysis & Viz | Comprehensive data exploration and statistical analysis of the California Housing dataset, with interactive visualizations. |
The project is built entirely in Python and leverages the following libraries, listed in requirements.txt:
streamlit: Framework used to create the web interface and unify all projects into a single interactive dashboard.
tensorflow: For Deep Learning projects (Keras Regression, MNIST Classification).scikit-learn: For classical Machine Learning algorithms (Classification, Regression, Clustering, Preprocessing).xgboost: High-performance Boosting model, used for complex classification problems (Titanic, Adult Census, Bank Marketing).imbalanced-learn: Essential toolkit for addressing imbalanced dataset issues (Bank Marketing).category_encoders: For advanced encoding of categorical variables in ML pipelines.
opencv-python-headless: Fundamental library for image processing and Computer Vision projects (Face Morphing, Fake vs Real Classifier).imageio: For reading and writing multimedia files.
numpy/pandas: Efficient data manipulation and analysis.seaborn/matplotlib: Creation of static and statistical data visualizations.requests: For HTTP/API interactions, if required in certain modules.
Follow these steps to launch the entire suite of projects locally.
git clone <YOUR_REPOSITORY_URL>
cd AI-ProjectIt is highly recommended to use a virtual environment (venv or conda).
# Create and activate the environment (with venv)
python -m venv venv
source venv/bin/activate # Linux/macOS
.\venv\Scripts\activate # WindowsInstall all necessary libraries from the requirements.txt file:
pip install -r requirements.txtLaunch the main application. Streamlit will automatically load all pages present in the pages/ folder.
streamlit run app.pyThe application will be available in your browser, typically at http://localhost:8501. All projects will be accessible through the sidebar navigation.
- Face Morphing: The Face Morphing project (
2_π_Face_Morphing.py) requires theshape_predictor_68_face_landmarks.datfile and potentially thedliblibrary, which is known for its complex compilation dependencies. If you encounter issues, you might need to installdlibseparately or from a pre-compiled wheel. - Chess Engine: The Chess project (
4_βοΈ_Motore_Scacchistico_Pygame.py) is a standalone Pygame application that does not integrate directly into the Streamlit interface. It resides in a separate Python module (Chess/) which will need to be executed independently to function correctly. - Pre-trained Models: Certain models, such as
modello_cnn.kerasor.pklfiles, are included in themodels/folder. These files can be large. In a real MLOps environment, these would typically be managed via a model versioning system (e.g., MLflow) or cloud storage (e.g., S3/GCS).