A comprehensive collection of machine learning fundamentals, algorithms, and practical implementations designed for educational purposes and hands-on learning.
This repository contains the most updated fundamental concepts of Machine Learning needed to implement and build practical solutions. Whether you're a beginner starting your ML journey or an experienced practitioner looking for reference implementations, this repository provides structured learning materials and code examples.
- ๐ฏ Overview
- ๐ Repository Structure
- ๐ป Tech Stack
- ๐ Getting Started
- ๐ How to Use This Repository
- ๐ค Contributing
- ๐ License
This repository serves as a comprehensive learning resource for machine learning, covering:
- Supervised Learning: Classification and regression algorithms
- Unsupervised Learning: Clustering and dimensionality reduction techniques
- Neural Networks: From basic perceptrons to advanced architectures
- Mathematical Foundations: Linear algebra, statistics, and optimization
- Practical Implementations: Ready-to-run code examples and projects
The Lectures/ directory contains structured educational content organized by topics:
- Common machine learning interview questions and answers
- Conceptual explanations and practical examples
- Perfect for job preparation and knowledge assessment
- 01-ML Cheat Sheet: Quick reference for machine learning algorithms and concepts
- 02-Math Cheat Sheet: Essential mathematical formulas and concepts for ML
- 03-Python Cheat Sheet: Python programming essentials for data science and ML
- 01-Linear-Algebra: Matrix operations, eigenvalues, eigenvectors, and linear transformations
- 02-Statistics: Probability distributions, statistical tests, and descriptive statistics
- Practical code implementations of mathematical concepts used in ML
- Single-layer perceptron implementation
- Binary classification examples
- Visualization of decision boundaries
- Historical foundation of neural networks
- Adaptive Linear Neuron (ADALINE) implementation
- Gradient descent optimization
- Comparison with perceptron algorithm
- Learning rate analysis and convergence
- Neural network implementations using scikit-learn
- Multi-layer perceptron examples
- Hyperparameter tuning and model evaluation
- Integration with sklearn ecosystem
- SOM (Self-Organizing Maps): Unsupervised learning technique
- Tabular Data Examples: Implementation on structured datasets like Iris
- Visualization of high-dimensional data mapping
- Interactive examples and post-training analysis
The Mini_Project/ directory contains hands-on implementations of fundamental ML algorithms:
- Complete implementation of backpropagation algorithm
- Neural network training from scratch
- Gradient computation and weight updates
- Multiple examples with different architectures
- Linear regression using LMS algorithm
- Adaptive filtering applications
- Real-time learning implementations
- Performance analysis and convergence studies
- From-scratch perceptron implementation
- Binary and multi-class classification
- Visualization tools and learning curves
- Comparison with library implementations
- Simple neural network framework built in Python
- Educational implementation for understanding NN internals
- Modular design for easy experimentation
- Examples ranging from basic to intermediate complexity
The Temp/ directory contains:
- Backup versions of lectures and projects
- Additional algorithms and implementations
- MATLAB implementations for comparison
- Extended examples and experimental code
- Python 3.7 or higher
- Anaconda or Miniconda (recommended)
- Basic understanding of Python programming
- Familiarity with mathematical concepts (linear algebra, statistics)
-
Clone the repository
git clone https://github.com/amirajafari/machine-learning.git cd machine-learning -
Create a virtual environment
conda create -n ml-fundamentals python=3.8 conda activate ml-fundamentals
-
Install required packages
pip install numpy pandas matplotlib scikit-learn tensorflow pytorch plotly scipy
- Start with Lectures/01-CheatSheet to get familiar with basic concepts
- Review Lectures/02-Math Review Codes for mathematical foundations
- Work through Lectures/03-Perceptron and Lectures/04-Adaline for basic neural networks
- Practice with Mini_Project/Perceptron for hands-on implementation
- Explore Lectures/05-Sklearn NN for practical ML implementations
- Dive into Mini_Project/Backpropagation for deep understanding
- Study Lectures/Clustering_SOM for unsupervised learning
- Experiment with Mini_Project/SimpleNet_Python
- Use the repository as a reference for algorithm implementations
- Contribute improvements and additional examples
- Adapt the code for your specific use cases
- Explore the Temp/ directory for additional resources
We welcome contributions to improve this educational resource! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Ensure code is well-documented and follows Python best practices
- Add examples and explanations for new algorithms
- Update the README if you add new sections or folders
- Test your code before submitting
This project is licensed under the MIT License - see the LICENSE file for details.
Made with โค๏ธ for the Machine Learning Community
If you find this repository helpful, please consider giving it a โญ star!