Skip to content

This is repository includes instillation guide and basic,intermediate and advance machine learning algorithms.

Notifications You must be signed in to change notification settings

amir-jafari/Machine-Learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ’ซ Machine Learning Fundamentals Repository

Author License Python Contributions Welcome Last Updated

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.

๐Ÿ“š Table of Contents

๐ŸŽฏ Overview

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

๐Ÿ“ Repository Structure

๐Ÿ“– Lectures

The Lectures/ directory contains structured educational content organized by topics:

๐ŸŽค 00- Interview Questions

  • Common machine learning interview questions and answers
  • Conceptual explanations and practical examples
  • Perfect for job preparation and knowledge assessment

๐Ÿ“‹ 01-CheatSheet

  • 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

๐Ÿงฎ 02-Math Review Codes

  • 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

๐Ÿง  03-Perceptron

  • Single-layer perceptron implementation
  • Binary classification examples
  • Visualization of decision boundaries
  • Historical foundation of neural networks

๐Ÿ“ˆ 04-Adaline

  • Adaptive Linear Neuron (ADALINE) implementation
  • Gradient descent optimization
  • Comparison with perceptron algorithm
  • Learning rate analysis and convergence

๐Ÿ”ฌ 05-Sklearn NN

  • Neural network implementations using scikit-learn
  • Multi-layer perceptron examples
  • Hyperparameter tuning and model evaluation
  • Integration with sklearn ecosystem

๐ŸŽฏ Clustering_SOM

  • 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

๐Ÿš€ Mini Projects

The Mini_Project/ directory contains hands-on implementations of fundamental ML algorithms:

๐Ÿ”„ Backpropagation

  • Complete implementation of backpropagation algorithm
  • Neural network training from scratch
  • Gradient computation and weight updates
  • Multiple examples with different architectures

๐Ÿ“Š LMS (Least Mean Squares)

  • Linear regression using LMS algorithm
  • Adaptive filtering applications
  • Real-time learning implementations
  • Performance analysis and convergence studies

โšก Perceptron

  • From-scratch perceptron implementation
  • Binary and multi-class classification
  • Visualization tools and learning curves
  • Comparison with library implementations

๐ŸŒ SimpleNet_Python

  • 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

๐Ÿ“ฆ Temporary Files

The Temp/ directory contains:

  • Backup versions of lectures and projects
  • Additional algorithms and implementations
  • MATLAB implementations for comparison
  • Extended examples and experimental code

๐Ÿ’ป Tech Stack

Python Anaconda PyTorch Plotly Pandas NumPy Scipy scikit-learn TensorFlow Keras Matplotlib

๐Ÿš€ Getting Started

Prerequisites

  • Python 3.7 or higher
  • Anaconda or Miniconda (recommended)
  • Basic understanding of Python programming
  • Familiarity with mathematical concepts (linear algebra, statistics)

Installation

  1. Clone the repository

    git clone https://github.com/amirajafari/machine-learning.git
    cd machine-learning
  2. Create a virtual environment

    conda create -n ml-fundamentals python=3.8
    conda activate ml-fundamentals
  3. Install required packages

    pip install numpy pandas matplotlib scikit-learn tensorflow pytorch plotly scipy

๐Ÿ“– How to Use This Repository

For Beginners

  1. Start with Lectures/01-CheatSheet to get familiar with basic concepts
  2. Review Lectures/02-Math Review Codes for mathematical foundations
  3. Work through Lectures/03-Perceptron and Lectures/04-Adaline for basic neural networks
  4. Practice with Mini_Project/Perceptron for hands-on implementation

For Intermediate Learners

  1. Explore Lectures/05-Sklearn NN for practical ML implementations
  2. Dive into Mini_Project/Backpropagation for deep understanding
  3. Study Lectures/Clustering_SOM for unsupervised learning
  4. Experiment with Mini_Project/SimpleNet_Python

For Advanced Users

  1. Use the repository as a reference for algorithm implementations
  2. Contribute improvements and additional examples
  3. Adapt the code for your specific use cases
  4. Explore the Temp/ directory for additional resources

๐Ÿค Contributing

We welcome contributions to improve this educational resource! Here's how you can help:

  1. Fork the repository
  2. Create a 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

Contribution Guidelines

  • 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

๐Ÿ“„ License

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!

About

This is repository includes instillation guide and basic,intermediate and advance machine learning algorithms.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published