Machine Learning elective portfolio from Universidad de los Andes. This repository documents the computational foundation that supports simulation, optimization, and data-driven engineering work.
The portfolio covers scientific Python, numerical optimization, gradient-based methods, regression, classification, artificial neural networks, feature extraction, and applied model selection. The featured challenge formulates binary classification for hadron/gamma event data and validates a reproducible prediction-delivery contract.
- Build a scientific-computing foundation with NumPy, Matplotlib, and pandas.
- Apply optimization methods, including gradient descent and Newton's method.
- Compare regression and classification models using appropriate metrics.
- Document a binary hadron/gamma classification workflow.
- Preserve reviewable datasets and selected submissions.
- Generate a machine-readable dataset inventory for reproducibility.
For binary classification, the empirical-risk problem is
For logistic regression,
See Mathematical Formulation for the optimization, validation, and reproducibility context.
- The repository is positioned as computational-engineering evidence, not as a mechanical-design project.
- Historical notebooks retain their submitted language and filenames.
- Large regenerated artifacts, models, checkpoints, and image crops are intentionally excluded.
- The portable dataset inventory does not retrain every course model.
- Organize raw datasets by source and file type.
- Preserve course notebooks as auditable computational evidence.
- Provide a reusable dataset-inventory workflow.
- Refactor the challenge prediction validator into a command-line tool.
- Export a reviewable summary and figure without requiring notebook execution.
The portable workflow generates:
results/dataset_inventory.csvresults/dataset_inventory.jsonfigures/dataset_inventory.png
The repository includes hadron/gamma classification data with 10,700
training rows and 2,676 test rows, along with datasets for regression,
classification, biomedical signals, and feature-extraction exercises.
This repository strengthens the portfolio by showing computational maturity: data handling, optimization, model formulation, reproducibility, and numerical reasoning. It is complementary to the more mechanically focused Dynamics, Control, and Thermofluids repositories.
data/ Raw course datasets
docs/ GitHub Pages-ready documentation
figures/ Generated portfolio figures
notebooks/ Preserved laboratory, project, and challenge notebooks
reports/ Selected PDF submissions
results/ Generated dataset inventory
src/ Reusable inventory and validation tools
tests/ Lightweight regression tests
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txtpython src/ml_portfolio/dataset_inventory.py
python -m unittest discover -s tests -vValidate a generated challenge submission:
python src/challenge_2/validate_predictions.py path/to/predictions.csv- Add notebook execution checks in continuous integration.
- Extract reusable preprocessing pipelines from the challenge notebooks.
- Compare calibrated classifiers and uncertainty estimates.
- Apply the same data-driven workflow to mechanical-system diagnostics.
- C. M. Bishop, Pattern Recognition and Machine Learning, Springer.
- T. Hastie, R. Tibshirani, and J. Friedman, The Elements of Statistical Learning, Springer.
- scikit-learn documentation
Start with the GitHub Pages-ready documentation and the portfolio evaluation.