{"id":20619357,"url":"https://github.com/mohammed-majid/ml_roadmap","last_synced_at":"2025-03-06T19:45:52.102Z","repository":{"id":249884453,"uuid":"832852186","full_name":"Mohammed-Majid/ML_Roadmap","owner":"Mohammed-Majid","description":"Comprehensive Machine Learning Roadmap","archived":false,"fork":false,"pushed_at":"2024-10-14T14:59:51.000Z","size":1839,"stargazers_count":19,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-17T05:08:30.538Z","etag":null,"topics":["algorithms","data-science","deep-learning","machine-learning","roadmap"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mohammed-Majid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-23T21:14:27.000Z","updated_at":"2025-01-16T13:27:03.000Z","dependencies_parsed_at":"2024-11-20T11:02:04.852Z","dependency_job_id":null,"html_url":"https://github.com/Mohammed-Majid/ML_Roadmap","commit_stats":null,"previous_names":["mohammed-majid/ml_roadmap"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mohammed-Majid%2FML_Roadmap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mohammed-Majid%2FML_Roadmap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mohammed-Majid%2FML_Roadmap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mohammed-Majid%2FML_Roadmap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mohammed-Majid","download_url":"https://codeload.github.com/Mohammed-Majid/ML_Roadmap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242277652,"owners_count":20101536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","data-science","deep-learning","machine-learning","roadmap"],"created_at":"2024-11-16T12:11:27.245Z","updated_at":"2025-03-06T19:45:52.060Z","avatar_url":"https://github.com/Mohammed-Majid.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Machine Learning Roadmap\n\n**This is a compilation of the resources I gathered while learning the skills required to build machine learning projects**\n\n**I originally made this to serve as a roadmap for me to follow; but I then thought, why not make it publicly viewable?**\n\n**It is still a work in progress since I am continuously learning new skills, and it is by no means an exhaustive list.**\n\n**🔗 Connect with me:** [![LinkedIn](https://img.shields.io/badge/LinkedIn-%230077B5.svg?logo=linkedin\u0026logoColor=white)](https://linkedin.com/in/Mohamed-Al-Mamari) \n\n## Topics of Study\n\n- [Statistics](#statistics)\n- [Linear Algebra](#linear-algebra)\n- [Calculus](#calculus)\n- [Programming](#programming)\n- [Data Preprocessing](#data-preprocessing)\n- [Machine Learning Pt.1: Fundamentals](#machine-learning-pt1-fundamentals)\n- [Machine Learning Pt.2: Algorithms](#machine-learning-pt2-algorithms)\n- [Model Evaluation and Validation](#model-evaluation-and-validation)\n- [Deep Learning](#deep-learning)\n- [Natural Language Processing (NLP)](#natural-language-processing-nlp)\n- [Computer Vision (CV)](#computer-vision-cv)\n- [Data Niches](#data-niches)\n- [Deployment](#deployment)\n\n---\n\n## Statistics\n\nStatistics can be thought of as the \"foundational toolkit\" for understanding and interpreting data. It's crucial for tasks like data analysis, building probabilistic models, and evaluating model performance and so on. To build a general intuition for the statistics required for data science, focus on the following areas:\n\n\n![Illustration-of-a-bivariate-Gaussian-distribution-The-marginal-and-joint-probability_W640](https://github.com/user-attachments/assets/32db0836-d58e-40e5-978a-f8c55539e52a)\n\n\n- **Descriptive Statistics**: Measures of Central Tendency (mean, median, mode), Measures of Dispersion (range, variance, standard deviation), skewness and kurtosis.\n- **Inferential Statistics**: Hypothesis testing, Confidence intervals, P-values, t-tests, chi-square tests.\n- **Probability Theory**: Basic probability, Conditional probability, Bayes' theorem.\n- **Distributions**: Normal distribution, Binomial distribution, Poisson distribution.\n- **Bayesian Statistics (optional)**: Bayesian inference, Prior and posterior probabilities.\n\n\n📚 **References:**\n\n### General Overview\n- [Stat Quest with Josh Starmer](https://www.youtube.com/user/joshstarmer)\n- [Datatab's guide to statistics for data science](https://www.youtube.com/playlist?list=PL-p9JpwN5NNG86XAX-IALibXllMNeYpW7)\n- [Khan Academy](https://www.khanacademy.org/math/statistics-probability/)\n- [Harvard statistics 110](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uwwH80KTQ6ht66KWxbzTIo)\n\n### Descriptive Statistics\n- [Zedstatistics](https://www.youtube.com/playlist?list=PLTNMv857s9WVStKLco6ZBOsfSGXzJ1L0f)\n- [Grad Coach's descriptive statistics overview](https://www.youtube.com/watch?v=SplCk-t1BeA\u0026t=20s\u0026ab_channel=GradCoach)\n\n### Inferential Statistics\n- [Khan Academy's Inferential statistics](https://www.youtube.com/playlist?list=PLSQl0a2vh4HDl0hgK8nIBgBjLji5Eu9ar)\n- [Grad Coach's Inferential Statistics overview](https://www.youtube.com/watch?v=6E6pB5JFLgM\u0026ab_channel=GradCoach)\n\n### Distributions\n- [Zedstatistics](https://www.youtube.com/playlist?list=PLTNMv857s9WVzutwxaMb0YZKW7hoveGLS)\n\n### Bayesian Statistics\n- [ritvick math's bayesian statistics overview](https://www.youtube.com/watch?v=-1dYY43DRMA\u0026ab_channel=ritvikmath)\n\n\n\u003cdetails\u003e\n\u003csummary\u003eCode Example: Calculating Mean, Median, and Mode in Python\u003c/summary\u003e\n    \n```\nimport numpy as np\nfrom scipy import stats\n\ndata = [1, 2, 2, 3, 4, 7, 9]\n\nmean = np.mean(data)\nmedian = np.median(data)\nmode = stats.mode(data)\n```\n\n\u003c/details\u003e\n\n---\n\n## Linear algebra\n\nLinear algebra is fundamental for understanding how data is represented and manipulated in machine learning algorithms. It forms the backbone of many ML techniques, especially in deep learning where operations on large matrices are common.\n\n![Linear_subspaces_with_shading](https://github.com/user-attachments/assets/6c1ca9a4-c4dd-4cb5-ad60-af7ea59815ad)\n\n\n- **Vectors \u0026 Vector Spaces**: Addition, subtraction, scalar multiplication, dot products, linear transformations.\n- **Matrices \u0026 Matrix Operation**s: Basic concepts, addition, subtraction, multiplication, transposition, inversion.\n- **Eigenvectors \u0026 Eigenvalues**: Understanding their significance in data transformations and dimensionality reduction (PCA).\n\n📚 **References:**\n\n- [3Blue1Brown's \"Essence of Linear algebra\"](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab)\n- [MIT Linear algebra course](https://www.youtube.com/playlist?list=PLUl4u3cNGP63oMNUHXqIUcrkS2PivhN3k)\n- [Brown University slides \u0026 computational applications of linear algebra](https://codingthematrix.com/)\n\n\u003cdetails\u003e\n\u003csummary\u003eBasic matrix operations illustrated\u003c/summary\u003e\n    \n![Matrix-rules](https://github.com/user-attachments/assets/e98a2856-49df-47f3-b0d5-aeb5658c681a)\n\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCode Example: Matrix Multiplication in Python\u003c/summary\u003e\n    \n```\nimport numpy as np\n\nA = np.array([[1, 2], [3, 4]])\nB = np.array([[5, 6], [7, 8]])\n\nC = np.dot(A, B)\n```\n\u003c/details\u003e\n\n---\n\n## Calculus \n\nCalculus is essential for understanding the optimization techniques used in machine learning, particularly for gradient-based learning algorithms.\n\n![matlab](https://github.com/user-attachments/assets/65cb4b6a-15f7-4d46-92a7-e9cef469f250)\n\n\n- **Differential Calculus**: Derivatives, Partial derivatives, Gradients.\n- **Integral Calculus**: Integration, Area under curves, Summations.\n- **Multivariable Calculus**: Functions of multiple variables.\n\n📚 **References:**\n\n- [3Blue1Brown's Essense of Calculus](https://www.youtube.com/playlist?list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr)\n- [Khan academy's Multivariable calculus](https://www.khanacademy.org/math/multivariable-calculus)\n\n\u003cdetails\u003e\n\u003csummary\u003e Code Example: Calculating Gradient Descent in Python\u003c/summary\u003e\n    \n```\nimport numpy as np\n\ndef gradient_descent(x, y, learning_rate=0.01, epochs=1000):\n    w = 0\n    b = 0\n    n = len(x)\n    \n    for _ in range(epochs):\n        y_pred = w * x + b\n        dw = -2/n * sum(x * (y - y_pred))\n        db = -2/n * sum(y - y_pred)\n        w -= learning_rate * dw\n        b -= learning_rate * db\n    \n    return w, b\n\n**Example data**\n\nx = np.array([1, 2, 3, 4, 5])\ny = np.array([5, 7, 9, 11, 13])\n\nw, b = gradient_descent(x, y)\nprint(f\"Slope: {w}, Intercept: {b}\")\n```\n\n\u003c/details\u003e\n\n--- \n\n## Programming \n\nThe importance of programming is probably self explanatory. Programming skills are essential for implementing machine learning algorithms, working with data and everything else (This roadmap mainly focuses on Python).\n\n- **Python**: General syntax, Control flow, Functions, Classes, File handling, Loops and so on.\n- **Essential Data Libraries**: NumPy, pandas, matplotlib, seaborn, OpenCV, NLTK, Spacy etc...\n- **Tools**: Jupyter Notebooks, git/github, package/environment managers.\n\n📚 **References:**\n\n### Python\n- [Freecode camp's python for beginners](https://www.youtube.com/watch?v=rfscVS0vtbw\u0026t=3182s)\n- [W3 schools python](https://www.w3schools.com/python/default.asp)\n\n### Essential Data Libraries\n- [Keith Galli's complete Pandas tutorial](https://youtu.be/2uvysYbKdjM?si=rUAbKPo86p2SQqLW)\n\u003cdetails\u003e\n\u003csummary\u003eBasic Pandas cheat sheet\u003c/summary\u003e\n    \n\u003cimg width=\"880\" alt=\"Screen Shot 2024-07-26 at 11 27 33 AM\" src=\"https://github.com/user-attachments/assets/e5d5784a-c0c0-4771-a778-130f96f6dc01\"\u003e\n\n\u003c/details\u003e\n\n- [Patrick loeber's Numpy crash course](https://www.youtube.com/watch?v=9JUAPgtkKpI\u0026t=398s)\n\n\u003cdetails\u003e\n\u003csummary\u003eBasic Numpy cheat sheet\u003c/summary\u003e\n\n\u003cimg width=\"880\" alt=\"Screen Shot 2024-07-26 at 11 28 08 AM\" src=\"https://github.com/user-attachments/assets/945bd494-d8a4-4bd2-809a-e39ed4a18c01\"\u003e\n\n\u003c/details\u003e\n\n- [Neural nine's matplotlib crash course](https://www.youtube.com/watch?v=OZOOLe2imFo)\n\n- [Seaborn Tutorial](https://www.youtube.com/playlist?list=PL4GjoPPG4VqOAwSNw2I-PXUcjw1frHmW2)\n\n### Tools\n- [Conda (package manager) tutorial](https://www.youtube.com/watch?v=sDCtY9Z1bqE)\n- [Jupyter Notebooks](https://www.youtube.com/watch?v=IMrxB8Mq5KU)\n- [Mosh Hamadani's github tutorial](https://www.youtube.com/watch?v=8JJ101D3knE\u0026t=1001s)\n\n---\n\n## Data Preprocessing\n\nA simple analogy would be to think of data as the ingredients required to cook a meal. The better the quality the better the meal. \"Your ML model is only as good as your data\".\n\n- **Data Cleaning**: Handling/Imputing missing values and Removing duplicates.\n- **Detecting \u0026 Handling Outliers**: Visual Methods (Eg: Box Plots), Statistical Methods (Eg: Std, Z-score etc.), capping/flooring etc..\n- **Data Transformation**: Normalization (Feature scaling), log normalization, Standardization, Encoding categorical variables.\n- **Feature Engineering**: Creating new features (Domain Knowledge), Selecting relevant features.\n- **Handling Imbalanced Data**: Resampling (Over-Sampling, Under-Sampling), SMOTE, Class weight assignments\n- **Data Splitting**: Train-test split, Cross-validation.\n\n📚 **References:**\n\n### EDA \u0026 Cleaning\n- [Data Exploration](https://www.youtube.com/watch?v=OY4eQrekQvs\u0026t=735s)\n- [Data Cleaning](https://www.youtube.com/watch?v=qxpKCBV60U4\u0026t=69s)\n\n### Handling outliers\n- [outliers (visual approach)](https://www.youtube.com/watch?v=T-ubh8EWpTg)\n- [outliers (statistical approach)](https://www.youtube.com/playlist?list=PLeo1K3hjS3ut5olrDIeVXk9N3Q7mKhDxO)\n\n### Data transformation/feature engineering\n- [Feature scaling](https://www.youtube.com/watch?v=P3xPA7XFGCQ)\n- [log normalization](https://www.youtube.com/watch?v=xtTX69JZ92w)\n- [Encoding (one-hot, label)](https://www.youtube.com/watch?v=12Z6JBLKpts\u0026t=432s)\n\n### Handling imbalanced data\n- [Handling imbalanced data](https://www.youtube.com/watch?v=JnlM4yLFNuo\u0026t=46s)\n\n### Data splits\n- [Data splits (train-test-validation)](https://www.youtube.com/watch?v=dSCFk168vmo)\n\n\n---\n\n## Machine Learning Pt.1: Fundamentals\n\nBefore going into machine learning algorithms, it is important to undertand the different terminologies and concepts that underly these algorithms (note that this section only introduces these concepts)\n\n![overfitting-in-machine-learning](https://github.com/user-attachments/assets/091b34e6-656f-4514-89dd-8156b36a20c0)\n\n\n- **Types of Models**: Supervised, Unsupervised, Reinforcement \n- **Bias and Variance**: Overfitting and Underfitting\n- **Regularization**: L1, L2, Dropout and Early stopping\n- **Cost Functions**: MSE (regression), Log loss/binary cross entropy (Binary Classification), categorical cross entropy (Multi-class classification with one-hot encoded features), sparse categorical cross entropy (Multi-class classifcation with integer features)\n- **Optimizers**: Gradient descent, Stochastic gradient descent, small batch gradient descent, RMSprop, Adam\n\n📚 **References:**\n\n### Model Types\n- [Assembly AI's Supervised learning video](https://youtu.be/Mu3POlNoLdc?si=vV2EPwvFRGlSj19G)\n- [Assembly AI's Unsupervised learning video](https://www.youtube.com/watch?v=yteYU_QpUxs)\n- [Reinforcement learning basic concepts](https://www.youtube.com/watch?v=nIgIv4IfJ6s)\n\n### Bias \u0026 Variance \n- [Bias \u0026 Variance](https://www.youtube.com/watch?v=EuBBz3bI-aA)\n\n### Regularization\n- [Regularization](https://www.youtube.com/watch?v=EehRcPo1M-Q\u0026t=35s)\n\n### Loss functions\n- [Mean Squared Error (Regression)](https://www.youtube.com/watch?v=yt7fzvwfWHs)\n- [log loss/binary cross entropy (binary classification)](https://www.youtube.com/watch?v=ar8mUO3d05w)\n- [Categorical cross entropy (Multi-class classification)](https://www.youtube.com/watch?v=UlNB4R74z1A)\n\n### Optimizers\n- [Optimizers](https://www.youtube.com/watch?v=mdKjMPmcWjY)\n\n---\n\n## Machine Learning Pt.2: Algorithms\n\nThe statistical learning algorithms that do all the work we associate \"Ai\" with\n\n- **Supervised Algorithms**: Linear regression, Logistic regression, Decision trees, Random forests, Support vector machines, k-nearest neighbors\n- **Unsupervised Algorithms**: Clustering (k-Means, Hierarchical), Dimensionality reduction (PCA, t-SNE, LDA), recommenders (collaborative and content-based) and anomaly detection (Variational autoencoders)\n- **Ensemble Methods**: Stacking, Boosting (adaboost, XGboost etc.) and Bagging (bootstrap aggregation)\n- **Reinforcement Learning**: Q-learning, Deep Q-networks, Policy gradient methods, RLHF etc..\n- **Machine Learning Libraries**: Scikit-learn, Scikit-surprise (recommenders), Gymnasium (Reinforcement) etc.\n- **Extra**: [Choosing a model](https://youtube.com/playlist?list=PLVZqlMpoM6kaeaNvBTyoKdhMpOZzXu6AS\u0026si=EBnWyp1PNv3STXSv)\n\n📚 **References:**\n\u003cdetails\u003e\n\u003csummary\u003eBasic sk-learn cheat sheet\u003c/summary\u003e\n    \n\u003cimg width=\"881\" alt=\"Screen Shot 2024-07-26 at 11 28 48 AM\" src=\"https://github.com/user-attachments/assets/528f11e9-8284-4fdf-84fe-887b9b047621\"\u003e\n\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003emodel choice cheat sheet\u003c/summary\u003e\n\n![microsoft-machine-learning-algorithm-cheat-sheet-v7-1](https://github.com/user-attachments/assets/a58e3193-3be8-4e6c-b3dc-3313f7c93817)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMachine learning Tips \u0026 Tricks\u003c/summary\u003e\n\n[press here](Artifacts/cheatsheet-machine-learning-tips-and-tricks.pdf)\n\n\u003c/details\u003e\n  \n### [Supervised Algorithms](Artifacts/cheatsheet-supervised-learning.pdf)\n\n\n- [Linear regression](https://www.youtube.com/playlist?list=PLblh5JKOoLUIzaEkCLIUxQFjPIlapw8nU)\n  \n\u003cdetails\u003e\n\u003csummary\u003eCode Example: Linear regression with sk-learn\u003c/summary\u003e\n\n```\nfrom sklearn.linear_model import LinearRegression\nimport numpy as np\n\n# Sample data\nX = np.array([[1], [2], [3], [4], [5]])\ny = np.array([2, 4, 6, 8, 10])\n\n# Create and fit the model\nmodel = LinearRegression()\nmodel.fit(X, y)\n\n# Predict\npredictions = model.predict(X)\nprint(predictions)\n```\n\u003cdetails\u003e\n\u003csummary\u003eExample: illustration\u003c/summary\u003e\n    \n![1_Nf2tTTkALYq6RTMQmhjo1A](https://github.com/user-attachments/assets/1ba5a1c2-65cd-4d1f-b856-5d700a62e883)\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n- [Logistic regression](https://www.youtube.com/playlist?list=PLblh5JKOoLUKxzEP5HA2d-Li7IJkHfXSe)\n\n\u003cdetails\u003e\n\u003csummary\u003eCode Example: Logistic Regression with sk-learn\u003c/summary\u003e\n\n```\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.datasets import load_iris\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score\n\n# Load data\ndata = load_iris()\nX = data.data\ny = data.target\n\n# Split data\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)\n\n# Create and fit the model\nmodel = LogisticRegression(max_iter=200)\nmodel.fit(X_train, y_train)\n\n# Predict and evaluate\npredictions = model.predict(X_test)\nprint(\"Accuracy:\", accuracy_score(y_test, predictions))\n```\n\u003cdetails\u003e\n\u003csummary\u003eExample: illustration\u003c/summary\u003e\n    \n![46-4-e1715636469361](https://github.com/user-attachments/assets/7a03c495-72df-4aad-a97b-14a69b7422d0)\n\u003c/details\u003e\n\n\u003c/details\u003e\n  \n- [Decision Trees](https://www.youtube.com/playlist?list=PLblh5JKOoLUKAtDViTvRGFpphEc24M-QH)\n\u003cdetails\u003e\n\u003csummary\u003eCode Example: Decision Trees with sk-learn\u003c/summary\u003e\n\u003cdetails\u003e    \n\u003csummary\u003eExample: Classifier \u003c/summary\u003e\n    \n```\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.datasets import load_iris\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score\n\n# Load data\ndata = load_iris()\nX = data.data\ny = data.target\n\n# Split data\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)\n\n# Create and fit the model\nmodel = DecisionTreeClassifier()\nmodel.fit(X_train, y_train)\n\n# Predict and evaluate\npredictions = model.predict(X_test)\nprint(\"Accuracy:\", accuracy_score(y_test, predictions))\n\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eExample: Regressor \u003c/summary\u003e\n    \n```\nfrom sklearn.tree import DecisionTreeRegressor\nimport numpy as np\n\n# Sample data\nX = np.array([[1], [2], [3], [4], [5]])\ny = np.array([2, 4, 6, 8, 10])\n\n# Create and fit the model\nmodel = DecisionTreeRegressor()\nmodel.fit(X, y)\n\n# Predict\npredictions = model.predict(X)\nprint(predictions)\n\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eExample: illustration\u003c/summary\u003e\n\n![structure-of-a-decision-tree](https://github.com/user-attachments/assets/6667d51d-6b6b-47a2-837a-87e1d46f56dc)\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n- [Random forest](https://www.youtube.com/playlist?list=PLblh5JKOoLUIE96dI3U7oxHaCAbZgfhHk)\n  \n\u003cdetails\u003e\n\u003csummary\u003eCode Example: Random forests with sk-learn\u003c/summary\u003e\n\u003cdetails\u003e    \n\u003csummary\u003eExample: Classifier \u003c/summary\u003e\n    \n```\nfrom sklearn.ensemble import RandomForestClassifier\nfrom sklearn.datasets import load_iris\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score\n\n# Load data\ndata = load_iris()\nX = data.data\ny = data.target\n\n# Split data\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)\n\n# Create and fit the model\nmodel = RandomForestClassifier()\nmodel.fit(X_train, y_train)\n\n# Predict and evaluate\npredictions = model.predict(X_test)\nprint(\"Accuracy:\", accuracy_score(y_test, predictions))\n\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eExample: Regressor \u003c/summary\u003e\n    \n```\nfrom sklearn.ensemble import RandomForestRegressor\nimport numpy as np\n\n# Sample data\nX = np.array([[1], [2], [3], [4], [5]])\ny = np.array([2, 4, 6, 8, 10])\n\n# Create and fit the model\nmodel = RandomForestRegressor()\nmodel.fit(X, y)\n\n# Predict\npredictions = model.predict(X)\nprint(predictions)\n\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eExample: illustration\u003c/summary\u003e\n\n![istockphoto-1358738588-612x612](https://github.com/user-attachments/assets/b63eeb1c-3435-483b-8869-3a90cdddd79b)\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n- [Support vector machines (SVM)](https://www.youtube.com/playlist?list=PLblh5JKOoLUL3IJ4-yor0HzkqDQ3JmJkc)\n  \n\u003cdetails\u003e\n\u003csummary\u003eCode Example: SVMs with sk-learn\u003c/summary\u003e\n\u003cdetails\u003e    \n\u003csummary\u003eExample: Classifier \u003c/summary\u003e\n    \n```\nfrom sklearn.svm import SVC\nfrom sklearn.datasets import load_iris\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score\n\n# Load data\ndata = load_iris()\nX = data.data\ny = data.target\n\n# Split data\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)\n\n# Create and fit the model\nmodel = SVC()\nmodel.fit(X_train, y_train)\n\n# Predict and evaluate\npredictions = model.predict(X_test)\nprint(\"Accuracy:\", accuracy_score(y_test, predictions))\n\n```\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eExample: Regressor \u003c/summary\u003e\n    \n```\nfrom sklearn.svm import SVR\nimport numpy as np\n\n# Sample data\nX = np.array([[1], [2], [3], [4], [5]])\ny = np.array([2, 4, 6, 8, 10])\n\n# Create and fit the model\nmodel = SVR()\nmodel.fit(X, y)\n\n# Predict\npredictions = model.predict(X)\nprint(predictions)\n\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eExample: illustration\u003c/summary\u003e\n\n\n![Illustration-of-linear-SVM-Classifier-separating-the-two-classes-Illustration-of-linear](https://github.com/user-attachments/assets/60c4f617-a893-4aa3-a769-11c059af63f4)\n\u003c/details\u003e\n\u003c/details\u003e\n\n- [K-nearest neighbor (KNN)](https://www.youtube.com/watch?v=HVXime0nQeI\u0026t=21s)\n\n\u003cdetails\u003e\n\u003csummary\u003eCode Example: KNNs with sk-learn\u003c/summary\u003e\n\u003cdetails\u003e\n\u003csummary\u003eExample: Classifier\u003c/summary\u003e\n    \n```\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.datasets import load_iris\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score\n\n# Load data\ndata = load_iris()\nX = data.data\ny = data.target\n\n# Split data\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)\n\n# Create and fit the model\nmodel = KNeighborsClassifier()\nmodel.fit(X_train, y_train)\n\n# Predict and evaluate\npredictions = model.predict(X_test)\nprint(\"Accuracy:\", accuracy_score(y_test, predictions))\n \n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eExample: Regressor\u003c/summary\u003e\n    \n```\nfrom sklearn.neighbors import KNeighborsRegressor\nimport numpy as np\n\n# Sample data\nX = np.array([[1], [2], [3], [4], [5]])\ny = np.array([2, 4, 6, 8, 10])\n\n# Create and fit the model\nmodel = KNeighborsRegressor()\nmodel.fit(X, y)\n\n# Predict\npredictions = model.predict(X)\nprint(predictions)\n   \n```\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eExample: illustration\u003c/summary\u003e\n    \n![0_2_qzcm2gSe9l67aI](https://github.com/user-attachments/assets/703e7e16-8835-41b5-8fd2-c4b2c4f1552d)\n\n\u003c/details\u003e\n\u003c/details\u003e\n\n- [Python implementation of ML algorithms (from scratch)](https://www.youtube.com/playlist?list=PLcWfeUsAys2k_xub3mHks85sBHZvg24Jd)\n\n### [Unsupervised Algorithms](Artifacts/cheatsheet-unsupervised-learning.pdf)\n\n**Clustering**\n- [hierarchial clustering](https://www.youtube.com/watch?v=7xHsRkOdVwo)\n- [k-means clustering](https://www.youtube.com/watch?v=4b5d3muPQmA\u0026t=33s)\n\n**Dimensionality reduction**\n- [General overview of dimensionality reduction techniques](https://www.youtube.com/watch?v=jc1_yPYmspk)\n- [PCA visually explained](https://www.youtube.com/watch?v=FD4DeN81ODY)\n- [t-SNE explained](https://www.youtube.com/watch?v=NEaUSP4YerM)\n- [Linear discriminant analysis (LDA)](https://www.youtube.com/watch?v=azXCzI57Yfc)\n\n**Recommenders**\n- [Content based recommenders](https://www.youtube.com/watch?v=4sy2tpzlgg4)\n- [Collaborative filtering](https://www.youtube.com/watch?v=Fmtorg_dmM0\u0026t=7s)\n\n**Anomaly Detection**\n- [Variational Autoencoders (VAEs)](https://www.youtube.com/watch?v=fcvYpzHmhvA)\n\n### Ensemble methods\n- [Ensemble learning overview](https://www.youtube.com/watch?v=sN5ZcJLDMaE)\n\n### Reinforcement learning fundamentals\n- [Reinforcement learning 101](https://www.youtube.com/playlist?list=PLTl9hO2Oobd9kS--NgVz0EPNyEmygV1Ha)\n- [Reinforcement learning playlist 2](https://www.youtube.com/playlist?list=PLzvYlJMoZ02Dxtwe-MmH4nOB5jYlMGBjr)\n\n### Machine Learning Libraries\n- [Scikit-Learn Tutorial](https://www.youtube.com/watch?v=pqNCD_5r0IU\u0026t=6975s\u0026ab_channel=freeCodeCamp.org)\n- [Gymnasium Tutorial](https://www.youtube.com/watch?v=vufTSJbzKGU\u0026ab_channel=freeCodeCamp.org)\n\n--- \n\n## Model Evaluation and Validation\n\nIt is important to understand how your model is performing and whether it would be useful in the real world. Eg: A model with high variance would not generalize well and would therefore not perform well on unseen data.\n\n- **Metrics: Accuracy**, Precision, Recall, F1 Score, confusion matrix, ROC-AUC, MSE, R squared etc\n- **Validation Techniques**: Cross-validation, Hyperparameter tuning (Grid search, Random search), learning curves\n- **Model Explainability (Optional)**: SHAP\n \n📚 **References:**\n\n### Classification evaluation metrics\n- [Classification metrics (precision, recall, F1 score)](https://www.youtube.com/watch?v=2osIZ-dSPGE\u0026t=586s)\n- [Confusion Matrix](https://www.youtube.com/watch?v=Kdsp6soqA7o\u0026t=323s)\n- [ROC-AUC](https://www.youtube.com/watch?v=4jRBRDbJemM\u0026t=77s)\n\n### Regression evaluation metrics\n- [R squared](https://www.youtube.com/watch?v=bMccdk8EdGo\u0026t=7s)\n- [Mean Squared Error (MSE)](https://statisticsbyjim.com/regression/mean-squared-error-mse/)\n- [Mean Absolute Error (MAE)](https://medium.com/@m.waqar.ahmed/understanding-mean-absolute-error-mae-in-regression-a-practical-guide-26e80ebb97df)\n\n### Validation techniques\n- [Cross validation](https://www.youtube.com/watch?v=fSytzGwwBVw)\n- [Grid search \u0026 Randomized search (hyperparameter tuning)](https://www.youtube.com/watch?v=HdlDYng8g9s)\n- [Learning curves](https://www.youtube.com/watch?v=nt5DwCuYY5c)\n\n### Model explainability\n- [SHAP](https://www.youtube.com/playlist?list=PLqDyyww9y-1SJgMw92x90qPYpHgahDLIK)\n\n\n---\n\n## Deep Learning\n\nThis is where it gets interesting. Ever wondered how tools like GPT or Midjourney work? this is where it all starts. The idea is to build deep networks of \"neurons\" or \"perceptrons\" that use non-linear activations to understand abstract concepts that would generally confuse standard statistical models.\n\n![1_ZXAOUqmlyECgfVa81Sr6Ew](https://github.com/user-attachments/assets/0026e041-c729-42e3-b074-a398d6034156)\n\n\n- **Neural Networks**: architecture, Perceptrons, Activation functions (non-saturated \u0026 Saturated), weights \u0026 initialization, optimizers (SGD, RMSprop, Adam etc), cost/loss functions, biases, back/forward propagation, gradient clipping, vanishing/exploding gradients, batch normalization etc..\n- **[Convolutional](https://youtube.com/playlist?list=PLVZqlMpoM6kanmbatydXVhZpu3fkaTcbJ\u0026si=qq9dWdAlIAxePwoF) Neural Networks**: convolutional layers, pooling layers, dropout layers, fully connected layers, kernels, feature maps, stride, padding\n- **Recurrent Neural Networks and variants (RNNs/LSTMs/GRUs)**: recurrent units, hidden states, Back propagation through time, LSTMs (Cell State, Input Gate, Forget Gate, output Gate), GRUs (Update Gate, Reset Gate).\n- **Transformers**: encoder-decoder, self attention, multi-head attention, positional encoding.\n- **Autoencoders**: Latent variable representation (encoding/decoding), feature extraction and common types (Denoising, sparse, variational)\n- **Generative Adversarial Networks (GANs)**: Generators, Discriminators and common GAN types (Conditional \u0026 cycle)\n- **Deep Learning Libraries**: Keras, Tensorflow, Pytorch etc...\n- **Training Time Optimization**: Correct choice of kernel/weight initializer for activation function (eg: Glorot + sigmoid/tanh or He + Relu etc..), mitigating internal covariate shift using normalization (Batch normalization, layer, instance, group etc..), learning rate scheduling (decay strategies, warmup, adaptive learning rates and dynamic adjustments, etc..)\n\n📚 **References:**\n\n- [3Blue1Brown's Neural Network playlist](https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi)\n- [activation functions](https://www.youtube.com/watch?v=Fu273ovPBmQ\u0026t=324s)\n\n\u003cdetails\u003e\n\u003csummary\u003eCode Example: Building a Simple Neural Network with Keras\u003c/summary\u003e\n\n```\nimport tensorflow as tf\nfrom tensorflow.keras.models import Sequential\nfrom tensorflow.keras.layers import Dense\n\n# Load data\n(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()\nX_train, X_test = X_train / 255.0, X_test / 255.0\n\n# Build model\nmodel = Sequential([\n    Dense(128, activation='relu', input_shape=(784,)),\n    Dense(64, activation='relu'),\n    Dense(10, activation='softmax')\n])\n\n# Compile model\nmodel.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])\n\n# Train model\nmodel.fit(X_train, y_train, epochs=5, validation_data=(X_test, y_test))\n\n# Evaluate model\nloss, accuracy = model.evaluate(X_test, y_test)\nprint(f'Loss: {loss}, Accuracy: {accuracy}')\n```\n\u003c/details\u003e\n\n- [Code example: Building a neural network from scratch (Personal Project)](https://github.com/Mohammed-Majid/Image-Classification-NN)\n\n- [Convolutional Neural Networks](https://www.youtube.com/playlist?list=PLuhqtP7jdD8CD6rOWy20INGM44kULvrHu)\n\n- [Recurrent Neural Networks](https://www.youtube.com/playlist?list=PLuhqtP7jdD8ARBnzj8SZwNFhwWT89fAFr)\n\n- [Autoencoders](https://www.youtube.com/watch?v=6-fOJ79HW9U\u0026t=179s)\n\n- [Transformers](https://www.youtube.com/watch?v=_UVfwBqcnbM\u0026t=38s)\n\n- [Generative adversarial networks (GANs)](https://www.youtube.com/watch?v=8L11aMN5KY8)\n\n### Deep Learning libraries\n- [Keras Tutorial](https://www.youtube.com/watch?v=qFJeN9V1ZsI\u0026t=32s\u0026ab_channel=freeCodeCamp.org)\n- [Tensorflow Tutorial](https://youtube.com/playlist?list=PLhhyoLH6IjfxVOdVC1P1L5z5azs0XjMsb\u0026si=5crDKJ2p9cnUoQ9J)\n- [Pytorch Tutorial](https://youtube.com/playlist?list=PLhhyoLH6IjfxeoooqP9rhU3HJIAVAJ3Vz\u0026si=c3c62f97GdQdypAz)\n\n\n---\n\n## Natural Language Processing (NLP)\n\nAs the name suggests, this part focuses on technologies that deal with natural langauge (primarily text data).\n\n\u003cimg width=\"798\" alt=\"Screen Shot 2024-07-26 at 2 07 41 PM\" src=\"https://github.com/user-attachments/assets/75ad50f0-80bd-48ac-a48c-3f7631718226\"\u003e\n\n\n- **Text Preprocessing**: Tokenization (word, subword, character), Lemmatization, Stemming, stop-word removal\n- **Text Representation (Feature Extraction)**: N-grams (Bi-grams, Tri-grams), Bag of Words (Count Vectors, Binary Vectors), TF-IDF, Word Embeddings (Word2Vec, GloVe, FastText), Cosine similarity\n- **NLP Models**: Sentiment analysis, Named entity recognition (NER), Machine translation, Language models etc.\n- **Model Optimization**: Quantization, Pruning, Fine tuning, Prompt tuning\n- **Specialized Techniques**: Zero-shot learning, Few-shot learning, Prompt Engineering, sequence/tree of prompts, self supervised learning, semi-supervised learning, RAG, topic modeling (LDA, NMF)\n- **Large Language Models(LLMs)**: Working with APIs, local/Open-Source LLMs, huggingface transformers, Langchain etc.\n\n📚 **References:**\n\n### Preprocessing \n- [Tokenization](https://www.youtube.com/watch?v=_lR3RjvYvF4)\n- [Stemming and Lemmatization](https://www.youtube.com/watch?v=HHAilAC3cXw)\n\n### Text feature extraction\n- [N-grams](https://www.youtube.com/watch?v=nZromH6F7R0)\n- [Bag of words](https://www.youtube.com/watch?v=Yt1Sw6yWjlw)\n- [TF-IDF](https://www.youtube.com/watch?v=ATK6fm3cYfI)\n- [Word Embeddings](https://www.youtube.com/watch?v=Do8cVbx-HOs)\n- [Cosine Similarity](https://www.youtube.com/watch?v=m_CooIRM3UI\u0026t=539s)\n\n### Optimizing NLP models\n- [Quantization](https://www.youtube.com/watch?v=qqN63hbziaI)\n- [Quantization \u0026 Pruning explained](https://www.youtube.com/watch?v=UcwDgsMgTu4\u0026t=359s)\n- [Fine tuning GPT](https://www.youtube.com/watch?v=y_VtqdK6io0)\n- [Fine tuning LLMs](https://www.youtube.com/watch?v=eC6Hd1hFvos\u0026t=18s)\n- [Prompt tuning](https://www.youtube.com/watch?v=T_QhHvRxqUg)\n\n- [LLM training simple overview](https://masteringllm.medium.com/llm-training-a-simple-3-step-guide-you-wont-find-anywhere-else-98ee218809e5)\n- [RAG](https://www.youtube.com/watch?v=Ylz779Op9Pw)\n- [Self-supervised learning](https://www.youtube.com/watch?v=sJzuNAisXHA)\n- [Direct Preference Optimization](https://www.youtube.com/watch?v=XZLc09hkMwA)\n- [Prompt engineering](https://www.youtube.com/watch?v=aOm75o2Z5-o\u0026t=5s)\n\n### Working with models \n- [local LLMs with LM Studio](https://www.youtube.com/watch?v=yBI1nPep72Q\u0026t=75s)\n- [Huggingface transformers library](https://www.youtube.com/watch?v=jan07gloaRg)\n- [Langchain](https://www.youtube.com/watch?v=mrjq3lFz23s\u0026t=61s)\n- [Open AI API](https://www.youtube.com/watch?v=czvVibB2lRA\u0026t=393s)\n\n---\n\n## Computer Vision (CV)\n\nAs the name suggests, this part focuses on technologies that deal with visual data (primarily images and video).\n\n\u003cimg width=\"800\" alt=\"Screen Shot 2024-07-26 at 2 06 20 PM\" src=\"https://github.com/user-attachments/assets/ce46fb5c-fee4-46c6-8464-46d0bdd6e94e\"\u003e\n\n\n- **Image Preprocessing**: Resizing, Normalization, Augmentation, Noise Reduction (Gaussian blurring, median filtering, bilateral filtering)\n- **Feature Extraction**: Edge Detection, Histograms of Oriented Gradients (HOG), Keypoints and Descriptors (SIFT, SURF, LBP), Frequency domain representation (Forrier transform \u0026 Wavelet transofrm), texture analysis (Co-occurrence Matrices, Gabor Filters), dimensionality reduction \n- **Image Representation**: Pixel values (Grey scale, RGB, multichannel, normalization), Color spaces, Feature maps (convolutional features, activation maps, pooled features)\n- **CV Models**: Image Classification (ResNet, VGG), Object Detection (YOLO, Faster R-CNN, MobileNet), Image Segmentation (U-Net, Mask R-CNN), Semantic Segmentation (Mask R-CNN), Instance Segmentation (Mask R-CNN) Panoptic Segmentation (Panoptic FPN) Image Generation (GANs, VAEs, Stable Diffusion), Image Captioning (Show and Tell, Show, Attend and Tell, Image Transformer).\n- **Model Optimization**: Quantization, Pruning, Knowledge Distillation, Hyperparameter Tuning\n- **Specialized Techniques**: Transfer Learning, Few-Shot Learning, Style Transfer, Image Super-Resolution, Zero-Shot Learning, One-shot Learning\n- **Advanced Topics**:\n  - **3D Vision**: Depth Estimation, Heat Maps, 3D Reconstruction, and Stereo Vision.\n  - **Video Analysis**: Action Recognition, Object Tracking, Video Segmentation.\n- **Working with APIs and Tools**: OpenCV, TensorFlow, PyTorch, Pre-trained Models, Deployment (ONNX, TensorRT)\n- **Extras**: [Here's my take on CNNs](https://medium.com/@mohammed-majid/beyond-the-surface-decoding-the-mechanics-of-convolutional-neural-networks-cnns-a3ee2e5f37c4)\n\n📚 **References:**\n\n### Image Preprocessing\n- [Image Preprocessing](https://www.youtube.com/watch?v=kSqxn6zGE0c)\n\n### Feature extraction\n- [Edge Detection](https://www.youtube.com/watch?v=4xq5oE9jJZg)\n- [Histograms of Oriented Gradients (HOG)](https://www.youtube.com/watch?v=5nZGnYPyKLU)\n- [Feature detection overview](https://www.youtube.com/playlist?list=PLSK7NtBWwmpR8VfRwSLrflmmthToXzTe_)\n- [SIFT](https://www.youtube.com/watch?v=KgsHoJYJ4S8)\n\n### Object detection models\n- [YOLO](https://www.youtube.com/watch?v=ag3DLKsl2vk\u0026t=489s)\n- [Faster R-CNN](https://www.youtube.com/playlist?list=PL8hTotro6aVG6prsY92ZNVBNPr1PkXgsP)\n\n### Image classification models\n- [ResNet](https://www.youtube.com/watch?v=o_3mboe1jYI\u0026t=392s)\n\n### Image segmentation models\n- [U-Net](https://www.youtube.com/watch?v=NhdzGfB1q74\u0026t=81s)\n- [Mask R-CNN](https://www.youtube.com/watch?v=4tkgOzQ9yyo)\n\n### Generative models\n- [Stable Diffusion](https://www.youtube.com/watch?v=sFztPP9qPRc\u0026t=3s)\n\n### Specialized techniques\n- [Style transfer](https://www.youtube.com/playlist?list=PLBoQnSflObcmbfshq9oNs41vODgXG-608)\n- [Image super resolution](https://www.youtube.com/watch?v=KULkSwLk62I)\n\n### 3D vision\n- [Depth estimation](https://www.youtube.com/watch?v=CpA2WAvynb0)\n- [3D reconstruction](https://www.youtube.com/watch?v=tqBD6rxiul4\u0026t=71s)\n- [Stereo Vision](https://www.youtube.com/watch?v=KOSS24P3_fY)\n\n### Working with videos\n- [Human-based action recognition in videos](https://www.mdpi.com/2297-8747/28/2/61)\n- [Overview of object tracking](https://supervisely.com/blog/complete-guide-to-object-tracking-best-ai-models-tools-and-methods-in-2023/)\n- [Single \u0026 Multiple object tracking](https://www.youtube.com/@multipleobjecttracking1226/playlists)\n- [Video Segmentation](https://www.v7labs.com/blog/video-segmentation-guide#:~:text=Video%20segmentation%20is%20the%20process,texture%2C%20or%20other%20visual%20features.)\n\n---\n\n## Data Niches\n\nThis section covers more complex, abstract and niche data types.\n\n\u003cimg width=\"546\" alt=\"Screen Shot 2024-07-28 at 4 15 54 AM\" src=\"https://github.com/user-attachments/assets/041f7658-12eb-4e85-8823-2cb4edb2bca1\"\u003e\n\n\n\n- **Time series Data**: Trends, seasonality, noise, cycles, stationarity, decomposition, differencing, autocorrelation, forecasting, libraries (Statsmodels, Prophet, PyFlux etc..) and models (ARIMA, Exponential smoothing, SARIMA etc)\n\n- **Geospatial Data**: Coordinate systems (latitude, longitude), projections, shapefiles, GeoJSON, spatial joins, distance calculations, mapping libraries (GeoPandas, Folium, Shapely, etc.), and spatial analysis techniques (buffering, overlay, spatial clustering, etc.)\n\n- **Network/graph Data**: Graph representation, nodes, edges, adjacency matrices, graph traversal algorithms (BFS, DFS), centrality measures (degree, closeness, betweenness, eigenvector),link measures, community detection, network visualization (NetworkX, Gephi, Cytoscape), deep graph library and PyTorch Geometric\n\n- **Audio Data**: Feature extraction (MFCCs, spectrograms), audio preprocessing (normalization, noise reduction), signal processing, audio classification, libraries (Librosa, PyDub), and techniques (Fourier Transform, Short-Time Fourier Transform)\n\n- **Multimodal Data**: Data integration (e.g., text and images, audio and video), feature fusion, modality alignment, joint representation learning, applications in recommendation systems, multi-modal sentiment analysis, and data fusion techniques.\n\n- **Biological Data**: DNA sequences, protein structures, genomic variations, biological networks, molecular dynamics, libraries (Biopython, PySCeS), and techniques (sequence alignment, structural bioinformatics).\n\n- **Astronomical Data**: Star catalogs, galaxy surveys, light curves, cosmic microwave background data, celestial object tracking, libraries (AstroPy, HEAsoft), and techniques (source extraction, cosmic event detection).\n\n\n📚 **References:**\n\n### Time Series Analysis\n\n- [Time series analysis overview](https://www.youtube.com/playlist?list=PLvcbYUQ5t0UHOLnBzl46_Q6QKtFgfMGc3)\n- [Time series analysis overview 2](https://www.youtube.com/playlist?list=PLmPJQXJiMoUVr07-VnwDiki89DqyuSS21)\n\n### Geospastial Data Analysis\n- [Spatial data science intro](https://www.youtube.com/playlist?list=PLzREt6r1NenmFyTw8v2JZpEE4PZGNi5Ht)\n- [Geospatial data analysis](https://www.youtube.com/playlist?list=PLyWyQBSWLw1OF3RGVWToPkqe_pfx4TcPW)\n\n### Network Analysis\n- [Intro to network data analysis](https://www.youtube.com/playlist?list=PLw1OxksNk6iaJrLdvkuY6Y3U4NaJn3GCD)\n\n### Audio Data Analysis\n- [Audio signal processing for machine learning](https://www.youtube.com/playlist?list=PL-wATfeyAMNqIee7cH3q1bh4QJFAaeNv0)\n- [Rob Mulla's audio data processing video](https://www.youtube.com/watch?v=ZqpSb5p1xQo\u0026ab_channel=RobMulla)\n\n### Multimodal Data Analysis\n- [Multimodal machine learning](https://www.youtube.com/playlist?list=PLki3HkfgNEsKPcpj5Vv2P98SRAT9wxIDa)\n\n### Biological data\n- [Bioinformatics in python](https://www.youtube.com/playlist?list=PLpSOMAcxEB_hD18TAtBrTlRJDyu-PmRbj)\n- [Quantitative biological research in python](https://www.youtube.com/playlist?list=PL0OdA9z6mGN2TjpvvetBIyXZh7sjiK_F-)\n\n### Astronomical data\n- [Python for astronomical data analysis](https://www.youtube.com/watch?v=H9KefzbryEw\u0026t=1296s\u0026ab_channel=freeCodeCamp.org)\n- [Artifical intelligence for lunar exploration](https://www.youtube.com/playlist?list=PL7HQvd_RTCc0stsO2NWXpfeOsWpje_Yjk)\n- [Astronomocal Machine learning guided project](https://www.youtube.com/watch?v=l4Zb3-gI_h8\u0026ab_channel=Spartificial)\n\n---\n\n## Deployment\n\nDeploying machine learning models to production.\n\n- **Model Serving**: Flask, FastAPI, Streamlit, TensorFlow Serving\n- **Persisting Models**: Pickle \u0026 Joblib\n- **Containerization**: Docker, Kubernetes\n- **Cloud Services**: AWS, Google Cloud, Azure and IBM Watson\n\n📚 **References:**\n\n### Model serving\n- [Flask tutorial](https://www.youtube.com/watch?v=Z1RJmh_OqeA)\n- [Flask ML web app](https://www.youtube.com/watch?v=qNF1HqBvpGE\u0026t=2657s)\n- [Fast API](https://www.youtube.com/watch?v=tLKKmouUams)\n- [Streamlit tutorial series](https://www.youtube.com/playlist?list=PLtqF5YXg7GLmCvTswG32NqQypOuYkPRUE)\n- [Tensorflow model serving](https://www.youtube.com/watch?v=P-5sMcpTE0g)\n\n### Model persistence\n- [Model persistence](https://www.youtube.com/watch?v=jwhSLGmBEpU\u0026t=20s)\n\n### Containerization\n- [Docker tutorial](https://www.youtube.com/watch?v=pTFZFxd4hOI\u0026t=159s)\n- [Kubernetes](https://www.youtube.com/watch?v=X48VuDVv0do)\n\n\n---\n\n\u003cdetails\u003e\n  \u003csummary\u003eClick here if you're ready for more\u003c/summary\u003e\n  \n  ## Notable Extras (Random fun stuff)\n\n  - **GPU Acceleration Libraries**: CUML and CUDF from RAPIDs (SkLearn)\n  - **CI/CD for ML**: Automated Pipelines (enkins, GitLab CI, and CircleCI), Versioning (DVC, MLflow), experiment/metadata tracking (MLflow).\n  - **Model Monitoring**: Tracking model performance and detecting [drift](https://www.youtube.com/watch?v=uOG685WFO00) using tools like Prometheus, Grafana, and custom monitoring solutions.\n  - **System Design**: [Freecodecamp's video](https://www.youtube.com/watch?v=F2FmTdLtb_4)\n  - **Database design**: [Freecodecamp's video](https://www.youtube.com/watch?v=ztHopE5Wnpc), [Practice SQL](https://sqlbolt.com/)\n  - **OCR Libraries**: [Tesseract OCR](https://www.youtube.com/watch?v=PY_N1XdFp4w\u0026t=32s), [EasyOCR](https://www.youtube.com/watch?v=GboDfGzkRsQ)\n    \n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eextra resources (Books, newsletters etc)\u003c/summary\u003e\n    \n- [ML Blogs \u0026 Newsletters](https://github.com/josephmisiti/awesome-machine-learning/blob/master/blogs.md)\n- [ML Books](https://github.com/josephmisiti/awesome-machine-learning/blob/master/books.md)\n- [List of ML courses (free and paid)](https://github.com/josephmisiti/awesome-machine-learning/blob/master/courses.md)\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohammed-majid%2Fml_roadmap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohammed-majid%2Fml_roadmap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohammed-majid%2Fml_roadmap/lists"}