In this repo you will find a collection of Machine Learning algorithms I have learned independently during my final year of university.
You can find the theoretical aspects of ML algorithms, as well as their implementation from scratch, and their use in sklearn on real datasets.
I will be using the following resources during my learning:
- Python Data Science Handbook (PDSH)
- Understanding Machine Learning: From Theory to Algorithms (UML)
- Elements of Statistical Learning (ESL)
- Hands-On Machine Learning (HOML)
I will be using PDSH as my reference of Python Data Analysis techniques, UML and ESL as references of theoretical Machine Learning, and Hands-On as my practical reference.
This is the roadmap I am currently following to learn Machine Learning (based on https://roadmap.sh/machine-learning):
- Python Basis
Here, I need to be comfortable with numpy, pandas, matplotlib and seaborn. I also need to learn basics concepts of Data Analysis.
From PDSH: [x] Introduction to NumPy [x] Data Manipulation with Pandas
- Data Analysis
[ ] Exploratory Data Analysis [ ] Preprocessing & Data Cleaning Techniques [ ] Feature Engineering [ ] Feature Scaling & Normalization [ ] Dimensionality Reduction [ ] Feature Selection
- Scikit-Learn Basics & Fundamentals of Machine Learning
[ ] Data Loading [ ] Train - Test Data [ ] Data Preparation [ ] Model Selection [ ] Tuning [ ] Prediction
TODO: [ ] Matplotlib: ( ) Simple Line Plots ( ) Scatter Plots ( ) Histograms ( ) Customizing Plot Legends ( ) Multiple Subplots ( ) Text annotations [ ] Seaborn for dataset analysis
Suggests: 4. Regression 5. Classification 6. Distance-based models (kNN) 7. SVM 8. Decision Trees 9. Ensembles 10. Clustering 11. Dimensionality Reduction 12. Feature Selection
For each technique or algorithm I will follow these steps:
- Define the problem I am solving
- Mathematical definitions and theorems I need for the problem
- Implementation from scracth with numpy
- Learn sklearn's definition of the algorithm
- Practical implementation on real datasets