├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── CONTRIBUTING.md ├── Code-Of-Conduct.md ├── Images ├── README.md └── readme_image.png ├── LICENSE ├── Machine-Learning-Articles └── ml-articles.md ├── Machine-Learning-Concepts ├── Data-Preparation │ ├── Data-Preprocessing.ipynb │ ├── Feature-Importance │ │ ├── Feature Importance Demo.ipynb │ │ ├── Feature Importance.ipynb │ │ └── README.md │ └── README.md ├── README.md ├── Supervised-Learning │ ├── Classification │ │ ├── Building-Clasification-models │ │ │ └── README.md │ │ ├── Classification-model-demo │ │ │ └── README.md │ │ ├── Classifier-Performance-Measures │ │ │ └── README.md │ │ └── README.md │ ├── README.md │ └── Regression │ │ ├── Linear-Regressor-or-Single-Variable-Regressor │ │ ├── Linear-Regressor-or-Single-Variable-regressor.ipynb │ │ └── README.md │ │ ├── Multivariable-Regressor │ │ ├── Multivariable-Regressors.ipynb │ │ └── README.md │ │ └── README.md └── Unsupervised-Learning │ ├── Clustering │ ├── Building-Cluster-Algorithms │ │ ├── K-Means Clustering.ipynb │ │ ├── Mean-Shift-Algorithm.ipynb │ │ └── README.md │ ├── README.md │ └── clustering-performance-measures │ │ ├── README.md │ │ └── Silhouette Analysis.ipynb │ └── README.md ├── Machine-Learning-Courses └── ml-courses.md ├── Machine-Learning-Podcasts └── ml-podcasts.md ├── Machine-Learning-Repositories └── ml-repositories.md ├── Machine-Learning-Roadmap └── Roadmap.md ├── Python-Resources └── resources.md ├── README.md └── _config.yml /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Problem Report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the problem** 11 | Please Give A clear explanation of what the problem is.op; 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | 27 | **Additional context** 28 | Add any other context about the problem here. 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .nox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *.cover 49 | *.py,cover 50 | .hypothesis/ 51 | .pytest_cache/ 52 | cover/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | .pybuilder/ 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # IPython 82 | profile_default/ 83 | ipython_config.py 84 | 85 | # pyenv 86 | # For a library or package, you might want to ignore these files since the code is 87 | # intended to run in multiple environments; otherwise, check them in: 88 | # .python-version 89 | 90 | # pipenv 91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 94 | # install all needed dependencies. 95 | #Pipfile.lock 96 | 97 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 98 | __pypackages__/ 99 | 100 | # Celery stuff 101 | celerybeat-schedule 102 | celerybeat.pid 103 | 104 | # SageMath parsed files 105 | *.sage.py 106 | 107 | # Environments 108 | .env 109 | .venv 110 | env/ 111 | venv/ 112 | ENV/ 113 | env.bak/ 114 | venv.bak/ 115 | 116 | # Spyder project settings 117 | .spyderproject 118 | .spyproject 119 | 120 | # Rope project settings 121 | .ropeproject 122 | 123 | # mkdocs documentation 124 | /site 125 | 126 | # mypy 127 | .mypy_cache/ 128 | .dmypy.json 129 | dmypy.json 130 | 131 | # Pyre type checker 132 | .pyre/ 133 | 134 | # pytype static type analyzer 135 | .pytype/ 136 | 137 | # Cython debug symbols 138 | cython_debug/ -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # CONTRIBUTION GUIDELINES 2 | 3 | We are very excited to have you with us! 4 | 5 | ## Project Guidelines 6 | 7 | - Use the `[Title Case Name](link)` format. 8 | - All Folders and Files should contain `-` inplace of ` ` or `_`. 9 | - Use concise descriptions. 10 | - Pull requests should have a useful title. 11 | - To add any Machine Learning concept, create a folder in the ML Concepts folder with a relevant category. 12 | - Add the concept to be added with detailed explanations. 13 | - if there are packages to be installed, create a `requirements.txt` file stating out the packages to be installed. 14 | - Each folder should contain an `Introduction.md` file. 15 | - The file should contain a brief introduction to folder. 16 | - Notebook's Table ( for reference look at this [Introduction.md](./Machine-Learning-Concepts/Introduction.md) ) 17 | - Any other resource or blog you think is appropriate or explains the meaning of your folder. 18 | - Codes can be contributed using jupyter notebooks and `.py`, `.r` or `.jl` files. But jupyter notebooks will be much appreciated because they support a clear explanation of code. 19 | 20 | ## Follow these instructions for contributions. 21 | 22 | - Open your terminal and clone it on your machine: 23 | 24 | ```bash 25 | git clone https://github.com/EdemGold/Nutshell-Machine-Learning.git 26 | ``` 27 | 28 | - Create a new branch with this convention `broadtopic/notebooktopic` 29 | 30 | ```bash 31 | git checkout -b broadtopic/notebooktopic 32 | ``` 33 | 34 | - Commit all the changes (use descriptive commit messages) 35 | 36 | ```bash 37 | git commit -m "a descriptive commit message" 38 | ``` 39 | 40 | - Make a PR on Github; use a descriptive PR title to specify the change(s) made. 41 | 42 | - Complete the changes and when ready push with this command.(for first time contributors only) 43 | 44 | ```bash 45 | git push -u origin broadtopic/notebooktopic 46 | ``` 47 | 48 | - Complete your changes and when ready, you can now just use push. 49 | 50 | ```bash 51 | git push 52 | ``` 53 | 54 | ## Other Rules 55 | 56 | - Any contribution is welcomed such as fixing grammatical errors, fixing broken links, adding resources, etc. 57 | - Before contributing, here's our [Code of Conduct](./Code-Of-Conduct.md) which must be adhered to. 58 | - Verify that any resource(s) to be added isn't already present in the repo, as yours may be a duplicate. 59 | -------------------------------------------------------------------------------- /Code-Of-Conduct.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | - Demonstrating empathy and kindness toward other people 21 | - Being respectful of differing opinions, viewpoints, and experiences 22 | - Giving and gracefully accepting constructive feedback 23 | - Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | - Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | - The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | - Trolling, insulting or derogatory comments, and personal or political attacks 33 | - Public or private harassment 34 | - Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | - Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | . 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available [here](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html). 119 | 120 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 121 | enforcement ladder](https://github.com/mozilla/diversity). 122 | 123 | [homepage]: https://www.contributor-covenant.org 124 | 125 | For answers to common questions about this code of conduct, see the [FAQ](https://www.contributor-covenant.org/faq). Translations are available [here](https://www.contributor-covenant.org/translations). 126 | -------------------------------------------------------------------------------- /Images/README.md: -------------------------------------------------------------------------------- 1 | # Repositry images 2 | 3 | These is a repository where all images contained in the repository are located. -------------------------------------------------------------------------------- /Images/readme_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EdemGold/Nutshell-Machine-Learning/22dabb09a582e9e00c663a7531c534143920b2ac/Images/readme_image.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Edem Gold 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Machine-Learning-Articles/ml-articles.md: -------------------------------------------------------------------------------- 1 | # Machine Learning Articles 2 | 3 | - [Intro to Machine Learning](https://kush01.hashnode.dev/intro-to-machine-learning) 4 | - [Machine Learning in a Nutshell](https://goldedem.hashnode.dev/machine-learning-in-a-nutshell) 5 | - [How to Build Better Machine Learning Models](https://www.freecodecamp.org/news/how-to-build-better-machine-learning-models/) 6 | - [Why Python is best suited for Machine Learning](https://goldedem.hashnode.dev/why-python-is-best-suited-for-machine-learning) 7 | - [Anacondas and Machine Learning](https://goldedem.hashnode.dev/anacondas-and-machine-learning) 8 | - [Machine Learning Project – How to Analyze and Clean Data, Create an ML Model, and Set Up an API](https://www.freecodecamp.org/news/data-science-and-machine-learning-project-house-prices/) 9 | - [What is MLOps? Machine Learning Operations Explained](https://www.freecodecamp.org/news/what-is-mlops-machine-learning-operations-explained/) 10 | - [Beginners Learning Path for Machine Learning](https://dev.to/ahmadmustafaan1/beginners-learning-path-for-machine-learning-50ka) 11 | - [Machine Learning Specialisation Courses for Advanced ML Practitioners](https://www.freecodecamp.org/news/machine-learning-specialisation-courses-for-advanced-ml-practitioners/) 12 | - [Machine Learning in Python – The Top New Scikit-Learn 0.24 Features You Should Know](https://www.freecodecamp.org/news/machine-learning-python-new-scikit-learn-features-you-should-know/) 13 | - [How to Improve Machine Learning Model Performance by Combining Categorical Features](https://www.freecodecamp.org/news/improve-machine-learning-model-performance-by-combining-categorical-features/) 14 | - [Machine Learning Systems Book Recommendations – Learn How to Build and Understand ML Systems](https://www.freecodecamp.org/news/machine-learning-systems-book-recommendations/) 15 | - [Machine Learning Log](https://dev.to/madeline_pc/series/8054) 16 | - [What Is a Convolutional Neural Network? A Beginner's Tutorial for Machine Learning and Deep Learning](https://www.freecodecamp.org/news/convolutional-neural-network-tutorial-for-beginners/) 17 | - [How to Deploy a Machine Learning Model for Free – 7 ML Model Deployment Cloud Platforms](https://www.freecodecamp.org/news/deploy-your-machine-learning-models-for-free/) 18 | - [Machine Learning Log](https://dev.to/madeline_pc/series/8054) 19 | - [How to Learn Machine Learning – Tips and Resources to Learn ML the Practical Way](https://www.freecodecamp.org/news/how-to-learn-machine-learning-practical-tips-and-resources/) 20 | - [Everything about Machine Learning Open Sourced](https://goldedem.hashnode.dev/everything-about-machine-learning-open-sourced) 21 | - [How to Automate Machine Learning Model Publishing with the Gitlab Package Registry](https://www.freecodecamp.org/news/ml-model-publishing-with-gitlab-package-registry/) 22 | - [Machine Learning Directly in SQL – How to Use ML in Databases](https://www.freecodecamp.org/news/machine-learning-directly-in-sql/) 23 | - [Crack the top 40 machine learning interview questions](https://dev.to/educative/crack-the-top-40-machine-learning-interview-questions-1e2c) 24 | - [All Python Libraries You Need For Machine Learning And Data Science](https://patloeber.com/python-libraries-for-machine-learning) 25 | - [Metrics to evaluate your Machine Learning algorithm](https://apoorvtyagi.tech/metrics-to-evaluate-your-machine-learning-algorithm) 26 | - [Artificial Intelligence vs Machine Learning vs Deep Learning](https://dev.to/decipherzonesoft/artificial-intelligence-vs-machine-learning-vs-deep-learning-568n) 27 | - [How I'm learning Machine Learning (without being a math genius)](https://dev.to/diegoisco/how-i-m-learning-machine-learning-without-being-a-math-genius-1g4c) 28 | - [MLOPs And Machine Learning RoadMap](https://dev.to/seattledataguy/mlops-and-machine-learning-roadmap-o7p) 29 | - [Machine Learning - Introduction](https://dev.to/sandeepbalachandran/machine-learning-introduction-400o) 30 | - [How to get started with machine learning](https://dev.to/duomly/4-steps-to-become-a-machine-learning-engineer-4hlh) 31 | - [Python - A Machine Learning Champ](https://blog.codekaro.info/python-a-machine-learning-champ) 32 | - [Do you need math to get started with machine learning?](https://madelinecaples.hashnode.dev/do-you-need-math-to-get-started-with-machine-learning) 33 | - [A list of the tools you will need for machine learning in Python.](https://prathamprasoon.codes/a-list-of-the-tools-you-will-need-for-machine-learning-in-python) 34 | - [This is what your first 30 days of machine learning should look like.](https://prathamprasoon.codes/this-is-what-your-first-30-days-of-machine-learning-should-look-like) 35 | - [The beginner's guide to the math for machine learning](https://prathamprasoon.codes/the-beginners-guide-to-the-math-for-machine-learning) 36 | - [You don't need to know complex math to get started with machine learning!](https://prathamprasoon.codes/you-dont-need-to-know-complex-math-to-get-started-with-machine-learning) 37 | - [Artificial Intelligence Vs Machine Learning Vs Deep Learning: A Quick Comparison](https://dev.to/nyior/artificial-intelligence-vs-machine-learning-vs-deep-learning-a-quick-comparison-22ii) 38 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Data-Preparation/Data-Preprocessing.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "38f40668", 6 | "metadata": {}, 7 | "source": [ 8 | "# Data Preparation" 9 | ] 10 | }, 11 | { 12 | "cell_type": "markdown", 13 | "id": "a03457b1", 14 | "metadata": {}, 15 | "source": [ 16 | "When you get data it is sometimes not in the right format and before you can input data to your Machine Learning Models you have to prepare it (clean the data)" 17 | ] 18 | }, 19 | { 20 | "cell_type": "markdown", 21 | "id": "3e028152", 22 | "metadata": {}, 23 | "source": [ 24 | "## Pre-Processing the Data" 25 | ] 26 | }, 27 | { 28 | "cell_type": "markdown", 29 | "id": "9f508b30", 30 | "metadata": {}, 31 | "source": [ 32 | "### Steps fopr Data Preprocessing" 33 | ] 34 | }, 35 | { 36 | "cell_type": "markdown", 37 | "id": "ed6beca1", 38 | "metadata": {}, 39 | "source": [ 40 | "## Step 1: Import Useful packages" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": 1, 46 | "id": "78dc736c", 47 | "metadata": {}, 48 | "outputs": [], 49 | "source": [ 50 | "import numpy as np\n", 51 | "\n", 52 | "import sklearn.preprocessing as sp" 53 | ] 54 | }, 55 | { 56 | "cell_type": "markdown", 57 | "id": "ecf5d5f7", 58 | "metadata": {}, 59 | "source": [ 60 | "## Step 2: Getting the data" 61 | ] 62 | }, 63 | { 64 | "cell_type": "code", 65 | "execution_count": 2, 66 | "id": "c59b1af9", 67 | "metadata": {}, 68 | "outputs": [], 69 | "source": [ 70 | "#we are going to create a sample array\n", 71 | "input_data = np.array([[2.1, -1.4, 3.2], [3.2, 1.4, 4.0], [1.3, 4.3, 2.]])" 72 | ] 73 | }, 74 | { 75 | "cell_type": "markdown", 76 | "id": "3d699127", 77 | "metadata": {}, 78 | "source": [ 79 | "## Step 3: Applying Pre-Processing Technique" 80 | ] 81 | }, 82 | { 83 | "cell_type": "markdown", 84 | "id": "8de58d23", 85 | "metadata": {}, 86 | "source": [ 87 | "### Techniques for Data Preprocessing " 88 | ] 89 | }, 90 | { 91 | "cell_type": "markdown", 92 | "id": "7517b410", 93 | "metadata": {}, 94 | "source": [ 95 | "## Binarization" 96 | ] 97 | }, 98 | { 99 | "cell_type": "markdown", 100 | "id": "75e722d4", 101 | "metadata": {}, 102 | "source": [ 103 | "\n", 104 | "This is a preprocesing technique where we turn our numerical values into boolean((yes/no), (1/0))" 105 | ] 106 | }, 107 | { 108 | "cell_type": "code", 109 | "execution_count": 3, 110 | "id": "1f308d3a", 111 | "metadata": {}, 112 | "outputs": [ 113 | { 114 | "name": "stdout", 115 | "output_type": "stream", 116 | "text": [ 117 | "Binarized data:\n" 118 | ] 119 | }, 120 | { 121 | "data": { 122 | "text/plain": [ 123 | "array([[1., 0., 1.],\n", 124 | " [1., 1., 1.],\n", 125 | " [1., 1., 1.]])" 126 | ] 127 | }, 128 | "execution_count": 3, 129 | "metadata": {}, 130 | "output_type": "execute_result" 131 | } 132 | ], 133 | "source": [ 134 | "binarizer = sp.Binarizer().fit(input_data)\n", 135 | "\n", 136 | "print(\"Binarized data:\")\n", 137 | "binarizer.transform(input_data)" 138 | ] 139 | }, 140 | { 141 | "cell_type": "markdown", 142 | "id": "a5cb210b", 143 | "metadata": {}, 144 | "source": [ 145 | "## Mean Removal" 146 | ] 147 | }, 148 | { 149 | "cell_type": "markdown", 150 | "id": "eb46b72d", 151 | "metadata": {}, 152 | "source": [ 153 | "This is a preprocessing technique where you remove the mean from every feature vector so that every feature will thenhave zero as their mean" 154 | ] 155 | }, 156 | { 157 | "cell_type": "code", 158 | "execution_count": 4, 159 | "id": "8da98175", 160 | "metadata": {}, 161 | "outputs": [ 162 | { 163 | "name": "stdout", 164 | "output_type": "stream", 165 | "text": [ 166 | "mean: [2.2 1.43333333 3.06666667]\n", 167 | "std_dev: [0.7788881 2.32713462 0.82192187]\n" 168 | ] 169 | } 170 | ], 171 | "source": [ 172 | "\n", 173 | "#we will find the meand and standard deviation of the inout_data array, and output them. \n", 174 | "\n", 175 | "mean = input_data.mean(axis=0)\n", 176 | "\n", 177 | "std_deviation = input_data.std(axis=0)\n", 178 | "\n", 179 | "print(\"mean:\", str(mean))\n", 180 | "\n", 181 | "print(\"std_dev:\", str(std_deviation))" 182 | ] 183 | }, 184 | { 185 | "cell_type": "code", 186 | "execution_count": 5, 187 | "id": "3d1d47f4", 188 | "metadata": {}, 189 | "outputs": [ 190 | { 191 | "name": "stdout", 192 | "output_type": "stream", 193 | "text": [ 194 | "scaled data mean: [-7.40148683e-17 0.00000000e+00 3.70074342e-16]\n", 195 | "scaled data std_deviation: [1. 1. 1.]\n" 196 | ] 197 | } 198 | ], 199 | "source": [ 200 | "#Now we will remove the mean and Standardd deviation of the input_data array\n", 201 | "scaled_data = sp.scale(input_data)\n", 202 | "\n", 203 | "#now the mean of the input_data array have been removed and saved to the variable scaled_data\n", 204 | "#see proof below\n", 205 | "mean = scaled_data.mean(axis=0)\n", 206 | "\n", 207 | "std_deviation = scaled_data.std(axis=0)\n", 208 | "\n", 209 | "print(\"scaled data mean:\", str(mean))\n", 210 | "\n", 211 | "print(\"scaled data std_deviation:\", str(std_deviation))" 212 | ] 213 | }, 214 | { 215 | "cell_type": "markdown", 216 | "id": "c659c1ad", 217 | "metadata": {}, 218 | "source": [ 219 | "## Scaling" 220 | ] 221 | }, 222 | { 223 | "cell_type": "markdown", 224 | "id": "1aa47cad", 225 | "metadata": {}, 226 | "source": [ 227 | "Scaling (AKA as Feature Scaling) is simply the act of normalizing the range of values in the data set. In simple words, some values in the data array are sometimes too big or too small and so feature scaling helps to make the data look organized" 228 | ] 229 | }, 230 | { 231 | "cell_type": "code", 232 | "execution_count": 7, 233 | "id": "8605bfd2", 234 | "metadata": {}, 235 | "outputs": [ 236 | { 237 | "name": "stdout", 238 | "output_type": "stream", 239 | "text": [ 240 | "Min Max Scaled Data: [[0.42105263 0. 0.6 ]\n", 241 | " [1. 0.49122807 1. ]\n", 242 | " [0. 1. 0. ]]\n" 243 | ] 244 | } 245 | ], 246 | "source": [ 247 | "#Min Max scaling\n", 248 | "\n", 249 | "#here we are providing the range which the data will be scaled\n", 250 | "data_scaler_minmax = sp.MinMaxScaler(feature_range=(0,1))\n", 251 | "\n", 252 | "#now we are fitting the scaled minmax with the input_data array\n", 253 | "data_scaled_minmax = data_scaler_minmax.fit_transform(input_data)\n", 254 | "\n", 255 | "#now we output our scaled data\n", 256 | "print(\"Min Max Scaled Data:\", str(data_scaled_minmax))" 257 | ] 258 | }, 259 | { 260 | "cell_type": "markdown", 261 | "id": "25cb6c96", 262 | "metadata": {}, 263 | "source": [ 264 | "## Normalization" 265 | ] 266 | }, 267 | { 268 | "cell_type": "markdown", 269 | "id": "b4ebf581", 270 | "metadata": {}, 271 | "source": [ 272 | "This is another preprocessing techique which is used to preprocess data. It is used when you want to measure the feature vectors on a common scale." 273 | ] 274 | }, 275 | { 276 | "cell_type": "markdown", 277 | "id": "0d4bffaf", 278 | "metadata": {}, 279 | "source": [ 280 | "\n", 281 | "There are 2 types of Normalization techniques in Machine Learnig" 282 | ] 283 | }, 284 | { 285 | "cell_type": "markdown", 286 | "id": "58386d30", 287 | "metadata": {}, 288 | "source": [ 289 | "### L1 Normalization " 290 | ] 291 | }, 292 | { 293 | "cell_type": "markdown", 294 | "id": "9c8bb878", 295 | "metadata": {}, 296 | "source": [ 297 | "\n", 298 | "This is also know as Least Absolute Deviations. This modifies the values so that the sum of the absolute values is always up to one in each row." 299 | ] 300 | }, 301 | { 302 | "cell_type": "code", 303 | "execution_count": 8, 304 | "id": "bf2e662e", 305 | "metadata": {}, 306 | "outputs": [ 307 | { 308 | "name": "stdout", 309 | "output_type": "stream", 310 | "text": [ 311 | "L1 normalized data: [[ 0.31343284 -0.20895522 0.47761194]\n", 312 | " [ 0.37209302 0.1627907 0.46511628]\n", 313 | " [ 0.17105263 0.56578947 0.26315789]]\n" 314 | ] 315 | } 316 | ], 317 | "source": [ 318 | "#L1 Normalization implementation \n", 319 | "\n", 320 | "L1_normalized_data = sp.normalize(input_data, norm='l1')\n", 321 | "\n", 322 | "#output L1 normalized data\n", 323 | "print(\"L1 normalized data:\", str(L1_normalized_data))" 324 | ] 325 | }, 326 | { 327 | "cell_type": "markdown", 328 | "id": "eafe0d99", 329 | "metadata": {}, 330 | "source": [ 331 | "### L2 Normalization" 332 | ] 333 | }, 334 | { 335 | "cell_type": "markdown", 336 | "id": "014c297d", 337 | "metadata": {}, 338 | "source": [ 339 | "This is also known as Least squares, this kind of normalization modifies the values so that the sum of the squares of the squares is always up to one on each row" 340 | ] 341 | }, 342 | { 343 | "cell_type": "code", 344 | "execution_count": 9, 345 | "id": "954c90bc", 346 | "metadata": {}, 347 | "outputs": [ 348 | { 349 | "name": "stdout", 350 | "output_type": "stream", 351 | "text": [ 352 | "L2 Normalized data: [[ 0.51526955 -0.34351303 0.78517265]\n", 353 | " [ 0.60259486 0.26363525 0.75324358]\n", 354 | " [ 0.26437185 0.87446072 0.40672592]]\n" 355 | ] 356 | } 357 | ], 358 | "source": [ 359 | "#L2 Normalization Implementation\n", 360 | "L2_normalized_data = sp.normalize(input_data, norm = 'l2')\n", 361 | "\n", 362 | "#output L2 normalized data\n", 363 | "print(\"L2 Normalized data:\", str(L2_normalized_data))" 364 | ] 365 | }, 366 | { 367 | "cell_type": "markdown", 368 | "id": "104cdc60", 369 | "metadata": {}, 370 | "source": [ 371 | "# Labelling of Data" 372 | ] 373 | }, 374 | { 375 | "cell_type": "markdown", 376 | "id": "ffbd941b", 377 | "metadata": {}, 378 | "source": [ 379 | "In machine Learning data has to be in a certain format before it can be inputed to a machine learning model. In Classification for instance, there are a lot of labels on the data and for an Machine Learning algorithm to recognize those labels the labels need to be in numeric form and if they are not in numeric for they need to be changed and this leads to label Encoding." 380 | ] 381 | }, 382 | { 383 | "cell_type": "markdown", 384 | "id": "c7dffaf5", 385 | "metadata": {}, 386 | "source": [ 387 | "## Steps Involved in Label Encoding" 388 | ] 389 | }, 390 | { 391 | "cell_type": "markdown", 392 | "id": "00a569ff", 393 | "metadata": {}, 394 | "source": [ 395 | "### Step 1: Importing Packages" 396 | ] 397 | }, 398 | { 399 | "cell_type": "code", 400 | "execution_count": 10, 401 | "id": "c93bcdfd", 402 | "metadata": {}, 403 | "outputs": [], 404 | "source": [ 405 | "import numpy as np\n", 406 | "\n", 407 | "from sklearn import preprocessing as sp" 408 | ] 409 | }, 410 | { 411 | "cell_type": "markdown", 412 | "id": "afc2bbfa", 413 | "metadata": {}, 414 | "source": [ 415 | "### Step 2: Defining Sample Data" 416 | ] 417 | }, 418 | { 419 | "cell_type": "markdown", 420 | "id": "84e72c5e", 421 | "metadata": {}, 422 | "source": [ 423 | "After importing the packages we need to define some labels so that we can create and train our label encoder." 424 | ] 425 | }, 426 | { 427 | "cell_type": "code", 428 | "execution_count": 11, 429 | "id": "08f024d3", 430 | "metadata": {}, 431 | "outputs": [], 432 | "source": [ 433 | "#Sample Input Labels\n", 434 | "\n", 435 | "input_labels = ['dog', 'cat', 'bird', 'insects', 'ape', 'snake', 'lizard']" 436 | ] 437 | }, 438 | { 439 | "cell_type": "markdown", 440 | "id": "8f2c77c9", 441 | "metadata": {}, 442 | "source": [ 443 | "### Step 3: Creating and Training of Label Encoder Object" 444 | ] 445 | }, 446 | { 447 | "cell_type": "code", 448 | "execution_count": 12, 449 | "id": "61ce4c65", 450 | "metadata": {}, 451 | "outputs": [ 452 | { 453 | "data": { 454 | "text/plain": [ 455 | "LabelEncoder()" 456 | ] 457 | }, 458 | "execution_count": 12, 459 | "metadata": {}, 460 | "output_type": "execute_result" 461 | } 462 | ], 463 | "source": [ 464 | "# Creating the label enoder\n", 465 | "\n", 466 | "encoder = sp.LabelEncoder()\n", 467 | "\n", 468 | "encoder.fit(input_labels)" 469 | ] 470 | }, 471 | { 472 | "cell_type": "markdown", 473 | "id": "cea7f41b", 474 | "metadata": {}, 475 | "source": [ 476 | "### Step 4: Checking the performance by encoding a random ordered list" 477 | ] 478 | }, 479 | { 480 | "cell_type": "markdown", 481 | "id": "f69b0bd7", 482 | "metadata": {}, 483 | "source": [ 484 | "In this step we check the ability of our Label Encoder by making it encode a couple of test_labels. You have to make sure you test the encoder label on labels it has already been trained on in our case -dog, cats, etc. if you test it on anything else you'll get an error message saying \"unseen elements label\"" 485 | ] 486 | }, 487 | { 488 | "cell_type": "code", 489 | "execution_count": 13, 490 | "id": "791b3c8c", 491 | "metadata": {}, 492 | "outputs": [ 493 | { 494 | "name": "stdout", 495 | "output_type": "stream", 496 | "text": [ 497 | "Encoded Test Label:\n", 498 | "[6 3 2]\n" 499 | ] 500 | } 501 | ], 502 | "source": [ 503 | "test_labels = ['snake', 'dog', 'cat']\n", 504 | "\n", 505 | "encoded_values = encoder.transform(test_labels)\n", 506 | "\n", 507 | "print(\"Encoded Test Label:\")\n", 508 | "print(encoded_values)" 509 | ] 510 | }, 511 | { 512 | "cell_type": "markdown", 513 | "id": "bce23e8e", 514 | "metadata": {}, 515 | "source": [ 516 | "### Step 5: Checking the Performance by decoding a random set of numbers" 517 | ] 518 | }, 519 | { 520 | "cell_type": "markdown", 521 | "id": "be1b695e", 522 | "metadata": {}, 523 | "source": [ 524 | "We checked the ability of our label encoder earlier on encoding labels now let's see it's ability on decoding a random set of numbers" 525 | ] 526 | }, 527 | { 528 | "cell_type": "code", 529 | "execution_count": 14, 530 | "id": "4338b6c1", 531 | "metadata": {}, 532 | "outputs": [ 533 | { 534 | "name": "stdout", 535 | "output_type": "stream", 536 | "text": [ 537 | "Decoded_Labels:\n", 538 | "['dog' 'ape' 'insects' 'bird']\n" 539 | ] 540 | } 541 | ], 542 | "source": [ 543 | "#we provide a set of encoded values to be decoded\n", 544 | "encoded_values = [3, 0, 4, 1]\n", 545 | "\n", 546 | "#Now we decode the list\n", 547 | "decoded_list = encoder.inverse_transform(encoded_values)\n", 548 | "\n", 549 | "print(\"Decoded_Labels:\")\n", 550 | "print(decoded_list)" 551 | ] 552 | }, 553 | { 554 | "cell_type": "markdown", 555 | "id": "121dab7b", 556 | "metadata": {}, 557 | "source": [ 558 | "## Labelled vs Unlabelled Data" 559 | ] 560 | }, 561 | { 562 | "cell_type": "markdown", 563 | "id": "f7805b0e", 564 | "metadata": {}, 565 | "source": [ 566 | "Unlabelled data consists mostly of the samples of the samples of natural or human created object that can easily be obtained from the world they include: audio, video, photos, news articles\n", 567 | "\n", 568 | "Labelled data is simply data with a tag on it. like a picture now would usually just be unlabbeled data but it becomes labelled when it has something like a tag showing what the data is all about." 569 | ] 570 | }, 571 | { 572 | "cell_type": "code", 573 | "execution_count": null, 574 | "id": "edf1da1f", 575 | "metadata": {}, 576 | "outputs": [], 577 | "source": [] 578 | } 579 | ], 580 | "metadata": { 581 | "kernelspec": { 582 | "display_name": "Python 3", 583 | "language": "python", 584 | "name": "python3" 585 | }, 586 | "language_info": { 587 | "codemirror_mode": { 588 | "name": "ipython", 589 | "version": 3 590 | }, 591 | "file_extension": ".py", 592 | "mimetype": "text/x-python", 593 | "name": "python", 594 | "nbconvert_exporter": "python", 595 | "pygments_lexer": "ipython3", 596 | "version": "3.8.8" 597 | } 598 | }, 599 | "nbformat": 4, 600 | "nbformat_minor": 5 601 | } 602 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Data-Preparation/Feature-Importance/Feature Importance Demo.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "acfc1f8a", 6 | "metadata": {}, 7 | "source": [ 8 | "# Feature Importance Demo" 9 | ] 10 | }, 11 | { 12 | "cell_type": "markdown", 13 | "id": "b5789e06", 14 | "metadata": {}, 15 | "source": [ 16 | "Here we will build a simple Logistic Regressiion classifier and use all the features of the data to make predictions" 17 | ] 18 | }, 19 | { 20 | "cell_type": "markdown", 21 | "id": "7dbaaddd", 22 | "metadata": {}, 23 | "source": [ 24 | "Then we will build another one which makes useof those features picked by importance" 25 | ] 26 | }, 27 | { 28 | "cell_type": "markdown", 29 | "id": "f254c8c9", 30 | "metadata": {}, 31 | "source": [ 32 | "## Evaluation of a model using all Features" 33 | ] 34 | }, 35 | { 36 | "cell_type": "code", 37 | "execution_count": 5, 38 | "id": "11d43459", 39 | "metadata": {}, 40 | "outputs": [], 41 | "source": [ 42 | "#some code was gotten from machinelearningmastery.com" 43 | ] 44 | }, 45 | { 46 | "cell_type": "code", 47 | "execution_count": 16, 48 | "id": "ef4f21e7", 49 | "metadata": {}, 50 | "outputs": [ 51 | { 52 | "name": "stdout", 53 | "output_type": "stream", 54 | "text": [ 55 | "Prediction:\n", 56 | "[1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 0 1 1 1\n", 57 | " 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1\n", 58 | " 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1\n", 59 | " 1 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0\n", 60 | " 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1\n", 61 | " 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1\n", 62 | " 1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 1 0\n", 63 | " 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 1\n", 64 | " 1 1 1 0 0 1 0 0 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0]\n", 65 | "Accuracy Score:\n", 66 | "0.9363636363636364\n" 67 | ] 68 | } 69 | ], 70 | "source": [ 71 | "# evaluation of a model using all features\n", 72 | "from sklearn.datasets import make_classification\n", 73 | "from sklearn.model_selection import train_test_split\n", 74 | "from sklearn.ensemble import RandomForestClassifier\n", 75 | "from sklearn.metrics import accuracy_score\n", 76 | "# define the dataset\n", 77 | "x, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=5, random_state=1)\n", 78 | "# split into train and test sets\n", 79 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.33, random_state=1)\n", 80 | "# fit the model\n", 81 | "model = RandomForestClassifier()\n", 82 | "model.fit(x_train, y_train)\n", 83 | "# evaluate the model\n", 84 | "prediction= model.predict(x_test)\n", 85 | "#show prediction\n", 86 | "print(\"Prediction:\")\n", 87 | "print(prediction)\n", 88 | "# show accuraacy of model prediction\n", 89 | "accuracy = accuracy_score(y_test, prediction)\n", 90 | "print('Accuracy Score:')\n", 91 | "print(accuracy)\n", 92 | "\n" 93 | ] 94 | }, 95 | { 96 | "cell_type": "markdown", 97 | "id": "158418e4", 98 | "metadata": {}, 99 | "source": [ 100 | "## Evaluation of Model using only Selected Features" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "execution_count": 18, 106 | "id": "ea5768a8", 107 | "metadata": {}, 108 | "outputs": [ 109 | { 110 | "name": "stdout", 111 | "output_type": "stream", 112 | "text": [ 113 | "Prediction:\n", 114 | "[1 0 0 0 0 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 0 1 1 1\n", 115 | " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 0 1 1\n", 116 | " 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 1 1 1\n", 117 | " 1 1 0 1 0 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0\n", 118 | " 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1\n", 119 | " 1 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 1\n", 120 | " 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1\n", 121 | " 0 0 0 1 1 1 0 1 0 1 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1\n", 122 | " 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 1 1 0]\n", 123 | "Accuracy 0.9\n" 124 | ] 125 | } 126 | ], 127 | "source": [ 128 | "from sklearn.datasets import make_classification \n", 129 | "from sklearn.ensemble import RandomForestClassifier\n", 130 | "from sklearn.feature_selection import SelectFromModel\n", 131 | "from sklearn.model_selection import train_test_split\n", 132 | "from sklearn.metrics import accuracy_score\n", 133 | "\n", 134 | "#feature selection function\n", 135 | "def select_features(x_train, y_train, x_test):\n", 136 | "\t# configure to select a subset of features\n", 137 | "\tfs = SelectFromModel(RandomForestClassifier(n_estimators=1000), max_features=5)\n", 138 | "\t# learn relationship from training data\n", 139 | "\tfs.fit(x_train, y_train)\n", 140 | "\t# transform train input data\n", 141 | "\tx_train_fs = fs.transform(x_train)\n", 142 | "\t# transform test input data\n", 143 | "\tx_test_fs = fs.transform(x_test)\n", 144 | "\treturn x_train_fs, x_test_fs, fs\n", 145 | "\n", 146 | "\n", 147 | "#define the dataset\n", 148 | "x, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_redundant=5, random_state=1)\n", 149 | "#split the data\n", 150 | "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.33, random_state=1)\n", 151 | "#feature_selection\n", 152 | "x_train_fs, x_test_fs, fs = select_features(x_train, y_train, x_test)\n", 153 | "#instantiate the model\n", 154 | "model = RandomForestClassifier()\n", 155 | "#fit the model with selected features\n", 156 | "model.fit(x_train_fs, y_train)\n", 157 | "#model prediction\n", 158 | "prediction = model.predict(x_test_fs)\n", 159 | "#show prediction\n", 160 | "print(\"Prediction:\")\n", 161 | "print(prediction)\n", 162 | "#show accuracy of model prediction\n", 163 | "accuracy = accuracy_score(y_test, prediction)\n", 164 | "print(\"Accuracy\", str(accuracy))" 165 | ] 166 | }, 167 | { 168 | "cell_type": "markdown", 169 | "id": "cf3a5589", 170 | "metadata": {}, 171 | "source": [ 172 | "So in the first code block (\"Evaluation of a model using all Features\") we got an accuracy of 0.93 and in the second code block (\"Evaluation of Model using only Selected Features\") we got an accuracy of 0.9 which is similar to the first acuracy but in the second code block we use only 5 features compared to all 10 features used in the first code block. " 173 | ] 174 | }, 175 | { 176 | "cell_type": "markdown", 177 | "id": "21e94da4", 178 | "metadata": {}, 179 | "source": [ 180 | "So using simple inference we have made use o the core important features in the code block" 181 | ] 182 | }, 183 | { 184 | "cell_type": "code", 185 | "execution_count": null, 186 | "id": "4f5f2217", 187 | "metadata": {}, 188 | "outputs": [], 189 | "source": [] 190 | } 191 | ], 192 | "metadata": { 193 | "kernelspec": { 194 | "display_name": "Python 3", 195 | "language": "python", 196 | "name": "python3" 197 | }, 198 | "language_info": { 199 | "codemirror_mode": { 200 | "name": "ipython", 201 | "version": 3 202 | }, 203 | "file_extension": ".py", 204 | "mimetype": "text/x-python", 205 | "name": "python", 206 | "nbconvert_exporter": "python", 207 | "pygments_lexer": "ipython3", 208 | "version": "3.8.8" 209 | } 210 | }, 211 | "nbformat": 4, 212 | "nbformat_minor": 5 213 | } 214 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Data-Preparation/Feature-Importance/README.md: -------------------------------------------------------------------------------- 1 | # Feature Importance 2 | 3 | This folder contains information on how to rank feature based on their importance using different Machine Learning Algorithms, amd also shows shows feature importance can affect a demo in real time. 4 | 5 | ## Packages Needed 6 | - scikit-learn 7 | - jupyter notebook 8 | - XGBoost 9 | - matplotlib 10 | 11 | ## Installing these Packages 12 | - scikit-learn: 13 | `pip install sklearn` 14 | `conda install sklearn` 15 | 16 | to install directly in a jupyter notebook 17 | `!pip install sklearn` 18 | 19 | - jupyter notebook: 20 | `pip install jupyter` 21 | `conda install jupyter notebooks` 22 | 23 | to install directly in a jupyter notebook 24 | `!pip install jupyter noteboook` 25 | 26 | - XGBoost: 27 | `pip install XGBoost` 28 | `conda install XGBOOST` 29 | 30 | to install directly in a jupyter notebook 31 | `!pip install XGBoost` 32 | 33 | - matplotlib: 34 | `pip install matplotlib` 35 | `conda install matplotlib` 36 | 37 | to install directly in a jupyter notebook 38 | `!pip install matplotlib` 39 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Data-Preparation/README.md: -------------------------------------------------------------------------------- 1 | # Data Preparation 2 | 3 | This folder contains techniques preparing your data for usage in Machine Learning models. 4 | 5 | It talks about data preparation techniques like: 6 | 7 | - Binarization 8 | - Mean Removal 9 | - Scaling 10 | - Normalization 11 | - Label encoding 12 | 13 | It also contaisna seperate folder for feature Importance 14 | 15 | ## Packages Nedded 16 | - scikit-learn 17 | - jupyter notebook 18 | - XGBoost 19 | 20 | ## Installing these Packages 21 | - scikit-learn: 22 | `pip install sklearn` 23 | `conda install sklearn` 24 | 25 | to install directly in a jupyter notebook 26 | `!pip install sklearn` 27 | 28 | - jupyter notebook: 29 | `pip install jupyter` 30 | `conda install jupyter notebooks` 31 | 32 | to install directly in a jupyter notebook 33 | `!pip install jupyter noteboook` 34 | 35 | - XGBoost: 36 | `pip install XGBoost` 37 | `conda install XGBOOST` 38 | 39 | to install directly in a jupyter notebook 40 | `!pip install XGBoost` 41 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/README.md: -------------------------------------------------------------------------------- 1 | # Machine Learning Concepts 2 | 3 | This folder contains everything you need to know about Machine Learning and it's concepts including code. 4 | 5 | This folder will contain coded an dexplanation on Data preparation, Supervised Learning, Unsupervised Learning, Reinforcemenet Learning, Neural Networks. 6 | 7 | Packages needed here include: 8 | 9 | - Sckikit learn 10 | - Pandas 11 | - Matplotlib 12 | - numpy 13 | - open cv 14 | - tensorflow 15 | 16 | ## Installing these Packages 17 | - scikit-learn: 18 | `pip install sklearn` 19 | `conda install sklearn` 20 | 21 | to install directly in a jupyter notebook 22 | `!pip install sklearn` 23 | 24 | - jupyter notebook: 25 | `pip install jupyter` 26 | `conda install jupyter notebooks` 27 | 28 | - pandas: 29 | `pip install pandas` 30 | `conda install pandas` 31 | 32 | to install directly in a jupyter notebook 33 | `!pip install pandas` 34 | 35 | - Numpy: 36 | `pip install numpy` 37 | `conda install numpy` 38 | 39 | to install directly in a jupyter notebook 40 | `!pip install numpy` 41 | 42 | - matplotlib 43 | `pip install matplotlib` 44 | `conda install matplotlib` 45 | 46 | to install directly in a jupyter notebook 47 | 48 | `!pip install matplotllib` 49 | 50 | - tensorflow 51 | `pip install tensorflow` 52 | `conda install tensorflow` 53 | 54 | to install directly in a jupyter notebook 55 | 56 | `!pip install tensorflow` 57 | 58 | - opencv 59 | `pip install opencv` 60 | `conda install opencv` 61 | 62 | to install directly in a jupyter notebook 63 | 64 | `!pip install opencv` 65 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Supervised-Learning/Classification/Building-Clasification-models/README.md: -------------------------------------------------------------------------------- 1 | # Building Classification Models 2 | 3 | This folder contains coded explanations of how to build common Machine Learning Classifification Algorithms 4 | 5 | ## Packages needed 6 | - scikit-learn 7 | - pandas 8 | - matplotlib 9 | - numpy 10 | - Jupyter Notebooks 11 | 12 | ## Installing these Packages 13 | - scikit-learn: 14 | `pip install sklearn` 15 | `conda install sklearn` 16 | 17 | to install directly in a jupyter notebook 18 | `!pip install sklearn` 19 | 20 | - jupyter notebook: 21 | `pip install jupyter` 22 | `conda install jupyter notebooks` 23 | 24 | - pandas: 25 | `pip install pandas` 26 | `conda install pandas` 27 | 28 | to install directly in a jupyter notebook 29 | `!pip install pandas` 30 | 31 | - Numpy: 32 | `pip install numpy` 33 | `conda install numpy` 34 | 35 | to install directly in a jupyter notebook 36 | `!pip install numpy` 37 | 38 | - matplotlib 39 | `pip install matplotlib` 40 | `conda install matplotlib` 41 | 42 | to install directly in a jupyter notebook 43 | 44 | `!pip install matplotllib` 45 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Supervised-Learning/Classification/Classification-model-demo/README.md: -------------------------------------------------------------------------------- 1 | # Classifier Demo 2 | 3 | This folder explains to you how to build a classifier end-end using code inlcuding how to score and see the classifier's peformance. 4 | 5 | ## Packages Needed 6 | - numpy 7 | - scikit-learn 8 | - pandas 9 | - matplotlib 10 | - jupyter notebook 11 | 12 | ## Installing these Packages 13 | - scikit-learn: 14 | `pip install sklearn` 15 | `conda install sklearn` 16 | 17 | to install directly in a jupyter notebook 18 | `!pip install sklearn` 19 | 20 | - jupyter notebook: 21 | `pip install jupyter` 22 | `conda install jupyter notebooks` 23 | 24 | - pandas: 25 | `pip install pandas` 26 | `conda install pandas` 27 | 28 | to install directly in a jupyter notebook 29 | `!pip install pandas` 30 | 31 | - Numpy: 32 | `pip install numpy` 33 | `conda install numpy` 34 | 35 | to install directly in a jupyter notebook 36 | `!pip install numpy` 37 | 38 | - matplotlib 39 | `pip install matplotlib` 40 | `conda install matplotlib` 41 | 42 | to install directly in a jupyter notebook 43 | 44 | `!pip install matplotllib` 45 | 46 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Supervised-Learning/Classification/Classifier-Performance-Measures/README.md: -------------------------------------------------------------------------------- 1 | # Classsifier Performance Measures 2 | 3 | This folder provides coded explanations on how to implement and use the different performance measures for Classifiers. 4 | 5 | ## Performace Measures Covered 6 | - Accuracy Score 7 | - Confusion Matrix 8 | - F1 score 9 | - Precision Score 10 | - Recall & Sensitivity Score 11 | - Specifity Score 12 | ## Packages nedded 13 | - Numpy 14 | - scikit-learn 15 | - matplotlib 16 | - pandas 17 | - jupyter notebook 18 | 19 | ## Installing these Packages 20 | - scikit-learn: 21 | `pip install sklearn` 22 | `conda install sklearn` 23 | 24 | to install directly in a jupyter notebook 25 | `!pip install sklearn` 26 | 27 | - jupyter notebook: 28 | `pip install jupyter` 29 | `conda install jupyter notebooks` 30 | 31 | - pandas: 32 | `pip install pandas` 33 | `conda install pandas` 34 | 35 | to install directly in a jupyter notebook 36 | `!pip install pandas` 37 | 38 | - Numpy: 39 | `pip install numpy` 40 | `conda install numpy` 41 | 42 | to install directly in a jupyter notebook 43 | `!pip install numpy` 44 | 45 | - matplotlib 46 | `pip install matplotlib` 47 | `conda install matplotlib` 48 | 49 | to install directly in a jupyter notebook 50 | 51 | `!pip install matplotllib` 52 | 53 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Supervised-Learning/Classification/README.md: -------------------------------------------------------------------------------- 1 | # Classification Folder 2 | 3 | This folder contains coded explanation of Classification in Machine Learning. 4 | 5 | ## Packages Nedded 6 | 7 | - pandas 8 | - numpy 9 | - scikit-learn 10 | - jupyter notebook 11 | - matplotlib 12 | 13 | ## Installing these Packages 14 | - scikit-learn: 15 | `pip install sklearn` 16 | `conda install sklearn` 17 | 18 | to install directly in a jupyter notebook 19 | `!pip install sklearn` 20 | 21 | - jupyter notebook: 22 | `pip install jupyter` 23 | `conda install jupyter notebooks` 24 | 25 | - pandas: 26 | `pip install pandas` 27 | `conda install pandas` 28 | 29 | to install directly in a jupyter notebook 30 | `!pip install pandas` 31 | 32 | - Numpy: 33 | `pip install numpy` 34 | `conda install numpy` 35 | 36 | to install directly in a jupyter notebook 37 | `!pip install numpy` 38 | 39 | - matplotlib 40 | `pip install matplotlib` 41 | `conda install matplotlib` 42 | 43 | to install directly in a jupyter notebook 44 | 45 | `!pip install matplotllib` 46 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Supervised-Learning/README.md: -------------------------------------------------------------------------------- 1 | # Supervised Learning 2 | 3 | This repo contains coded explanations of supervised learning concepts, Classification and Regression 4 | 5 | ## Packages Needed 6 | 7 | - scikit-learn 8 | - pandas 9 | - numpy 10 | - matplotlib 11 | - Jupyter Notebook 12 | 13 | ## Installing these Packages 14 | - scikit-learn: 15 | `pip install sklearn` 16 | `conda install sklearn` 17 | 18 | to install directly in a jupyter notebook 19 | `!pip install sklearn` 20 | 21 | - jupyter notebook: 22 | `pip install jupyter` 23 | `conda install jupyter notebooks` 24 | 25 | - pandas: 26 | `pip install pandas` 27 | `conda install pandas` 28 | 29 | to install directly in a jupyter notebook 30 | `!pip install pandas` 31 | 32 | - Numpy: 33 | `pip install numpy` 34 | `conda install numpy` 35 | 36 | to install directly in a jupyter notebook 37 | `!pip install numpy` 38 | 39 | - matplotlib 40 | `pip install matplotlib` 41 | `conda install matplotlib` 42 | 43 | to install directly in a jupyter notebook 44 | 45 | `!pip install matplotllib` 46 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Supervised-Learning/Regression/Linear-Regressor-or-Single-Variable-Regressor/Linear-Regressor-or-Single-Variable-regressor.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "b0497c1c", 6 | "metadata": {}, 7 | "source": [ 8 | "# Linear / Single Variable Regressors" 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": 1, 14 | "id": "40f89ebf", 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "#The explanation was gotten from the towardsdatascience.com website " 19 | ] 20 | }, 21 | { 22 | "cell_type": "markdown", 23 | "id": "08c9c7c2", 24 | "metadata": {}, 25 | "source": [ 26 | "A linear regression refers to a regression model that is completely made up of linear variables. Beginning with the simple case, Single Variable Linear Regression is a technique used to model the relationship between a single input independent variable (feature variable) and an output dependent variable using a linear model" 27 | ] 28 | }, 29 | { 30 | "cell_type": "code", 31 | "execution_count": 17, 32 | "id": "1a3d766c", 33 | "metadata": {}, 34 | "outputs": [], 35 | "source": [ 36 | "#some part of the code gotten from an article on the sci-kit learn official website" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 18, 42 | "id": "b3959c69", 43 | "metadata": {}, 44 | "outputs": [], 45 | "source": [ 46 | "\n", 47 | "#import packages \n", 48 | "import numpy as np\n", 49 | "from sklearn.model_selection import train_test_split\n", 50 | "from sklearn.linear_model import LinearRegression\n", 51 | "from sklearn.datasets import load_diabetes\n", 52 | "import sklearn.metrics as metrics\n", 53 | "%matplotlib inline\n", 54 | "import matplotlib.pyplot as plt" 55 | ] 56 | }, 57 | { 58 | "cell_type": "code", 59 | "execution_count": 8, 60 | "id": "beec8f40", 61 | "metadata": {}, 62 | "outputs": [], 63 | "source": [ 64 | "x, y = load_diabetes(return_X_y = True)\n", 65 | "\n", 66 | "x = x[:, np.newaxis, 2]" 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": 10, 72 | "id": "69af3518", 73 | "metadata": {}, 74 | "outputs": [], 75 | "source": [ 76 | "#split data\n", 77 | "\n", 78 | "x_train, x_test, y_train, y_test = train_test_split(x, y)" 79 | ] 80 | }, 81 | { 82 | "cell_type": "code", 83 | "execution_count": 11, 84 | "id": "7be7cd8e", 85 | "metadata": {}, 86 | "outputs": [ 87 | { 88 | "data": { 89 | "text/plain": [ 90 | "LinearRegression()" 91 | ] 92 | }, 93 | "execution_count": 11, 94 | "metadata": {}, 95 | "output_type": "execute_result" 96 | } 97 | ], 98 | "source": [ 99 | "model = LinearRegression()\n", 100 | "\n", 101 | "model.fit(x_train, y_train)" 102 | ] 103 | }, 104 | { 105 | "cell_type": "code", 106 | "execution_count": 14, 107 | "id": "e808f801", 108 | "metadata": {}, 109 | "outputs": [ 110 | { 111 | "name": "stdout", 112 | "output_type": "stream", 113 | "text": [ 114 | "[313.59740563 155.57016027 107.25609799 137.45238691 130.40658617\n", 115 | " 155.57016027 78.06635203 160.60287509 109.26918392 154.5636173\n", 116 | " 131.41312913 125.37387134 147.51781655 116.31498467 120.34115652\n", 117 | " 91.15141057 124.36732838 120.34115652 122.35424245 146.51127359\n", 118 | " 214.95619515 204.89076551 130.40658617 175.70101955 214.95619515\n", 119 | " 130.40658617 125.37387134 103.22992613 198.85150772 190.79916401\n", 120 | " 200.86459365 132.41967209 145.50473063 209.92348033 121.34769949\n", 121 | " 117.32152763 135.43930099 178.72064844 143.4916447 83.09906685\n", 122 | " 82.09252389 125.37387134 135.43930099 182.7468203 194.82533587\n", 123 | " 103.22992613 148.52435952 134.43275802 110.27572688 124.36732838\n", 124 | " 123.36078542 96.18412539 202.87767958 92.15795353 160.60287509\n", 125 | " 144.49818766 169.66176176 227.03471072 218.982367 87.12523871\n", 126 | " 134.43275802 135.43930099 95.17758242 172.68139066 99.20375428\n", 127 | " 107.25609799 120.34115652 95.17758242 163.62250398 209.92348033\n", 128 | " 88.13178167 152.55053138 226.02816775 200.86459365 190.79916401\n", 129 | " 140.47201581 86.11869575 158.58978916 118.3280706 130.40658617\n", 130 | " 155.57016027 160.60287509 155.57016027 123.36078542 117.32152763\n", 131 | " 220.99545293 123.36078542 171.67484769 70.01400832 94.17103946\n", 132 | " 167.64867584 131.41312913 204.89076551 125.37387134 152.55053138\n", 133 | " 115.3084417 120.34115652 159.59633212 167.64867584 165.63558991\n", 134 | " 244.14594111 186.77299215 177.71410548 146.51127359 163.62250398\n", 135 | " 155.57016027 134.43275802 206.90385144 97.19066835 147.51781655\n", 136 | " 206.90385144]\n" 137 | ] 138 | } 139 | ], 140 | "source": [ 141 | "#predicting results\n", 142 | "prediction = model.predict(x_test)\n", 143 | "\n", 144 | "print(prediction)" 145 | ] 146 | }, 147 | { 148 | "cell_type": "code", 149 | "execution_count": 15, 150 | "id": "70fabbf1", 151 | "metadata": {}, 152 | "outputs": [ 153 | { 154 | "data": { 155 | "image/png": "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\n", 156 | "text/plain": [ 157 | "
" 158 | ] 159 | }, 160 | "metadata": {}, 161 | "output_type": "display_data" 162 | } 163 | ], 164 | "source": [ 165 | "#now to plot and visualize the data\n", 166 | "plt.scatter(x_test, y_test, color='green')\n", 167 | "\n", 168 | "plt.plot(x_test, prediction, color = 'black', linewidth = 2)\n", 169 | "\n", 170 | "plt.xticks(())\n", 171 | "\n", 172 | "plt.yticks(())\n", 173 | "\n", 174 | "plt.show()" 175 | ] 176 | }, 177 | { 178 | "cell_type": "code", 179 | "execution_count": 19, 180 | "id": "07a72a36", 181 | "metadata": {}, 182 | "outputs": [], 183 | "source": [ 184 | "#performance of the model\n", 185 | "\n", 186 | "#mean absolute error\n", 187 | "mean_absolute_error = round(metrics.mean_absolute_error(y_test, prediction), 2)\n", 188 | "\n", 189 | "#median absolute error\n", 190 | "median_absolute_error = round(metrics.median_absolute_error(y_test, prediction), 2)\n", 191 | "\n", 192 | "#mean squared error\n", 193 | "mean_squared_error = round(metrics.mean_squared_error(y_test, prediction), 2)\n", 194 | "\n", 195 | "#explained variance score\n", 196 | "explained_variance_score = round(metrics.explained_variance_score(y_test, prediction), 2)\n", 197 | "\n", 198 | "#r2 score\n", 199 | "r2_score = round(metrics.r2_score(y_test, prediction), 2)" 200 | ] 201 | }, 202 | { 203 | "cell_type": "code", 204 | "execution_count": 22, 205 | "id": "37eb3b95", 206 | "metadata": {}, 207 | "outputs": [ 208 | { 209 | "name": "stdout", 210 | "output_type": "stream", 211 | "text": [ 212 | "Model Performance Measures\n", 213 | "\n", 214 | "\n", 215 | "Mean Absolute Error: 52.84\n", 216 | "Median Absolute Error: 44.64\n", 217 | "Mean Squared Error: 4040.92\n", 218 | "Explained Variance Score: 0.33\n", 219 | "R2 Score: 0.31\n" 220 | ] 221 | } 222 | ], 223 | "source": [ 224 | "#output performnace measures\n", 225 | "\n", 226 | "print(\"Model Performance Measures\")\n", 227 | "print()\n", 228 | "print()\n", 229 | "print(\"Mean Absolute Error:\", mean_absolute_error)\n", 230 | "\n", 231 | "print(\"Median Absolute Error:\", median_absolute_error)\n", 232 | "\n", 233 | "print(\"Mean Squared Error:\", mean_squared_error)\n", 234 | "\n", 235 | "print(\"Explained Variance Score:\", explained_variance_score)\n", 236 | "\n", 237 | "print(\"R2 Score:\", r2_score)" 238 | ] 239 | }, 240 | { 241 | "cell_type": "markdown", 242 | "id": "56bfc698", 243 | "metadata": {}, 244 | "source": [ 245 | "## Explanation of Performance Measures" 246 | ] 247 | }, 248 | { 249 | "cell_type": "markdown", 250 | "id": "211fb82a", 251 | "metadata": {}, 252 | "source": [ 253 | "#### Mean Absolute Error:" 254 | ] 255 | }, 256 | { 257 | "cell_type": "markdown", 258 | "id": "1659e27f", 259 | "metadata": {}, 260 | "source": [ 261 | "This is a model evaluation metric used with regression models. The mean absolute error of a model with respect to a test set is the mean of the absolute values of the individual prediction errors on over all instances in the test set." 262 | ] 263 | }, 264 | { 265 | "cell_type": "markdown", 266 | "id": "d68a9d1d", 267 | "metadata": {}, 268 | "source": [ 269 | "#### Median Absolute Error" 270 | ] 271 | }, 272 | { 273 | "cell_type": "markdown", 274 | "id": "d762b897", 275 | "metadata": {}, 276 | "source": [ 277 | " To begin, Absolute errors refer to the magnitude of difference between the prediction of an observation and the true value of that observation. MAE takes the average of absolute errors for a group of predictions and observations as a measurement of the magnitude of errors for the entire group." 278 | ] 279 | }, 280 | { 281 | "cell_type": "markdown", 282 | "id": "15c9c876", 283 | "metadata": {}, 284 | "source": [ 285 | "#### Mean Squared Error" 286 | ] 287 | }, 288 | { 289 | "cell_type": "markdown", 290 | "id": "22e8440f", 291 | "metadata": {}, 292 | "source": [ 293 | "Mean squared errors measure the average squared difference between the estimated values and the actual value." 294 | ] 295 | }, 296 | { 297 | "cell_type": "markdown", 298 | "id": "229da627", 299 | "metadata": {}, 300 | "source": [ 301 | "#### Explained Variance Score" 302 | ] 303 | }, 304 | { 305 | "cell_type": "markdown", 306 | "id": "e91c5e26", 307 | "metadata": {}, 308 | "source": [ 309 | "Explained variance score is used to measure the discrepancy between a model's prediction and actual data provided." 310 | ] 311 | }, 312 | { 313 | "cell_type": "markdown", 314 | "id": "2821f7d1", 315 | "metadata": {}, 316 | "source": [ 317 | "#### R2 Score" 318 | ] 319 | }, 320 | { 321 | "cell_type": "markdown", 322 | "id": "37398da2", 323 | "metadata": {}, 324 | "source": [ 325 | "This is simply the total variance explained by the model over the total variance explained by the model plus the the total variance not explained by the model" 326 | ] 327 | }, 328 | { 329 | "cell_type": "code", 330 | "execution_count": null, 331 | "id": "daadd7d8", 332 | "metadata": {}, 333 | "outputs": [], 334 | "source": [] 335 | } 336 | ], 337 | "metadata": { 338 | "kernelspec": { 339 | "display_name": "Python 3", 340 | "language": "python", 341 | "name": "python3" 342 | }, 343 | "language_info": { 344 | "codemirror_mode": { 345 | "name": "ipython", 346 | "version": 3 347 | }, 348 | "file_extension": ".py", 349 | "mimetype": "text/x-python", 350 | "name": "python", 351 | "nbconvert_exporter": "python", 352 | "pygments_lexer": "ipython3", 353 | "version": "3.8.8" 354 | } 355 | }, 356 | "nbformat": 4, 357 | "nbformat_minor": 5 358 | } 359 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Supervised-Learning/Regression/Linear-Regressor-or-Single-Variable-Regressor/README.md: -------------------------------------------------------------------------------- 1 | # Lineaer Regressor / Single Variable regressor 2 | 3 | This folder contains coded explanations on how to build Linear Regressors and Single Variable Regressors 4 | 5 | ## Packages Needed 6 | 7 | - Numpy 8 | - scikit-learn 9 | - pandas 10 | - matplotlib 11 | - jupyter notebook 12 | 13 | ## Installing these Packages 14 | - scikit-learn: 15 | `pip install sklearn` 16 | `conda install sklearn` 17 | 18 | to install directly in a jupyter notebook 19 | `!pip install sklearn` 20 | 21 | - jupyter notebook: 22 | `pip install jupyter` 23 | `conda install jupyter notebooks` 24 | 25 | - pandas: 26 | `pip install pandas` 27 | `conda install pandas` 28 | 29 | to install directly in a jupyter notebook 30 | `!pip install pandas` 31 | 32 | - Numpy: 33 | `pip install numpy` 34 | `conda install numpy` 35 | 36 | to install directly in a jupyter notebook 37 | `!pip install numpy` 38 | 39 | - matplotlib 40 | `pip install matplotlib` 41 | `conda install matplotlib` 42 | 43 | to install directly in a jupyter notebook 44 | 45 | `!pip install matplotllib` 46 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Supervised-Learning/Regression/Multivariable-Regressor/Multivariable-Regressors.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "87086168", 6 | "metadata": {}, 7 | "source": [ 8 | "# Multivariable Regressors" 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": null, 14 | "id": "6570ab45", 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "#this explanation was gotten from the mygreatlearning.com website " 19 | ] 20 | }, 21 | { 22 | "cell_type": "markdown", 23 | "id": "653cfcd6", 24 | "metadata": {}, 25 | "source": [ 26 | "Multivariate Regression is a supervised machine learning algorithm involving multiple data variables for analysis. A Multivariate regression is an extension of multiple regression with one dependent variable and multiple independent variables. Based on the number of independent variables, we try to predict the output." 27 | ] 28 | }, 29 | { 30 | "cell_type": "code", 31 | "execution_count": 1, 32 | "id": "a85d537a", 33 | "metadata": {}, 34 | "outputs": [], 35 | "source": [ 36 | "#some part of the code gotten from an article on the sci-kit learn official website" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 2, 42 | "id": "7efde13e", 43 | "metadata": {}, 44 | "outputs": [], 45 | "source": [ 46 | "#import packages \n", 47 | "import numpy as np\n", 48 | "from sklearn.model_selection import train_test_split\n", 49 | "from sklearn.linear_model import LinearRegression\n", 50 | "from sklearn.datasets import load_diabetes\n", 51 | "import sklearn.metrics as metrics\n", 52 | "%matplotlib inline\n", 53 | "import matplotlib.pyplot as plt" 54 | ] 55 | }, 56 | { 57 | "cell_type": "code", 58 | "execution_count": 3, 59 | "id": "eeac5eca", 60 | "metadata": {}, 61 | "outputs": [], 62 | "source": [ 63 | "x, y = load_diabetes(return_X_y = True)\n", 64 | "\n", 65 | "x = x[:, np.newaxis, 2]" 66 | ] 67 | }, 68 | { 69 | "cell_type": "code", 70 | "execution_count": 4, 71 | "id": "dcb83804", 72 | "metadata": {}, 73 | "outputs": [], 74 | "source": [ 75 | "#split data\n", 76 | "\n", 77 | "x_train, x_test, y_train, y_test = train_test_split(x, y)" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 5, 83 | "id": "493fd414", 84 | "metadata": {}, 85 | "outputs": [ 86 | { 87 | "data": { 88 | "text/plain": [ 89 | "LinearRegression()" 90 | ] 91 | }, 92 | "execution_count": 5, 93 | "metadata": {}, 94 | "output_type": "execute_result" 95 | } 96 | ], 97 | "source": [ 98 | "model = LinearRegression()\n", 99 | "\n", 100 | "model.fit(x_train, y_train)" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "execution_count": 6, 106 | "id": "8ebba2b9", 107 | "metadata": {}, 108 | "outputs": [ 109 | { 110 | "name": "stdout", 111 | "output_type": "stream", 112 | "text": [ 113 | "[143.87618588 168.17357151 226.70818233 128.41421322 132.83191969\n", 114 | " 107.43010745 137.24962617 248.79671471 122.89208012 88.65485492\n", 115 | " 266.46754062 84.23714845 210.14178304 168.17357151 67.67074916\n", 116 | " 195.78423699 96.38584126 129.51863983 179.2178377 149.39831898\n", 117 | " 128.41421322 89.75928154 106.32568083 154.92045208 179.2178377\n", 118 | " 215.66391614 123.99650674 160.44258517 114.05666717 201.30637009\n", 119 | " 110.74338731 141.66733265 150.5027456 111.84781393 223.39490247\n", 120 | " 224.49932909 119.57880026 117.36994702 121.7876535 137.24962617\n", 121 | " 140.56290603 61.04418944 172.59127799 88.65485492 318.37559173\n", 122 | " 141.66733265 125.10093336 130.62306645 135.04077293 149.39831898\n", 123 | " 140.56290603 169.27799813 170.38242475 188.05325065 177.00898446\n", 124 | " 144.9806125 156.0248787 207.9329298 101.90797435 94.17698802\n", 125 | " 96.38584126 159.33815855 206.82850318 128.41421322 270.8852471\n", 126 | " 154.92045208 116.2655204 106.32568083 206.82850318 184.7399708\n", 127 | " 100.80354773 194.67981037 87.5504283 79.81944197 110.74338731\n", 128 | " 209.03735642 148.29389236 215.66391614 94.17698802 182.53111756\n", 129 | " 111.84781393 127.3097866 241.06572838 222.29047585 196.88866361\n", 130 | " 189.15767727 128.41421322 213.4550629 226.70818233 165.96471827\n", 131 | " 120.68322688 165.96471827 169.27799813 154.92045208 151.60717222\n", 132 | " 62.14861606 96.38584126 194.67981037 95.28141464 69.8796024\n", 133 | " 148.29389236 191.36653051 91.96813478 220.08162261 141.66733265\n", 134 | " 233.33474204 285.24279315 147.18946574 121.7876535 132.83191969\n", 135 | " 86.44600168]\n" 136 | ] 137 | } 138 | ], 139 | "source": [ 140 | "#predicting results\n", 141 | "prediction = model.predict(x_test)\n", 142 | "\n", 143 | "print(prediction)" 144 | ] 145 | }, 146 | { 147 | "cell_type": "code", 148 | "execution_count": 7, 149 | "id": "219b8f0d", 150 | "metadata": {}, 151 | "outputs": [ 152 | { 153 | "data": { 154 | "image/png": "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\n", 155 | "text/plain": [ 156 | "
" 157 | ] 158 | }, 159 | "metadata": {}, 160 | "output_type": "display_data" 161 | } 162 | ], 163 | "source": [ 164 | "#now to plot and visualize the data\n", 165 | "plt.scatter(x_test, y_test, color='green')\n", 166 | "\n", 167 | "plt.plot(x_test, prediction, color = 'black', linewidth = 2)\n", 168 | "\n", 169 | "plt.xticks(())\n", 170 | "\n", 171 | "plt.yticks(())\n", 172 | "\n", 173 | "plt.show()" 174 | ] 175 | }, 176 | { 177 | "cell_type": "code", 178 | "execution_count": 8, 179 | "id": "e2228fd1", 180 | "metadata": {}, 181 | "outputs": [], 182 | "source": [ 183 | "#performance of the model\n", 184 | "\n", 185 | "#mean absolute error\n", 186 | "mean_absolute_error = round(metrics.mean_absolute_error(y_test, prediction), 2)\n", 187 | "\n", 188 | "#median absolute error\n", 189 | "median_absolute_error = round(metrics.median_absolute_error(y_test, prediction), 2)\n", 190 | "\n", 191 | "#mean squared error\n", 192 | "mean_squared_error = round(metrics.mean_squared_error(y_test, prediction), 2)\n", 193 | "\n", 194 | "#explained variance score\n", 195 | "explained_variance_score = round(metrics.explained_variance_score(y_test, prediction), 2)\n", 196 | "\n", 197 | "#r2 score\n", 198 | "r2_score = round(metrics.r2_score(y_test, prediction), 2)" 199 | ] 200 | }, 201 | { 202 | "cell_type": "code", 203 | "execution_count": 9, 204 | "id": "e26eaa62", 205 | "metadata": {}, 206 | "outputs": [ 207 | { 208 | "name": "stdout", 209 | "output_type": "stream", 210 | "text": [ 211 | "Model Performance Measures\n", 212 | "\n", 213 | "\n", 214 | "Mean Absolute Error: 48.49\n", 215 | "Median Absolute Error: 40.15\n", 216 | "Mean Squared Error: 3535.69\n", 217 | "Explained Variance Score: 0.26\n", 218 | "R2 Score: 0.26\n" 219 | ] 220 | } 221 | ], 222 | "source": [ 223 | "#output performnace measures\n", 224 | "\n", 225 | "print(\"Model Performance Measures\")\n", 226 | "print()\n", 227 | "print()\n", 228 | "print(\"Mean Absolute Error:\", mean_absolute_error)\n", 229 | "\n", 230 | "print(\"Median Absolute Error:\", median_absolute_error)\n", 231 | "\n", 232 | "print(\"Mean Squared Error:\", mean_squared_error)\n", 233 | "\n", 234 | "print(\"Explained Variance Score:\", explained_variance_score)\n", 235 | "\n", 236 | "print(\"R2 Score:\", r2_score)" 237 | ] 238 | }, 239 | { 240 | "cell_type": "markdown", 241 | "id": "5d5e9f53", 242 | "metadata": {}, 243 | "source": [ 244 | "## Explanation of Performance Measures" 245 | ] 246 | }, 247 | { 248 | "cell_type": "markdown", 249 | "id": "c02dfc3a", 250 | "metadata": {}, 251 | "source": [ 252 | "#### Mean Absolute Error:" 253 | ] 254 | }, 255 | { 256 | "cell_type": "markdown", 257 | "id": "3c34748a", 258 | "metadata": {}, 259 | "source": [ 260 | "This is a model evaluation metric used with regression models. The mean absolute error of a model with respect to a test set is the mean of the absolute values of the individual prediction errors on over all instances in the test set." 261 | ] 262 | }, 263 | { 264 | "cell_type": "markdown", 265 | "id": "a653d92a", 266 | "metadata": {}, 267 | "source": [ 268 | "#### Median Absolute Error" 269 | ] 270 | }, 271 | { 272 | "cell_type": "markdown", 273 | "id": "b2df0920", 274 | "metadata": {}, 275 | "source": [ 276 | "To begin, Absolute errors refer to the magnitude of difference between the prediction of an observation and the true value of that observation. MAE takes the average of absolute errors for a group of predictions and observations as a measurement of the magnitude of errors for the entire group." 277 | ] 278 | }, 279 | { 280 | "cell_type": "markdown", 281 | "id": "b71cf45d", 282 | "metadata": {}, 283 | "source": [ 284 | "#### Mean Squared Error" 285 | ] 286 | }, 287 | { 288 | "cell_type": "markdown", 289 | "id": "c8266ff3", 290 | "metadata": {}, 291 | "source": [ 292 | "Mean squared errors measure the average squared difference between the estimated values and the actual value." 293 | ] 294 | }, 295 | { 296 | "cell_type": "markdown", 297 | "id": "43efd648", 298 | "metadata": {}, 299 | "source": [ 300 | "#### Explained Variance Score" 301 | ] 302 | }, 303 | { 304 | "cell_type": "markdown", 305 | "id": "01d6c0f7", 306 | "metadata": {}, 307 | "source": [ 308 | "Explained variance score is used to measure the discrepancy between a model's prediction and actual data provided." 309 | ] 310 | }, 311 | { 312 | "cell_type": "markdown", 313 | "id": "f5888043", 314 | "metadata": {}, 315 | "source": [ 316 | "#### R2 Score" 317 | ] 318 | }, 319 | { 320 | "cell_type": "markdown", 321 | "id": "fe016af6", 322 | "metadata": {}, 323 | "source": [ 324 | "This is ismply the total variance explained by the model over the total variance explained by the model plus the the total variance not explained by the model" 325 | ] 326 | }, 327 | { 328 | "cell_type": "code", 329 | "execution_count": null, 330 | "id": "a2398199", 331 | "metadata": {}, 332 | "outputs": [], 333 | "source": [] 334 | } 335 | ], 336 | "metadata": { 337 | "kernelspec": { 338 | "display_name": "Python 3", 339 | "language": "python", 340 | "name": "python3" 341 | }, 342 | "language_info": { 343 | "codemirror_mode": { 344 | "name": "ipython", 345 | "version": 3 346 | }, 347 | "file_extension": ".py", 348 | "mimetype": "text/x-python", 349 | "name": "python", 350 | "nbconvert_exporter": "python", 351 | "pygments_lexer": "ipython3", 352 | "version": "3.8.8" 353 | } 354 | }, 355 | "nbformat": 4, 356 | "nbformat_minor": 5 357 | } 358 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Supervised-Learning/Regression/Multivariable-Regressor/README.md: -------------------------------------------------------------------------------- 1 | # Multivariable Regressor 2 | This contains coded explanations of multivariable regressors 3 | 4 | ## Packages Needed 5 | - Numpy 6 | - scikit-learn 7 | - pandas 8 | - matplotlib 9 | - jupyter notebook 10 | 11 | ## Installing these Packages 12 | - scikit-learn: 13 | `pip install sklearn` 14 | `conda install sklearn` 15 | 16 | to install directly in a jupyter notebook 17 | `!pip install sklearn` 18 | 19 | - jupyter notebook: 20 | `pip install jupyter` 21 | `conda install jupyter notebooks` 22 | 23 | - pandas: 24 | `pip install pandas` 25 | `conda install pandas` 26 | 27 | to install directly in a jupyter notebook 28 | `!pip install pandas` 29 | 30 | - Numpy: 31 | `pip install numpy` 32 | `conda install numpy` 33 | 34 | to install directly in a jupyter notebook 35 | `!pip install numpy` 36 | 37 | - matplotlib 38 | `pip install matplotlib` 39 | `conda install matplotlib` 40 | 41 | to install directly in a jupyter notebook 42 | 43 | `!pip install matplotllib` 44 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Supervised-Learning/Regression/README.md: -------------------------------------------------------------------------------- 1 | # Regression 2 | This is a folder which contains coded explanations of Regression. 3 | 4 | ## packages Needed 5 | - Numpy 6 | - matplotlib 7 | - pandas 8 | - scikit-learn 9 | - Jupyter Notebook 10 | 11 | ## Installing these Packages 12 | - scikit-learn: 13 | `pip install sklearn` 14 | `conda install sklearn` 15 | 16 | to install directly in a jupyter notebook 17 | `!pip install sklearn` 18 | 19 | - jupyter notebook: 20 | `pip install jupyter` 21 | `conda install jupyter notebooks` 22 | 23 | - pandas: 24 | `pip install pandas` 25 | `conda install pandas` 26 | 27 | to install directly in a jupyter notebook 28 | `!pip install pandas` 29 | 30 | - Numpy: 31 | `pip install numpy` 32 | `conda install numpy` 33 | 34 | to install directly in a jupyter notebook 35 | `!pip install numpy` 36 | 37 | - matplotlib 38 | `pip install matplotlib` 39 | `conda install matplotlib` 40 | 41 | to install directly in a jupyter notebook 42 | 43 | `!pip install matplotllib` 44 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Unsupervised-Learning/Clustering/Building-Cluster-Algorithms/K-Means Clustering.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "5d7115c8", 6 | "metadata": {}, 7 | "source": [ 8 | "# K-Means Clustering" 9 | ] 10 | }, 11 | { 12 | "cell_type": "markdown", 13 | "id": "9f83cb6a", 14 | "metadata": {}, 15 | "source": [ 16 | "This is one of the well known clustering algorithms. It is an iterative clustering algorithm. " 17 | ] 18 | }, 19 | { 20 | "cell_type": "code", 21 | "execution_count": 37, 22 | "id": "2c15080d", 23 | "metadata": {}, 24 | "outputs": [], 25 | "source": [ 26 | "#import necessary packages\n", 27 | "from sklearn.cluster import KMeans\n", 28 | "%matplotlib inline \n", 29 | "import matplotlib.pyplot as plt" 30 | ] 31 | }, 32 | { 33 | "cell_type": "markdown", 34 | "id": "2b6d318b", 35 | "metadata": {}, 36 | "source": [ 37 | "## Dataset" 38 | ] 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "id": "036f2d7f", 43 | "metadata": {}, 44 | "source": [ 45 | "Here we will generate a 2-dimensional dataset, containing 4 blobs by making use of the make_blob object from the sklearn.dataset package" 46 | ] 47 | }, 48 | { 49 | "cell_type": "code", 50 | "execution_count": 38, 51 | "id": "de131042", 52 | "metadata": {}, 53 | "outputs": [], 54 | "source": [ 55 | "from sklearn.datasets._samples_generator import make_blobs\n", 56 | "\n", 57 | "x, y_true = make_blobs(n_samples=500, centers=4, cluster_std=0.40, random_state=0)" 58 | ] 59 | }, 60 | { 61 | "cell_type": "code", 62 | "execution_count": 39, 63 | "id": "5b9794ac", 64 | "metadata": {}, 65 | "outputs": [ 66 | { 67 | "data": { 68 | "image/png": "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\n", 69 | "text/plain": [ 70 | "
" 71 | ] 72 | }, 73 | "metadata": { 74 | "needs_background": "light" 75 | }, 76 | "output_type": "display_data" 77 | } 78 | ], 79 | "source": [ 80 | "plt.scatter(x[:, 0], x[:, 1], s = 50)\n", 81 | "plt.show()" 82 | ] 83 | }, 84 | { 85 | "cell_type": "code", 86 | "execution_count": 40, 87 | "id": "0ac78028", 88 | "metadata": {}, 89 | "outputs": [], 90 | "source": [ 91 | "#initializing k-means algorithm\n", 92 | "kmeans = KMeans(n_clusters=4)" 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 41, 98 | "id": "a658582a", 99 | "metadata": {}, 100 | "outputs": [ 101 | { 102 | "data": { 103 | "image/png": "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\n", 104 | "text/plain": [ 105 | "
" 106 | ] 107 | }, 108 | "metadata": { 109 | "needs_background": "light" 110 | }, 111 | "output_type": "display_data" 112 | } 113 | ], 114 | "source": [ 115 | "kmeans.fit(x)\n", 116 | "y_kmeans = kmeans.predict(x)\n", 117 | "plt.scatter(x[:, 0], x[:, 1], c=y_kmeans, s=50, cmap='viridis')\n", 118 | "\n", 119 | "centers = kmeans.cluster_centers_\n", 120 | "\n", 121 | "#plotting prediction and fit according to clusters found\n", 122 | "plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.4)\n", 123 | "plt.show()" 124 | ] 125 | }, 126 | { 127 | "cell_type": "code", 128 | "execution_count": null, 129 | "id": "9604a322", 130 | "metadata": {}, 131 | "outputs": [], 132 | "source": [] 133 | } 134 | ], 135 | "metadata": { 136 | "kernelspec": { 137 | "display_name": "Python 3", 138 | "language": "python", 139 | "name": "python3" 140 | }, 141 | "language_info": { 142 | "codemirror_mode": { 143 | "name": "ipython", 144 | "version": 3 145 | }, 146 | "file_extension": ".py", 147 | "mimetype": "text/x-python", 148 | "name": "python", 149 | "nbconvert_exporter": "python", 150 | "pygments_lexer": "ipython3", 151 | "version": "3.8.8" 152 | } 153 | }, 154 | "nbformat": 4, 155 | "nbformat_minor": 5 156 | } 157 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Unsupervised-Learning/Clustering/Building-Cluster-Algorithms/README.md: -------------------------------------------------------------------------------- 1 | # Building Cluster Algorithms 2 | This folder provides coded explanations on how to build different Cluster Algorithms 3 | 4 | ## Algorithms Built 5 | - K-Means Clustering 6 | - Mean Shift Algorithm 7 | ## Packages Needed 8 | - scikit-learn 9 | - pandas 10 | - numpy 11 | - matplotlib 12 | - Jupyter Notebook 13 | 14 | ## Installing these Packages 15 | - scikit-learn: 16 | `pip install sklearn` 17 | `conda install sklearn` 18 | 19 | to install directly in a jupyter notebook 20 | `!pip install sklearn` 21 | 22 | - jupyter notebook: 23 | `pip install jupyter` 24 | `conda install jupyter notebooks` 25 | 26 | - pandas: 27 | `pip install pandas` 28 | `conda install pandas` 29 | 30 | to install directly in a jupyter notebook 31 | `!pip install pandas` 32 | 33 | - Numpy: 34 | `pip install numpy` 35 | `conda install numpy` 36 | 37 | to install directly in a jupyter notebook 38 | `!pip install numpy` 39 | 40 | - matplotlib 41 | `pip install matplotlib` 42 | `conda install matplotlib` 43 | 44 | to install directly in a jupyter notebook 45 | 46 | `!pip install matplotllib` 47 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Unsupervised-Learning/Clustering/README.md: -------------------------------------------------------------------------------- 1 | # Clustering 2 | This folder is going to contain coded explanations of Clustering 3 | 4 | ## Packages Needed 5 | - scikit-learn 6 | - pandas 7 | - numpy 8 | - matplotlib 9 | - Jupyter Notebook 10 | 11 | ## Installing these Packages 12 | - scikit-learn: 13 | `pip install sklearn` 14 | `conda install sklearn` 15 | 16 | to install directly in a jupyter notebook 17 | `!pip install sklearn` 18 | 19 | - jupyter notebook: 20 | `pip install jupyter` 21 | `conda install jupyter notebooks` 22 | 23 | - pandas: 24 | `pip install pandas` 25 | `conda install pandas` 26 | 27 | to install directly in a jupyter notebook 28 | `!pip install pandas` 29 | 30 | - Numpy: 31 | `pip install numpy` 32 | `conda install numpy` 33 | 34 | to install directly in a jupyter notebook 35 | `!pip install numpy` 36 | 37 | - matplotlib 38 | `pip install matplotlib` 39 | `conda install matplotlib` 40 | 41 | to install directly in a jupyter notebook 42 | 43 | `!pip install matplotllib` 44 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Unsupervised-Learning/Clustering/clustering-performance-measures/README.md: -------------------------------------------------------------------------------- 1 | # Cluster Algorithms Performance Measures 2 | This folder provides coded explanations on how to build performance measures for Clustering Algorithms 3 | 4 | ## Packages Needed 5 | - scikit-learn 6 | - pandas 7 | - numpy 8 | - matplotlib 9 | - Jupyter Notebook 10 | 11 | ## Installing these Packages 12 | - scikit-learn: 13 | `pip install sklearn` 14 | `conda install sklearn` 15 | 16 | to install directly in a jupyter notebook 17 | `!pip install sklearn` 18 | 19 | - jupyter notebook: 20 | `pip install jupyter` 21 | `conda install jupyter notebooks` 22 | 23 | - pandas: 24 | `pip install pandas` 25 | `conda install pandas` 26 | 27 | to install directly in a jupyter notebook 28 | `!pip install pandas` 29 | 30 | - Numpy: 31 | `pip install numpy` 32 | `conda install numpy` 33 | 34 | to install directly in a jupyter notebook 35 | `!pip install numpy` 36 | 37 | - matplotlib 38 | `pip install matplotlib` 39 | `conda install matplotlib` 40 | 41 | to install directly in a jupyter notebook 42 | 43 | `!pip install matplotllib` 44 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Unsupervised-Learning/Clustering/clustering-performance-measures/Silhouette Analysis.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "id": "608a486f", 6 | "metadata": {}, 7 | "source": [ 8 | "# Silhoutte Analysis" 9 | ] 10 | }, 11 | { 12 | "cell_type": "markdown", 13 | "id": "c2aa1e6e", 14 | "metadata": {}, 15 | "source": [ 16 | "This is basically a way to analyse clusters by getting the distance between the clusters." 17 | ] 18 | }, 19 | { 20 | "cell_type": "markdown", 21 | "id": "6df904e1", 22 | "metadata": {}, 23 | "source": [ 24 | "## Analysis of Silhoutte Score " 25 | ] 26 | }, 27 | { 28 | "cell_type": "markdown", 29 | "id": "db742553", 30 | "metadata": {}, 31 | "source": [ 32 | "The silhoutte score has a range of [-1,1] " 33 | ] 34 | }, 35 | { 36 | "cell_type": "markdown", 37 | "id": "786ebb7d", 38 | "metadata": {}, 39 | "source": [ 40 | "### Score of +1 " 41 | ] 42 | }, 43 | { 44 | "cell_type": "markdown", 45 | "id": "e76f9775", 46 | "metadata": {}, 47 | "source": [ 48 | "This score indicates that the sample data is far away from the neighbouring cluster" 49 | ] 50 | }, 51 | { 52 | "cell_type": "markdown", 53 | "id": "59187b47", 54 | "metadata": {}, 55 | "source": [ 56 | "### Score of 0 " 57 | ] 58 | }, 59 | { 60 | "cell_type": "markdown", 61 | "id": "454bafe6", 62 | "metadata": {}, 63 | "source": [ 64 | "This indicates that the score is very close to the decision boundary of the clusters" 65 | ] 66 | }, 67 | { 68 | "cell_type": "markdown", 69 | "id": "c07bcb52", 70 | "metadata": {}, 71 | "source": [ 72 | "### Score of -1 " 73 | ] 74 | }, 75 | { 76 | "cell_type": "markdown", 77 | "id": "c10824ac", 78 | "metadata": {}, 79 | "source": [ 80 | "This inidicates that the samples have been assigned to the wrong clusters" 81 | ] 82 | }, 83 | { 84 | "cell_type": "code", 85 | "execution_count": 4, 86 | "id": "34585843", 87 | "metadata": {}, 88 | "outputs": [], 89 | "source": [ 90 | "#import necessary packages\n", 91 | "import numpy as np\n", 92 | "from sklearn.cluster import KMeans\n", 93 | "%matplotlib inline\n", 94 | "import matplotlib.pyplot as plt\n", 95 | "import seaborn as sns; sns.set()" 96 | ] 97 | }, 98 | { 99 | "cell_type": "markdown", 100 | "id": "aa432a83", 101 | "metadata": {}, 102 | "source": [ 103 | "## Data " 104 | ] 105 | }, 106 | { 107 | "cell_type": "code", 108 | "execution_count": 7, 109 | "id": "0dd684ba", 110 | "metadata": {}, 111 | "outputs": [], 112 | "source": [ 113 | "#genrating dataset\n", 114 | "from sklearn.datasets._samples_generator import make_blobs\n", 115 | "x, y = make_blobs(n_samples=500, centers=4, cluster_std=0.40, random_state=0)" 116 | ] 117 | }, 118 | { 119 | "cell_type": "code", 120 | "execution_count": 9, 121 | "id": "dfd475f8", 122 | "metadata": {}, 123 | "outputs": [], 124 | "source": [ 125 | "scores = []\n", 126 | "values = np.arange(2, 10)" 127 | ] 128 | }, 129 | { 130 | "cell_type": "code", 131 | "execution_count": 13, 132 | "id": "f184faf7", 133 | "metadata": {}, 134 | "outputs": [], 135 | "source": [ 136 | "for num_clusters in values:\n", 137 | " model=KMeans(init='k-means++', n_clusters=num_clusters, n_init=10)\n", 138 | " model.fit(x)" 139 | ] 140 | }, 141 | { 142 | "cell_type": "code", 143 | "execution_count": 14, 144 | "id": "ad2a1db1", 145 | "metadata": {}, 146 | "outputs": [], 147 | "source": [ 148 | "from sklearn.metrics import silhouette_score\n", 149 | "score=silhouette_score(x, model.labels_, metric='euclidean', sample_size=len(x))" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": 16, 155 | "id": "fd110a1a", 156 | "metadata": {}, 157 | "outputs": [ 158 | { 159 | "name": "stdout", 160 | "output_type": "stream", 161 | "text": [ 162 | "Number of Clusters= 9\n", 163 | "\n", 164 | "Silhoutte Score= 0.32928963205297546\n" 165 | ] 166 | } 167 | ], 168 | "source": [ 169 | "print(\"Number of Clusters=\", num_clusters)\n", 170 | "print(\"\\nSilhoutte Score=\", score)\n", 171 | "scores.append(score)" 172 | ] 173 | }, 174 | { 175 | "cell_type": "code", 176 | "execution_count": 17, 177 | "id": "841e6e8d", 178 | "metadata": {}, 179 | "outputs": [ 180 | { 181 | "name": "stdout", 182 | "output_type": "stream", 183 | "text": [ 184 | "\n", 185 | "Optimal number of clusters= 9\n" 186 | ] 187 | } 188 | ], 189 | "source": [ 190 | "#getting optimal number of clusters\n", 191 | "optimal_num_clusters = np.argmax(scores)+values[0]\n", 192 | "print(\"\\nOptimal number of clusters=\", num_clusters)" 193 | ] 194 | } 195 | ], 196 | "metadata": { 197 | "kernelspec": { 198 | "display_name": "Python 3", 199 | "language": "python", 200 | "name": "python3" 201 | }, 202 | "language_info": { 203 | "codemirror_mode": { 204 | "name": "ipython", 205 | "version": 3 206 | }, 207 | "file_extension": ".py", 208 | "mimetype": "text/x-python", 209 | "name": "python", 210 | "nbconvert_exporter": "python", 211 | "pygments_lexer": "ipython3", 212 | "version": "3.8.8" 213 | } 214 | }, 215 | "nbformat": 4, 216 | "nbformat_minor": 5 217 | } 218 | -------------------------------------------------------------------------------- /Machine-Learning-Concepts/Unsupervised-Learning/README.md: -------------------------------------------------------------------------------- 1 | # Unsupervised Learning 2 | 3 | This folder is going to ofeer coded explanations of Unsupervised Learning Concepts. 4 | 5 | ## Packages Needed 6 | - scikit-learn 7 | - pandas 8 | - numpy 9 | - matplotlib 10 | - Jupyter Notebook 11 | 12 | ## Installing these Packages 13 | - scikit-learn: 14 | `pip install sklearn` 15 | `conda install sklearn` 16 | 17 | to install directly in a jupyter notebook 18 | `!pip install sklearn` 19 | 20 | - jupyter notebook: 21 | `pip install jupyter` 22 | `conda install jupyter notebooks` 23 | 24 | - pandas: 25 | `pip install pandas` 26 | `conda install pandas` 27 | 28 | to install directly in a jupyter notebook 29 | `!pip install pandas` 30 | 31 | - Numpy: 32 | `pip install numpy` 33 | `conda install numpy` 34 | 35 | to install directly in a jupyter notebook 36 | `!pip install numpy` 37 | 38 | - matplotlib 39 | `pip install matplotlib` 40 | `conda install matplotlib` 41 | 42 | to install directly in a jupyter notebook 43 | 44 | `!pip install matplotllib` 45 | -------------------------------------------------------------------------------- /Machine-Learning-Courses/ml-courses.md: -------------------------------------------------------------------------------- 1 | # Machine Learning Courses/Videos 2 | 3 | - [Machine Learning for Everyone](https://www.datacamp.com/courses/machine-learning-for-everyone?utm_source=adwords_ppc&utm_campaignid=9557301080&utm_adgroupid=103540671732&utm_device=c&utm_keyword=%2Bmachine%20%2Blearning%20%2Bcourse&utm_matchtype=b&utm_network=g&utm_adpostion=&utm_creative=423190497508&utm_targetid=aud-299261629654:kwd-64218413482&utm_loc_interest_ms=&utm_loc_physical_ms=21567&gclid=CjwKCAjwsNiIBhBdEiwAJK4khlBfmhoDkulD6exaIyxd-U0WYbhB--93eAe7n-NoYJuQC3bZk3oiDxoCI6EQAvD_BwE) 4 | - [Machine Learning](https://www.coursera.org/learn/machine-learning) 5 | - [Python scikit-learn Tutorial – Machine Learning Crash Course](https://www.freecodecamp.org/news/learn-scikit-learn/) 6 | - [Machine Learning with Python](https://www.freecodecamp.org/learn/machine-learning-with-python/) 7 | - [Machine Learning Crash Course - Google](https://developers.google.com/machine-learning/crash-course) 8 | - [Deep Learning Specialization](https://www.coursera.org/specializations/deep-learning) 9 | - [Machine Learning With Python - Sentdex](https://www.youtube.com/watch?v=OGxgnH8y2NM&list=PLQVvvaa0QuDfKTOs3Keq_kaG2P55YRn5v) 10 | - [NumPy for Data Science Beginners: 2021](https://click.linksynergy.com/deeplink?id=JVFxdTr9V80&mid=39197&murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fthe-complete-numpy-course-for-data-science%2F) 11 | - [IBM Data Science Professional Certificate](https://www.coursera.org/professional-certificates/ibm-data-science) 12 | - [Applied Data Science Module](https://www.wqu.edu/programs/data-science/?utm_source=DW&utm_medium=search&utm_campaign=1727641591_64457839661_NA&utm_content=%2Bmachine%2Blearning%2Bcourse&gclid=CjwKCAjwsNiIBhBdEiwAJK4khsX0GWmL80bCbxCIQRK9DpfN0768LUX8aaIcFJCt7MHCkPzmfuxG8RoCeTsQAvD_BwE&gclsrc=aw.ds) 13 | - [AI For Everyone](https://www.coursera.org/learn/ai-for-everyone?utm_source=gg&utm_medium=sem&utm_campaign=08-AIforEveryone-ROW&utm_content=08-AIforEveryone-ROW&campaignid=9727679885&adgroupid=99187762066&device=c&keyword=intelligence%20course&matchtype=b&network=g&devicemodel=&adpostion=&creativeid=428167449287&hide_mobile_promo&gclid=CjwKCAjwsNiIBhBdEiwAJK4khh1EXrbpZ7EWXnUd0vooOc2RU2XMF8uorX1iyRjv8wjv_ESeTFy2zBoCBEUQAvD_BwE) 14 | - [Machine Learning with Python](https://www.coursera.org/learn/machine-learning-with-python?specialization=ibm-data-science&utm_source=gg&utm_medium=sem&campaignid=2087860785&utm_campaign=10-IBM-Data-Science-ROW&utm_content=10-IBM-Data-Science-ROW&adgroupid=116274867101&device=c&keyword=&matchtype=b&network=g&devicemodel=&adpostion=&creativeid=506892807488&hide_mobile_promo&gclid=CjwKCAjwsNiIBhBdEiwAJK4khqsEyVQuDVPAr5hjqiSRnNMbjo0a6MdmqJ3iXVU_ebVzkLCCl8MbyRoCnE8QAvD_BwE) 15 | - [Data Science Specialization](https://www.coursera.org/specializations/jhu-data-science) 16 | - [Applied Data Science with Python Specialization](https://www.coursera.org/specializations/data-science-python) 17 | - [Data Science Fundamentals with Python and SQL Specialization](https://www.coursera.org/specializations/data-science-fundamentals-python-sql) 18 | - [Neural Networks and Deep Learning](https://www.coursera.org/learn/neural-networks-deep-learning) 19 | - [https://www.coursera.org/professional-certificates/tensorflow-in-practice](https://www.coursera.org/professional-certificates/tensorflow-in-practice) 20 | - [Machine Learning Engineering for Production (MLOps) Specialization](https://www.coursera.org/specializations/machine-learning-engineering-for-production-mlops) 21 | - [TensorFlow 2 for Deep Learning Specialization](https://www.coursera.org/specializations/tensorflow2-deeplearning) 22 | - [Natural Language Processing Specialization](https://www.coursera.org/specializations/natural-language-processing) 23 | - [Advanced Machine Learning Specialization](https://www.coursera.org/specializations/aml) 24 | - [TensorFlow: Advanced Techniques Specialization](https://www.coursera.org/specializations/tensorflow-advanced-techniques) 25 | - [Introduction to Artificial Intelligence (AI)](https://www.coursera.org/learn/introduction-to-ai) 26 | - [Essentials of Data Science](https://www.udemy.com/course/essentials-of-data-science-in-90-minutes/?ranMID=39197&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-9DluVPD7Z2cNJuU9HgmdiQ&LSNPUBID=JVFxdTr9V80&utm_source=aff-campaign&utm_medium=udemyads) 27 | - [What is Data Science?](https://www.coursera.org/learn/what-is-datascience?specialization=ibm-data-science&ranMID=40328&ranEAID=JVFxdTr9V80&ranSiteID=JVFxdTr9V80-IrtEY52Rb1PNn1adIOD0Iw&siteID=JVFxdTr9V80-IrtEY52Rb1PNn1adIOD0Iw&utm_content=10&utm_medium=partners&utm_source=linkshare&utm_campaign=JVFxdTr9V80) 28 | - [Intro to Data for Data Science](https://click.linksynergy.com/deeplink?id=JVFxdTr9V80&mid=39197&murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fintro-to-data-for-data-science%2F) 29 | - [Data Science for Everyone](https://www.datacamp.com/courses/data-science-for-everyone?tap_a=5644-dce66f&tap_s=1105403-195eb4&utm_medium=affiliate&utm_source=javinpaul1) 30 | - [Learn Data Science Tutorial - Full Course for Beginners](https://www.youtube.com/watch?v=ua-CiDNNj30) 31 | - [Machine Learning Full Course | Edureka](https://www.youtube.com/watch?v=GwIo3gDZCVQ) 32 | - [Machine Learning With Python Full Course | Simplilearn](https://www.youtube.com/watch?v=eq7KF7JTinU) 33 | - [Stanford CS229 - Machine Learning](https://www.youtube.com/watch?v=jGwO_UgTS7I&list=PLoROMvodv4rMiGQp3WXShtMGgzqpfVfbU) 34 | - [Machine Learning | Andew Ng, Stanford University](https://www.youtube.com/channel/UC5zx8Owijmv-bbhAK6Z9apg) 35 | - [Statistics - A Full University Course on Data Science Basics](https://www.youtube.com/watch?v=xxpc-HPKN28) 36 | - [Machine Learning with Python: A Practical Introduction](https://www.edx.org/course/machine-learning-with-python-a-practical-introduct) 37 | - [Machine Learning Fundamentals](https://www.edx.org/course/machine-learning-fundamentals-2) 38 | - [Professional Certificate in gitComputer Science for Artificial Intelligence](https://www.edx.org/professional-certificate/harvardx-computer-science-for-artifical-intelligence) 39 | - [Machine learning with Python for finance professionals](https://www.edx.org/course/machine-learning-with-python-for-finance-professionals) 40 | - [Data Science](https://www.edx.org/professional-certificate/harvardx-data-science) 41 | - [Data Science: Machine Learning](https://www.edx.org/course/data-science-machine-learning) 42 | - [Python For Data Science](https://www.youtube.com/watch?v=LHBE6Q9XlzI) 43 | - [Machine Learning with Python: from Linear Models to Deep Learning](https://www.edx.org/course/machine-learning-with-python-from-linear-models-to) 44 | - [PyTorch Basics for Machine Learning](https://www.edx.org/course/pytorch-basics-for-machine-learning) 45 | - [Machine Learning for Data Science and Analytics](https://www.edx.org/course/machine-learning-for-data-science-and-analytics) 46 | - [Introduction to Machine Learning](https://www.edx.org/course/introduction-to-machine-learning) 47 | - [Advanced Machine Learning](https://www.edx.org/course/advanced-machine-learning) 48 | - [Deep Learning with Tensorflow](https://www.edx.org/course/deep-learning-with-tensorflow) 49 | - [Tiny Machine Learning (TinyML)](https://www.edx.org/professional-certificate/harvardx-tiny-machine-learning) 50 | - [Deep Learning with Python and PyTorch](https://www.edx.org/course/deep-learning-with-python-and-pytorch) 51 | - [Understanding Artificial Intelligence through Algorithmic Information Theory](https://www.edx.org/course/artificial-intelligence-algorithmic-information-aiai) 52 | - [Introduction To Deep Learning](https://www.edx.org/course/introduction-to-deep-learning-2) 53 | -------------------------------------------------------------------------------- /Machine-Learning-Podcasts/ml-podcasts.md: -------------------------------------------------------------------------------- 1 | # Machine Learning Podcasts 2 | 3 | - [Gradient Dissent](https://wandb.ai/site/podcast) - A Machine Learning podcast that focuses on “Stories from machine learning experts solving real-world problems.” 4 | - [Machine Learning Guide](https://podcasts.google.com/feed/aHR0cDovL21hY2hpbmVsZWFybmluZ2d1aWRlLmxpYnN5bi5jb20vcnNz) - Machine learning audio course, teaching the fundamentals of machine learning and artificial intelligence. It covers intuition, models (shallow and deep), math, languages, frameworks, etc. 5 | - [Practical AI: Machine Learning, Data Science](https://podcasts.google.com/feed/aHR0cHM6Ly9jaGFuZ2Vsb2cuY29tL3ByYWN0aWNhbGFpL2ZlZWQ?sa=X&ved=0CAMQ4aUDahcKEwjIr8-Qm6fyAhUAAAAAHQAAAAAQAQ) - Practical AI is a show in which technology professionals, business people, students, enthusiasts, and expert guests engage in lively discussions about Artificial Intelligence and related topics (Machine Learning, Deep Learning, Neural Networks, etc). 6 | - [The TWIML AI Podcast](https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkcy5tZWdhcGhvbmUuZm0vTUxOMjE1NTYzNjE0Nw?sa=X&ved=0CAMQ4aUDahcKEwjA6rOip6fyAhUAAAAAHQAAAAAQAQ) - The TWIML AI Podcast brings the top minds and ideas from the world of ML and AI to a broad and influential community of ML/AI researchers, data scientists, engineers and tech-savvy business and IT leaders. 7 | - [Super Data Science](https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkcy5zb3VuZGNsb3VkLmNvbS91c2Vycy9zb3VuZGNsb3VkOnVzZXJzOjI1MzU4NTkwMC9zb3VuZHMucnNz?sa=X&ved=0CAMQ4aUDahcKEwjYy-nYp6fyAhUAAAAAHQAAAAAQAQ) - The Super Data Science podcast brings you the latest and most important machine learning, artificial intelligence, and broader data-world topics from across both academia and industry. 8 | - [Machine learning](https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy85ZGE2NWZjL3BvZGNhc3QvcnNz?sa=X&ved=0CBYQ27cFahcKEwjgzJTomqfyAhUAAAAAHQAAAAAQAg) - Machine learning is the most important technological breakthrough in the 21st century. Listen to my views on the future of machine learning. 9 | - [Machine Learning Simplified](https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy8zMjdhZWJmOC9wb2RjYXN0L3Jzcw?sa=X&ved=0CBcQ27cFahcKEwjgzJTomqfyAhUAAAAAHQAAAAAQAg) - This Podcast is created for those who are taking their first step in Machine Learning, those of you who want to brush up the concepts of Machine Learning, learn in a very simple, easy, and interesting manner. The episodes cover the basic concepts of Machine Learning, getting familiar with models, algorithms, other technical concepts . 10 | - [Machine Learning Street Talk](https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy8xZTRhMGVhYy9wb2RjYXN0L3Jzcw?sa=X&ved=0CBkQ27cFahcKEwjgzJTomqfyAhUAAAAAHQAAAAAQAg) - This is the audio podcast for the [ML Street Talk YouTube channel](https://www.youtube.com/c/MachineLearningStreetTalk). Each week we have a hard-hitting discussion with the leading thinkers in the AI space. 11 | - [Data Skeptic](https://podcasts.google.com/feed/aHR0cHM6Ly9kYXRhc2tlcHRpYy5saWJzeW4uY29tL3Jzcw?sa=X&ved=0CBoQ27cFahcKEwjgzJTomqfyAhUAAAAAHQAAAAAQAg) - The Data Skeptic Podcast features interviews and discussion of topics related to data science, statistics, machine learning, artificial intelligence and the like, all from the perspective of applying critical thinking and the scientific method to evaluate the veracity of claims and efficacy of approaches. 12 | - [Machine Learning Engineered](https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkcy5jYXB0aXZhdGUuZm0vbWxlbmdpbmVlcmVkLw?sa=X&ved=0CBsQ27cFahcKEwjgzJTomqfyAhUAAAAAHQAAAAAQAg) - This podcast helps Machine Learning Engineers become the best at what they do. Join host Charlie You every week as he talks to the brightest minds in data science, artificial intelligence, and software engineering to discover how they bring cutting edge research out of the lab and into products that people love. 13 | - [Machine Learning Africa](https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkLnBvZGJlYW4uY29tL2pvaGFuYnUvZmVlZC54bWw?sa=X&ved=0CBwQ27cFahcKEwjgzJTomqfyAhUAAAAAHQAAAAAQAg) - Machine Learning Africa provides insight into emerging machine learning technologies and their inevitable impact in transforming Africa. Provides a platform where innovators, technology vendors, end users and enthusiasts discuss latest innovations and technologies that transform businesses and the broader society. 14 | - [Adventures in Machine Learning](https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkcy5mZWVkd3JlbmNoLmNvbS9hZHZlbnR1cmVzLWluLW1hY2hpbmUtbGVhcm5pbmcucnNz?sa=X&ved=0CB8Q27cFahcKEwjgzJTomqfyAhUAAAAAHQAAAAAQAg) - Seasoned pro or complete beginner, everyone can join our weekly Adventures in Machine Learning podcast. We're covering all the breakthroughs, influencers, and resources of Machine Learning with our venturesome AI panel and guests. 15 | - [Learning Machines 101](https://podcasts.google.com/feed/aHR0cDovL2xlYXJuaW5nbWFjaGluZXMxMDEubGlic3luLmNvbS9yc3M?sa=X&ved=0CCAQ27cFahcKEwjgzJTomqfyAhUAAAAAHQAAAAAQAg) - Smart machines based upon the principles of artificial intelligence and machine learning are now prevalent in our everyday life. In this podcast series, we examine such questions such as: How do these devices work? Where do they come from? And how can we make them even smarter and more human-like? 16 | - [Talking machines](https://podcasts.google.com/feed/aHR0cHM6Ly93d3cub21ueWNvbnRlbnQuY29tL2QvcGxheWxpc3QvYWFlYTRlNjktYWY1MS00OTVlLWFmYzktYTk3NjAxNDY5MjJiL2I5MmJhYTNjLWI5YzgtNDg4Yy1hYTllLWFhZmQwMDFjYmY2Ni8xMmFiYmMzYy1hZTUzLTQ4N2EtYjgzYi1hYWZkMDAxY2JmNzkvcG9kY2FzdC5yc3M?sa=X&ved=0CCEQ27cFahcKEwjgzJTomqfyAhUAAAAAHQAAAAAQAg) - alking Machines is your window into the world of machine learning. Your hosts, Katherine Gorman and Neil Lawrence, bring you clear conversations with experts in the field, insightful discussions of industry news, and useful answers to your questions 17 | - [Artificial Intelligence and You](https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkLnBvZGJlYW4uY29tL2FpYW5keW91L2ZlZWQueG1s) - This podcast explain what AI is, how it affects your life, your work, and your world. 18 | - [Deep Learning: Zero to One](https://podcasts.google.com/feed/aHR0cHM6Ly9kZWVwbGVhcm5pbmcucG9kb21hdGljLmNvbS9yc3MyLnhtbA?sa=X&ved=0CCUQ27cFahcKEwjQo6LwxLbyAhUAAAAAHQAAAAAQHQ) - This Podcast is supported by Enterprise Deep Learning. We move deep learning to production. -------------------------------------------------------------------------------- /Machine-Learning-Repositories/ml-repositories.md: -------------------------------------------------------------------------------- 1 | # Machine Learning Repositories 2 | 3 | - [Awesome Machine Learning](https://github.com/josephmisiti/awesome-machine-learning) - A curated list of awesome machine learning frameworks, libraries and software (by language). 4 | - [Deep Learning Models](https://github.com/rasbt/deeplearning-models) - A collection of various deep learning architectures, models, and tips for TensorFlow and PyTorch in Jupyter Notebooks. 5 | - [Start Machine Learning](https://github.com/louisfb01/start-machine-learning-in-2020) - A complete guide to start and improve in machine learning (ML), artificial intelligence (AI) without ANY background in the field and stay up-to-date with the latest news and state-of-the-art techniques! 6 | - [Machine Learning Module](https://github.com/josephmisiti/machine-learning-module) - The best machine learning tutorials on the web. 7 | - [Awesome Deep Learning](https://github.com/ChristosChristofidis/awesome-deep-learning) - A curated list of awesome Deep Learning tutorials, projects and communities. 8 | - [Code for Machine Learning for Hackers](https://github.com/johnmyleswhite/ML_for_Hackers) - This repository contains all of the code examples for Machine Learning for Hackers (2012). 9 | - [Open Source Machine Learning Degree](https://github.com/sjqtentacles/open-source-machine-learning-degree) - Learn machine learning for free, because free is better than not-free. 10 | - [ML Notes](https://github.com/johnmyleswhite/MLNotes) - Very concise notes on machine learning and statistics. 11 | - [Scikit-learn tutorials](https://github.com/mike-perdide/scikit-learn-tutorial) - About Applied Machine Learning in Python with scikit-learn. 12 | - [Udacity's Machine Learning curriculum](https://github.com/udacity/machine-learning) - Content for Udacity's Machine Learning curriculum. 13 | - [Top-down learning path: Machine Learning for Software Engineers](https://github.com/ZuzooVn/machine-learning-for-software-engineers) - A complete daily plan for studying to become a machine learning engineer. 14 | - [Hands On Machine Learning](https://github.com/ageron/handson-ml) - A series of Jupyter notebooks that walk you through the fundamentals of Machine Learning and Deep Learning in python using Scikit-Learn and TensorFlow. 15 | - [Machine Learning Tutorials](https://github.com/ethen8181/machine-learning) - Machine learning tutorials (mainly in Python3) 16 | - [Deep Learning (PyTorch) - ND101 v7](https://github.com/udacity/deep-learning-v2-pytorch) - Projects and exercises for the latest Deep Learning ND program. 17 | -[Reinforcement Learning](https://github.com/dennybritz/reinforcement-learning) - Implementation of Reinforcement Learning Algorithms. Python, OpenAI Gym, Tensorflow. Exercises and Solutions to accompany Sutton's Book and David Silver's course. 18 | - [Deep Learning Papernotes](https://github.com/dennybritz/deeplearning-papernotes) - Summaries and notes on Deep Learning research papers. 19 | - [Neural Network From Scratch](https://github.com/dennybritz/nn-from-scratch) - Implementing a Neural Network from Scratch. 20 | - [Convolutional Neural Networks for Sentence Classification](https://github.com/dennybritz/cnn-text-classification-tf) - Convolutional Neural Network for Text Classification in Tensorflow. 21 | - [Deep Reinforcement Learning Nanodegree](https://github.com/udacity/deep-reinforcement-learning) - Repo for the Deep Reinforcement Learning Nanodegree program. 22 | - [Deep Learning Nanodegree Foundation](https://github.com/udacity/deep-learning) - Repo for the Deep Learning Nanodegree Foundations program. 23 | - [Python Machine Learning book code repository](https://github.com/rasbt/python-machine-learning-book) - The "Python Machine Learning (1st edition)" book code repository and info resource. 24 | - [Machine Learning Examples And Tutorials.](https://github.com/lazyprogrammer/machine_learning_examples) - A collection of machine learning examples and tutorials. 25 | - [Data science blogs](https://github.com/rushter/data-science-blogs) - A curated list of data science blogs. 26 | - [Data Science Resources](https://github.com/jonathan-bower/DataScienceResources) - Open Source Data Science Resources. 27 | - [Data Scientist Roadmap](https://github.com/MrMimic/data-scientist-roadmap) - A roadmap to start your data science career. 28 | - [PyTorch Tutorials](https://github.com/pytorch/tutorials) - PyTorch tutorials. 29 | - [Deep Learning Tutorials](https://github.com/lisa-lab/DeepLearningTutorials) - Deep Learning Tutorial notes and code. 30 | - [Heamy](https://github.com/rushter/heamy) - A set of useful tools for competitive data science. 31 | - [Machine learning algorithms](https://github.com/rushter/MLAlgorithms) - Minimal and clean examples of machine learning algorithms implementations. 32 | - [Homemade Machine Learning](https://github.com/trekhleb/homemade-machine-learning) - Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained. 33 | - [Azure Machine Learning Python SDK notebooks](https://github.com/Azure/MachineLearningNotebooks) - About 34 | Python notebooks with ML and deep learning examples with Azure Machine Learning Python SDK | Microsoft. 35 | - [Machine Learning & Deep Learning Tutorials](https://github.com/ujjwalkarn/Machine-Learning-Tutorials) - Machine learning and deep learning tutorials, articles and other resources 36 | - [Machine Learning With Python](https://github.com/susanli2016/Machine-Learning-with-Python) - Python code for common Machine Learning Algorithms. 37 | - [Dive into Machine Learning](https://github.com/hangtwenty/dive-into-machine-learning) - Dive into Machine Learning with Python Jupyter notebook and scikit-learn!. 38 | - [Machine Learning cheatsheets for Stanford's CS 229](https://github.com/afshinea/stanford-cs-229-machine-learning) - VIP cheatsheets for Stanford's CS 229 Machine Learning. 39 | - [MachineLearning](https://github.com/carefree0910/MachineLearning) - Machine learning algorithms implemented by pure numpy. 40 | - [Ml Course](https://github.com/Yorko/mlcourse.ai) - Open Machine Learning Course. 41 | - [Awesome production machine learning](https://github.com/EthicalML/awesome-production-machine-learning) - A curated list of awesome open source libraries to deploy, monitor, version and scale your machine learning. 42 | - [3D Machine Learning](https://github.com/timzhang642/3D-Machine-Learning) - A resource repository for 3D machine learning. 43 | - [Awesome AI Guidelines](https://github.com/EthicalML/awesome-artificial-intelligence-guidelines) - This repository aims to map the ecosystem of artificial intelligence guidelines, principles, codes of ethics, standards, regulation and beyond. 44 | - [A Machine Learning Course with Python](https://github.com/instillai/machine-learning-course) - Machine Learning Course with Python. 45 | - [TensorFlow Course](https://github.com/instillai/TensorFlow-Course) - Simple and ready-to-use tutorials for TensorFlow. 46 | - [Deep Learning - All You Need to Know](https://github.com/instillai/deep-learning-roadmap) - All You Need to Know About Deep Learning - A kick-starter. 47 | - [TensorFlow Roadmap](https://github.com/instillai/TensorFlow-Roadmap) - Organized & Useful Resources about Deep Learning with TensorFlow 48 | - [Machine-Learning / Deep-Learning / AI -Tutorials](https://github.com/TarrySingh/Artificial-Intelligence-Deep-Learning-Machine-Learning-Tutorials) - A comprehensive list of Deep Learning / Artificial Intelligence and Machine Learning tutorials. 49 | - [Numpy Ml](https://github.com/ddbourgin/numpy-ml) - Machine learning, in numpy. 50 | - [Deep Learning Papers Reading Roadmap](https://github.com/floodsung/Deep-Learning-Papers-Reading-Roadmap) - Deep Learning papers reading roadmap for anyone who are eager to learn this amazing tech! 51 | - [Meta Learning Papers](https://github.com/floodsung/Meta-Learning-Papers) - Meta Learning / Learning to Learn / One Shot Learning / Few Shot Learning. 52 | - [Machine Learning Systems Design](https://github.com/chiphuyen/machine-learning-systems-design) - A booklet on machine learning systems design with exercises. 53 | - [Machine Learning and Data Science Applications in Industry](https://github.com/firmai/industry-machine-learning) - A curated list of applied machine learning and data science notebooks and libraries across different industries. 54 | - [Deployment of Machine Learning Models](https://github.com/trainindata/deploying-machine-learning-models) - Example Repo for the Udemy Course "Deployment of Machine Learning Models" 55 | - [Business Machine Learning and Data Science Applications](https://github.com/firmai/business-machine-learning) - A curated list of practical business machine learning (BML) and business data science (BDS) applications for Accounting, Customer, Employee, Legal, Management and Operations. 56 | - [Financial Machine Learning and Data Science](https://github.com/firmai/financial-machine-learning) - A curated list of practical financial machine learning tools and applications. 57 | - [Machine Learning Mindmap / Cheatsheet](https://github.com/dformoso/machine-learning-mindmap) - A mindmap summarising Machine Learning concepts, from Data Analysis to Deep Learning. 58 | - [Deep Learning Mindmap / Cheatsheet](https://github.com/dformoso/deeplearning-mindmap) - A mindmap summarising Deep Learning concepts. 59 | - [Python Machine Learning Jupyter Notebooks ](https://github.com/tirthajyoti/Machine-Learning-with-Python) - Practice and tutorial-style notebooks covering wide variety of machine learning techniques. 60 | - [Machine Learning Roadmap](https://github.com/mrdbourke/machine-learning-roadmap) - A roadmap connecting many of the most important concepts in machine learning, how to learn them and what tools to use to perform them. 61 | - [Papers and literature on ML/DL/RL/AI](https://github.com/tirthajyoti/Papers-Literature-ML-DL-RL-AI) - Highly cited and useful papers related to machine learning, deep learning, AI, game theory, reinforcement learning. 62 | - [Zero to Mastery Deep Learning with TensorFlow](https://github.com/mrdbourke/tensorflow-deep-learning) - All course materials for the Zero to Mastery Deep Learning with TensorFlow course. 63 | - [All course materials for the Zero to Mastery Machine Learning and Data Science course.](https://github.com/mrdbourke/zero-to-mastery-ml) - Zero to Mastery Machine Learning. 64 | - [Deep Learning with Python ](https://github.com/tirthajyoti/Deep-learning-with-Python) - Deep learning codes and projects using Python. 65 | - [Machine learning cheat sheet](https://github.com/soulmachine/machine-learning-cheat-sheet) - Classical equations and diagrams in machine learning 66 | - [Machine learning basics](https://github.com/zotroneneis/machine_learning_basics) - Plain python implementations of basic machine learning algorithms. 67 | - [Practical Machine Learning with Python](https://github.com/dipanjanS/practical-machine-learning-with-python) - Master the essential skills needed to recognize and solve complex real-world problems with Machine Learning and Deep Learning by leveraging the highly popular Python Machine Learning Eco-system. 68 | - [Hands-On Transfer Learning with Python](https://github.com/dipanjanS/hands-on-transfer-learning-with-python) - Deep learning simplified by transferring prior learning using the Python deep learning ecosystem. 69 | - [Data science for all](https://github.com/dipanjanS/data_science_for_all) - Code and resources for my blog and articles to share Data Science and AI knowledge and learnings with everyone. 70 | - [NLP Essentials](https://github.com/dipanjanS/nlp_essentials) - Essential and Fundametal aspects of Natural Language Processing with hands-on examples and case-studies. 71 | - [Data Analysis and Machine Learning Projects](https://github.com/rhiever/Data-Analysis-and-Machine-Learning-Projects) - Repository of teaching materials, code, and data for my data analysis and machine learning projects. 72 | - [Neural Structured Learning in TensorFlow](https://github.com/tensorflow/neural-structured-learning) - Training neural models with structured signals. 73 | - [Machine Learning Collection](https://github.com/aladdinpersson/Machine-Learning-Collection) - A resource for learning about ML, DL, PyTorch and TensorFlow. 74 | - [Financial Machine Learning and Data Science](https://github.com/firmai/financial-machine-learning) - A curated list of practical financial machine learning tools and applications. 75 | - [Awesome Quantum Machine Learning](https://github.com/krishnakumarsekar/awesome-quantum-machine-learning) - Here you can get all the Quantum Machine learning Basics, Algorithms ,Study Materials ,Projects and the descriptions of the projects around the web. 76 | - [Have Fun with Machine Learning: A Guide for Beginners](https://github.com/humphd/have-fun-with-machine-learning) - An absolute beginner's guide to Machine Learning and Image Classification with Neural Networks 77 | - [Awesome Machine Learning Interpretability](https://github.com/jphall663/awesome-machine-learning-interpretability) - A curated list of awesome machine learning interpretability resources. 78 | - [Machine Learning Interview](https://github.com/khangich/machine-learning-interview) - Machine Learning Interviews from FAAG, Snapchat, LinkedIn. I have offers from Snapchat, Coupang, Stitchfix etc. 79 | -------------------------------------------------------------------------------- /Machine-Learning-Roadmap/Roadmap.md: -------------------------------------------------------------------------------- 1 | # Machine learning, Sounds cool right? So you want a path to Learn Machine Learning. 2 | 3 | ### Here's you Complete Roadmap on how you should start your career as a *Machine Learning Engineer* or *Developer*! 👩‍💻👨‍💻 4 | 5 | 6 | Let's get Started ⬇ 7 | 8 | 9 | ## • What is Machine Learning? 10 | 11 | ### 👉 Before understanding the meaning of machine learning in my own way, let’s see the formal definitions of machine learning. 12 | 13 | 14 | **• Machine learning is the science of getting computers to act without being explicitly programmed.- Stanford** 15 | 16 | ### Here is my definition of Machine Learning. 17 | 18 | 19 | **• Machine learning is the ability of the machine to learn on its own with the Help of Algorithms and Data.** 20 | 21 | ![E3lwD89WYAEoNzH.jpeg](https://cdn.hashnode.com/res/hashnode/image/upload/v1625464387357/p6OK5vgab.jpeg) 22 | 23 | 24 | ### 👉 Some real Facts, that most people don't know. 25 | 26 | • You don't need too much Math to start learning ML. 27 | 28 | • You don't need GPU or Special Hardware to start. 29 | 30 | • It doesn't matter what's your age. 31 | 32 | • You don't need any degree. 33 | 34 | • You don't need too much money. 35 | 36 | • Just follow this ⬇ 37 | 38 | **Everything starts with your School Mathematics.** 39 | 40 | 41 | **As I said that you don't need to be a Mathematician or get a Master's degree in Maths If, you just start to learn ML. Your school Maths is enough.** 42 | 43 | ### 👉 I'm pretty much sure that your school teaches you these topics, if yes this should be great for you. 44 | 45 | • Linear Algebra 46 | 47 | • Probability 48 | 49 | • Statistics 50 | 51 | • Trignometry 52 | 53 | • Arthemitic 54 | 55 | **These topics should be enough to start learning ML.** 56 | 57 | 58 | ![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1625464786111/pChzkoEmP.png) 59 | 60 | Now, The Most Important part of your ML journey. Yes, you guess right "Programming". 61 | 62 | ### 👉 It doesn't matter which programming language you should choose, Pick one of them. 63 | 64 | • Python 65 | 66 | • Java 67 | 68 | • C++ 69 | 70 | • R 71 | 72 | • Javascript 73 | 74 | • Julia 75 | 76 | ### But, my recommendation is **"Python".** 77 | 78 | 79 | ### 👉 So, why Python. 80 | 81 | - Less Code. 82 | - Pre-built Libraries. 83 | - Ease to Learn. 84 | - Independent of Platform. 85 | - Wide Community Support. 86 | - More Computing Power. 87 | - Data Generation. 88 | - Better and Faster Algorithm. 89 | - Capital Flow and Investment. 90 | 91 | *You need to focus on your Model, not on your Code.* 92 | 93 | 94 | ![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1625464822267/4YwdQ5ksl.png) 95 | 96 | *I'm not going to mess up you with too many resources, Here is one of my favorite video courses and books.* 97 | 98 | ### Python for Beginners! 99 | 100 | • Python for beginners is the perfect starting location for getting started. 101 | 102 | • No Python experience is required! 103 | 104 | [![Python for Beginners Youtube Video Course by Microsoft Developer.](https://img.youtube.com/vi/jFCNu1-Xdsw/0.jpg)](https://youtu.be/jFCNu1-Xdsw) 105 | 106 | ### More Python for Beginners! 107 | 108 | • More Python for beginners digs deeper into Python syntax. 109 | 110 | • You'll explore some concepts of advanced Python. 111 | 112 | [![More Python for Beginners Youtube Video Course by Microsoft Developer.](https://img.youtube.com/vi/uQ5BZht9L3A/0.jpg)](https://youtu.be/uQ5BZht9L3A) 113 | 114 | Wait, Don't watch these courses like a dummy, start exploring these courses in real-world projects, It doesn't matter which project you are making. 115 | 116 | ### Here is your Intermediate Python Course. 117 | 118 | [![Youtube Video](https://img.youtube.com/vi/HGOBQPFzWKo/0.jpg)](https://youtu.be/HGOBQPFzWKo) 119 | 120 | ### 👉 Here are the topics you should be focusing on. 121 | 122 | - Printing statements 123 | - Variables 124 | - Operators 125 | - Conditions 126 | - Functions 127 | - Loops 128 | - List slicing 129 | - String formatting 130 | - Dictionaries & Tuples 131 | - Exception handling 132 | - Data Structures 133 | - Accessing Web Data 134 | - Using Databases 135 | - Basic terminal commands 136 | - Retrieving, Processing, and Visualizing Data 137 | - Object-oriented programming in Python: Classes, Objects, Methods 138 | 139 | 140 | **Quick💡 tip**, Most people miss "Object-Oriented Programming in Python". Here is the Youtube video which helps you to learn OOP by - @[Patrick Loeber](@patloeber) 141 | 142 | [![Youtube Video](https://img.youtube.com/vi/-pEs-Bss8Wc/0.jpg)](https://youtu.be/-pEs-Bss8Wc) 143 | 144 | 145 | ### 👉 **Congratulations! 🎉 You are somehow ready to learn more about Machine Learning.** 146 | 147 | Alright, *We have a handle on Python programming and understand a bit about machine learning*. Beyond Python, there are a number of open-source libraries generally used in practical machine learning. 148 | 149 | Now, Start Exploring and Learning about Python Libraries for Machine Learning. 150 | 151 | Such as: 152 | 153 | • Pandas 154 | 155 | • Numpy 156 | 157 | • Matplotlib 158 | 159 | • Scikit-Learn 160 | 161 | ### Python Libraries for Machine Learning 162 | 163 | 👉 **Pandas** - For processing CSV files. Of course, you will need to process some tables, and see statistics, and this is the right tool you want to use. 164 | 165 | Here is the best Youtube Playlist to learn Pandas for Machine Learning. 166 | 167 | [![image](https://user-images.githubusercontent.com/78334545/126056162-899ad6a5-d9d2-4a8b-a02d-4b0f0507ea8e.png)](https://youtu.be/ZyhVh-qRZPA) 168 | 169 | 👉 **Numpy** - The famous numerical analysis library. It will help you do many things, from computing the median of the data distribution to processing multidimensional arrays. 170 | 171 | Here is the best Youtube Video to learn Numpy for Machine Learning. 172 | 173 | [![image](https://user-images.githubusercontent.com/78334545/126056230-1adb78a9-a354-4965-b862-666715fa8d4f.png)](https://www.youtube.com/watch?v=QUT1VHiLmmI) 174 | 175 | 👉 **Matplotlib** - After you have the data stored in Pandas data frames, you might need some visualizations to understand more about the data. Images are still better than thousands of words. 176 | 177 | Here is the Playlist to learn Matplotlib for Machine Learning. 178 | 179 | [![image](https://user-images.githubusercontent.com/78334545/126056251-4d8da304-d52e-4dcc-945a-169a7170f14a.png)](http://www.youtube.com/playlist?list=PL-osiE80TeTvipOqomVEeZ1HRrcEvtZB_) 180 | 181 | 👉 **Scikit-Learn** - This is the final boss of Machine Learning with Python. Machine Learning with Python is this guy, Scikit-Learn. All of the things you need from algorithms to improvements are here. 182 | 183 | Here is your 3hrs Youtube Video Course. 184 | [![image](https://user-images.githubusercontent.com/78334545/126056270-9d5ef415-c58e-46e1-aa58-a7b3ab416e0d.png)](https://www.youtube.com/watch?v=0B5eIE_1vpU) 185 | 186 | Start learning and Exploring the Basic of ML algorithms such as: 187 | 188 | • Linear Regression 189 | 190 | • K-Means 191 | 192 | • Random Forest 193 | 194 | • SVM 195 | 196 | • Decision Tree 197 | 198 | They are included in **Scikit-Learn Library** 199 | 200 | 201 | ### 👉 Now, you are ready with your basic Machine Learning Skills but don't forget that you need to create real-world projects for enhancing your knowledge in this domain. 202 | **Don't forget to take a look at this course.** 203 | 204 | [![image](https://user-images.githubusercontent.com/78334545/126056282-ade19225-2173-4e6f-b64d-ad84870d1e8d.png)](https://developers.google.com/machine-learning/crash-course) 205 | 206 | 207 | **Foundational Machine Learning Skills.** 208 | 209 | ### 👉 Be ready for some theory, and don’t worry about the lack of Python: this is not a course to focus on writing code. 210 | Probably the most popular Machine Learning course in the world is 211 | 212 | [![image](https://user-images.githubusercontent.com/78334545/126056290-91d17a65-5770-44b2-bf25-3028cce7bc9a.png)](https://www.coursera.org/learn/machine-learning) 213 | 214 | 215 | 216 | ### 👉 You’ll cover the most important aspects of classical machine learning, including the following topics: 217 | 218 | - Linear and Logistic Regression 219 | - Regularization 220 | - Neural Networks 221 | - Support Vector Machines 222 | - Dimensionality Reduction 223 | - Anomaly Detection 224 | - Recommender Systems 225 | 226 | **Time to Focus on Mathematics.** 227 | 228 | **The topics of math you'll have to focus on** 229 | 230 | - Linear Algebra 231 | - Calculus 232 | - Trigonometry 233 | - Algebra 234 | - Statistics 235 | - Probability 236 | 237 | **The math for Machine learning e-book** 238 | 239 | ### 👉 This is a book aimed at someone who knows quite a decent amount of high school math like trigonometry, calculus, I suggest reading this after having the fundamentals down on khan academy. 240 | 241 | [![image](https://user-images.githubusercontent.com/78334545/126056297-c5d3f50d-e063-4923-b15d-82d420d3e1be.png)](https://github.com/gaurtvin/E-Books) 242 | 243 | ** Getting to the next level, Deep Learning** 244 | 245 | ### 👉 The Deep Learning specialization offered by DeepLearning AI is your next stop. Andrew Ng will be your teacher. 246 | 247 | [![image](https://user-images.githubusercontent.com/78334545/126056319-ff30b287-7953-4d41-8af7-acc4a2084cf0.png)](https://www.coursera.org/specializations/deep-learning) 248 | 249 | **There are 5 courses on this specialization:** 250 | 251 | - Neural Networks and Deep Learning 252 | - Hyperparameter Tuning, Regularization, and Optimization 253 | - Structuring Machine Learning Projects 254 | - Convolutional Neural Networks 255 | - Sequence Models 256 | 257 | 258 | ![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1625466619303/ZsvHDFfZx.png) 259 | 260 | ### 👉 This is a foundational program that will help you understand the capabilities, challenges, and consequences of deep learning 261 | 262 | *You’ll need Python for this one, and I’d recommend you complete the Machine Learning course before enrolling.* 263 | 264 | [![image](https://user-images.githubusercontent.com/78334545/126056379-aab699ba-f2b4-4f50-8927-a0b13c22c9d1.png)](https://t.co/GHFti1Hzip?amp=1) 265 | 266 | 267 | > 268 | Building a career in machine learning is a lifelong pursuit. 269 | 270 | But every journey starts with the first step, and I hope this thread helps you. 271 | 272 | Now, It's time to get more into DeepLearning 273 | 274 | Start with the **TensorFlow Developer Professional Certificate** offered by DeepLearning AI 275 | 276 | 277 | ### 👉 You’ll cover the basics of TensorFlow, and by the end of the specialization, you’ll have what you need to use the framework proficiently. 278 | 279 | [![image](https://user-images.githubusercontent.com/78334545/126056391-8063450a-471f-4191-a133-51fd720526a9.png)](https://t.co/TsQtpfcGg1?amp=1) 280 | 281 | **Going beyond models.** 282 | 283 | ### 👉 DeepLearning AI released a new specialization just a couple of weeks ago. It’s called *Machine Learning Engineering For Production (MLOps)*, and it focuses on the full machine learning pipeline. 284 | 285 | [![image](https://user-images.githubusercontent.com/78334545/126056401-162e0e72-038c-4dd8-b180-8bbe2184f133.png)](https://t.co/VoM9AIuny9?amp=1) 286 | 287 | ### 👉 Machine learning is much more than building models, and this specialization will teach you everything you need to build end-to-end systems. 288 | 289 | > 290 | How was it? It doesn’t seem very difficult, does it? Machine Learning with Python is easy. 291 | 292 | ![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1625467013360/spwsxSzpy.png) 293 | 294 | **Everything has been laid out for you.** 295 | 296 | ## You can just do the magic. And bring happiness to people. 297 | 298 | **Feel Free to Contibute** 299 | -------------------------------------------------------------------------------- /Python-Resources/resources.md: -------------------------------------------------------------------------------- 1 | # Python Resources 2 | 3 | A collection of resources to help you learn the basics and advanced concepts of Python. 4 | 5 | ## Quick links 6 | - [Python Websites](#python-websites) - Websites to learn Python for free. 7 | - [Python Books](#python-books) - Books to introduce you to the basics of Python. 8 | - [Python Courses/Videos](#python-coursesvideos) - Courses/Videos that introduces you to the fundamentals of Python. 9 | - [Python Repositories](#python-repositories) - Repositories that explains the basics and advanced concepts of Python. 10 | 11 | # Python Websites 12 | 13 | - [Python Official Documentation](https://docs.python.org/3/tutorial/index.html) - Learn the basic concepts and features of the Python language and system. 14 | - [w3Schools](https://www.w3schools.com/python/default.asp) - We create simplified and interactive learning experiences. Learning web development should be easy to understand and available for everyone, everywhere! W3Schools is a school for web developers, covering all the aspects of web development. 15 | - [Python Basics](https://pythonbasics.org) - This site contains materials and exercises for the Python 3 programming language. 16 | - [w3resource](https://www.w3resource.com/python/python-tutorial.php) - This site contains materials and exercises that explains the basics of Python . 17 | - [Intellipaat](https://intellipaat.com/blog/tutorial/python-tutorial/) - This Python programming tutorial will help you learn Python and build a career in this top programming language. This tutorial contains Python basics and its fundamentals. 18 | - [Learning To Program](http://www.alan-g.me.uk/l2p/index.htm) - This site covers the basic theory of computer programming - what it is, some of its history and the basic techniques needed to solve problems. 19 | - [After Hours Programming](https://www.afterhoursprogramming.com/tutorial/python/) - Explains what Python is and what it can do for the internet. 20 | - [Py4e](https://py4e.com/) - This web site is building a set of free materials, lectures, book and assignments to help students learn how to program in Python. 21 | - [ThePythonguru](https://thepythonguru.com/) - A platform to help students to learn python programming easily and fast, covers everything needed to make you a proficient developer. 22 | - [Py4e](https://py4e.com/) - This web site is building a set of free materials, lectures, book and assignments to help students learn how to program in Python. 23 | - [Python Course](https://www.python-course.eu/python3_course.php) - This tutorial provides a comprehensive and in-depth introduction to the Python language. A main focus in the creation of this tutorial is that the content is suitable for self-study.A main focus in the creation of this tutorial is that the content is suitable for self-study. 24 | - [Crash Into Python](https://stephensugden.com/crash_into_python/) - Crash into Python is a set of documents/slides that are meant to be used as a teaching aid for bringing programmers from other languages up to speed with Python. 25 | - [Pynative](https://pynative.com) - Pynative is for Python lovers. Here, You can get Tutorials, Exercises, and Quizzes to practice and improve your Python skills. 26 | - [Python Tutor](http://pythontutor.com/) - Python Tutor helps people overcome a fundamental barrier to learning programming: understanding what happens as the computer runs each line of code. 27 | - [Automate the boring stuff with Python](https://automatetheboringstuff.com/) - In Automate the Boring Stuff with Python, you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand-no prior programming experience required. 28 | - [Tutorials Point](https://www.tutorialspoint.com/python/index.htm) - Learn the basics and fundamentals of Python. 29 | - [Codecademy](https://www.codecademy.com/catalog/language/python) - A platform that guides you through the basics of Python. 30 | - [Kaggle](https://www.kaggle.com/learn/python) - Intro into the fundamentals of Python. 31 | - [Programiz](https://www.programiz.com/python-programming) - Our Python tutorial will guide you to learn Python one step at a time. 32 | - [Real Python](https://realpython.com/) - At Real Python you can learn all things Python from the ground up. Everything from the absolute basics of Python, to web development and web scraping, to data visualization, and beyond. 33 | - [Sololearn](https://www.sololearn.com/learning/1073) - Learn Python, one of today's most in-demand programming languages on-the-go! Practice writing Python code, collect points, & show off your skills now!Everything from the absolute basics of Python, to web development and web scraping, to data visualization, and beyond. 34 | - [Algosaurus- A graphic guide to algorithms](http://algosaur.us/data-structures-basics/) - A guide to the Basics of Data Structures 35 | - [Google's Python Class](https://developers.google.com/edu/python) - A free class for people with a little bit of programming experience who want to learn Python. The class includes written materials, lecture videos, and lots of code exercises to practice Python coding. These materials are used within Google to introduce Python to people who have just a little programming experience. 36 | - [Learn x in y minutes](https://learnxinyminutes.com/docs/python/) - Teaches you python concepts, syntax and much more. 37 | - [Progate](https://progate.com/languages/python) - Progate is an easy-to-use platform designed to help you learn coding online. 38 | - [Python For Beginners](https://www.pythonforbeginners.com/) - Learn Python By Examples. 39 | - [Edx](https://www.edx.org/learn/python) - Become familiar with the basics of python including python syntax, conditionals, and much more. 40 | - [Python Cheatsheet](https://www.pythoncheatsheet.org/) - Explains python syntax with examples. 41 | 42 | 43 | # Python Books 44 | 45 | - [Python for you and me](https://pymbook.readthedocs.io/en/latest/index.html#welcome-to-python-for-you-and-me) - This is a simple book to learn Python programming language, it is for the programmers who are new to Python. 46 | - [Python Pocket Refrence](https://www.pdfdrive.com/python-pocket-reference-5th-edition-python-in-your-pocket-e166623626.html) - Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. 47 | - [Automate the Boring stuff with python](https://www.pdfdrive.com/automate-the-boring-stuff-with-python-automate-the-boring-stuff-with-python-e26956384.html) - Automate the Boring Stuff with Python was written for people who want to get up to speed writing small programs that do practical tasks as soon as possible. 48 | - [Python for Dummies](https://www.pdfdrive.com/python-all-in-one-for-dummies-e188632865.html) - This a bookmin the "for dummies" series which introduces beginners to python basics. 49 | - [The python book](https://www.pdfdrive.com/the-python-book-the-ultimate-guide-to-coding-with-python-e175482973.html) - This book is a reference manual that guides you through the process of learning Python and how to use it in modern computer applications. 50 | - [Full StackPython](https://www.fullstackpython.com/) - An open source book that explains technical concepts in plain language. 51 | - [The Hitchhiker’s Guide to Python!](https://docs.python-guide.org/) - This handcrafted guide exists to provide both novice and expert Python developers a best practice handbook for the installation, configuration, and usage of Python on a daily basis. 52 | - [Think Python](https://greenteapress.com/wp/think-python-2e/) - Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. 53 | - [Learning with Python - How to Think Like a Computer Scientist](https://greenteapress.com/wp/learning-with-python/) - The goal of this book is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natural science. 54 | - [Learning Python: Powerful Object-Oriented Programming](https://www.pdfdrive.com/learning-python-powerful-object-oriented-programming-e169780738.html) - Get a comprehensive, in-depth introduction to the core Python language with this hands-on book. 55 | - [A Byte Of Python](https://python.swaroopch.com/) - This book will help you to learn the Python programming language, whether you are new to computers or are an experienced programmer. 56 | - [Beyond the Basic Stuff with Python](https://nostarch.com/beyond-basic-stuff-python) - More than a mere collection of advanced syntax and masterful tips for writing clean code, you'll learn how to advance your Python programming skills by using the command line and other professional tools like code formatters, type checkers, linters, and version control. 57 | - [Dive Into Algorithms](https://nostarch.com/Dive-Into-Algorithms) - A wide-ranging, Pythonic tour of many of the world's most interesting algorithms. With little more than a bit of computer programming experience and basic high-school math, you'll explore standard computer science algorithms for searching, sorting, and optimization; human-based algorithms that help us determine how to catch a baseball or eat the right amount at a buffet; and advanced algorithms like ones used in machine learning and artificial intelligence. 58 | - [Cracking Codes with Python](https://nostarch.com/crackingcodes) - After a crash course in Python programming basics, you’ll learn to make, test, and hack programs that encrypt text with classical ciphers like the transposition cipher and Vigenère cipher. Each program includes the full code and a line-by-line explanation of how things work. By the end of the book, you’ll have learned how to code in Python and you’ll have the clever programs to prove it!. There’s no better way to learn to code than to play with real programs. Cracking Codes with Python makes the learning fun! 59 | - [Python Cookbook: Recipes for Mastering Python 3](https://www.pdfdrive.com/python-cookbook-recipes-for-mastering-python-3-e187326224.html) - If you need help writing programs in Python 3, or want to update older Python 2 code, this book is just the ticket. Packed with practical recipes written and tested with Python 3.3, this unique cookbook is for experienced Python programmers who want to focus on modern tools and idioms. 60 | - [Starting Out with Python](https://www.academia.edu/44608760/GLOBAL_EDITION_FOURTH_EDITION_Starting_Out_with_Python) - A clear and student-friendly introduction to the fundamentals of Python. 61 | - [Learn Python The Hard Way](https://learnpythonthehardway.org/book/) - You’ll learn Python by working through 52 brilliantly crafted exercises. As you do, you’ll learn how a computer works; what good programs look like; and how to read, write, and think about code. 62 | - [Python Crash Course: A Hands-On, Project-Based Introduction to Programming](https://www.pdfdrive.com/python-crash-course-a-hands-on-project-based-introduction-to-programming-e190067998.html) - Python Crash Course is a fast-paced, thorough introduction to Python that will have you writing programs, solving problems, and making things that work in no time. 63 | - [Invent Your Own Computer Games with Python](https://inventwithpython.com/invent4thed/) - Invent Your Own Computer Games with Python teaches you how to program in the Python language. Each chapter gives you the complete source code for a new game, and then teaches the programming concepts from the examples. 64 | - [Fluent Python](https://www.oreilly.com/library/view/fluent-python/9781491946237/) - With this hands-on guide, you’ll learn how to write effective, idiomatic Python code by leveraging its best—and possibly most neglected—features. 65 | 66 | # Python Courses/Videos 67 | 68 | - [Crash Course on Python](https://www.coursera.org/learn/python-crash-course) 69 | - [Programming for Everybody (Getting Started with Python)](https://www.coursera.org/learn/python) 70 | - [Python Data Structures](https://www.coursera.org/learn/python-data) 71 | - [Python Tutorial - Python For Beginners](https://www.youtube.com/watch?v=_uQrJ0TkZlc) 72 | - [Python Tutorial For Beginners](https://www.youtube.com/watch?v=QXeEoD0pB3E&list=PLsyeobzWxl7poL9JTVyndKe62ieoN-MZ3) 73 | - [Python Full Course - Learn Python In 12 Hours](https://www.youtube.com/watch?v=WGJJIrtnfpk) 74 | - [Python for Everybody - Full University Python Course](https://www.youtube.com/watch?v=8DvywoWv6fI) 75 | - [Learn Python - Full Course for Beginners [Tutorial]](https://www.youtube.com/watch?v=rfscVS0vtbw) 76 | - [Python Algorithms For Interviews](https://www.youtube.com/watch?v=p65AHm9MX80) 77 | - [Python 3 Programming Specialization](https://www.coursera.org/specializations/python-3-programming) 78 | - [An Introduction to Interactive Programming in Python (Part 1)](https://www.classcentral.com/course/interactivepython1-408?utm_source=fcc_medium&utm_medium=web&utm_campaign=cs_programming_july_2021) 79 | - [Learn to Program: The Fundamentals](https://www.classcentral.com/course/programming1-385?utm_source=fcc_medium&utm_medium=web&utm_campaign=cs_programming_july_2021) 80 | - [Python Programming Essentials](https://www.classcentral.com/course/python-programming-9549?utm_source=fcc_medium&utm_medium=web&utm_campaign=cs_programming_july_2021) 81 | - [Python for Absolute Beginners!](https://www.udemy.com/course/free-python/?LSNPUBID=JVFxdTr9V80&ranEAID=JVFxdTr9V80&ranMID=39197&ranSiteID=JVFxdTr9V80-n9wcejNnSiOzMzOge8KRYg&utm_medium=udemyads&utm_source=aff-campaign) 82 | - [2021 Complete Python Bootcamp From Zero to Hero in Python](https://www.udemy.com/course/complete-python-bootcamp/?ranMID=39197&ranEAID=jU79Zysihs4&ranSiteID=jU79Zysihs4-_AdSId0p3CHnD.c78AXWJQ&utm_source=aff-campaign&utm_medium=udemyads&LSNPUBID=jU79Zysihs4) 83 | - [Introduction To Computer Science And Programming Using Python](https://www.edx.org/course/introduction-to-computer-science-and-programming-using-python-2) 84 | - [Introduction To Programming with Python](https://www.udemy.com/course/introduction-to-programming-with-python-beginners-course/?LSNPUBID=JVFxdTr9V80&ranEAID=JVFxdTr9V80&ranMID=39197&ranSiteID=JVFxdTr9V80-l7B_PxBM3rarGy2a37ZOIQ&utm_medium=udemyads&utm_source=aff-campaign) 85 | - [Rithm School Python Fundamentals Part I](https://www.rithmschool.com/courses/python-fundamentals-part-1) 86 | - [Rithm School Python Fundamentals Part II](https://www.rithmschool.com/courses/python-fundamentals-part-2) 87 | - [An Introduction to Python Programming](https://www.udemy.com/course/an-introduction-to-python-programming/?LSNPUBID=JVFxdTr9V80&ranEAID=JVFxdTr9V80&ranMID=39197&ranSiteID=JVFxdTr9V80-nGbPJ1nSdDePVzFs3c.OWA&utm_medium=udemyads&utm_source=aff-campaign) 88 | - [Learn Python 3.6 for Total Beginners](https://www.udemy.com/course/python-3-for-total-beginners/?LSNPUBID=JVFxdTr9V80&ranEAID=JVFxdTr9V80&ranMID=39197&ranSiteID=JVFxdTr9V80-8o.GeO9j_xbjvsLSjKml6A&utm_medium=udemyads&utm_source=aff-campaign) 89 | - [100 Days of Code - The Complete Python Pro Bootcamp for 2021](https://www.udemy.com/course/100-days-of-code/) 90 | - [Python Tutorial Based on the Official Documentation](https://www.youtube.com/watch?v=vQqisFjAnsE&list=PLpMTHmi814W0nSToTOC0Q18kREOjcJspW) 91 | - [Learn Python Programming Masterclass](https://www.udemy.com/course/python-the-complete-python-developer-course/) 92 | 93 | # Python Repositories 94 | 95 | - [Hitchhiker's Guide to Python](https://github.com/realpython/python-guide) 96 | - [awesome-python-in-education](https://github.com/quobit/awesome-python-in-education) 97 | - [30 Seconds Of Python](https://github.com/30-seconds/30-seconds-of-python) 98 | - [Ultimate Python study guide](https://github.com/huangsam/ultimate-python) 99 | - [Awesome Python](https://github.com/vinta/awesome-python) 100 | - [Python-resources](https://github.com/GalvanizeOpenSource/python-resources) 101 | - [Python](https://github.com/Asabeneh/Python) 102 | - [30 Days Of Python](https://github.com/Asabeneh/30-Days-Of-Python) 103 | - [Tutorials](https://github.com/towardsai/tutorials) 104 | - [Cracking the Coding Interview in Python](https://github.com/arpan74/ctci-python-solutions) 105 | - [Python Interview Problems For Practice](https://github.com/devAmoghS/Python-Interview-Problems-for-Practice) 106 | - [Python programming tutorial for beginners](https://github.com/Akuli/python-tutorial) 107 | - [Beginners Python Programs](https://github.com/AsciiKay/Beginners-Python-Examples) 108 | - [Python Ultimate Tutorial](https://github.com/amboulouma/python-ultimate-tutorial) 109 | - [Learn Python 3](https://github.com/jerry-git/learn-python3) 110 | - [Python Reference](https://github.com/rasbt/python_reference) 111 | - [CodeBits](https://github.com/nairuzabulhul/.CodeBits) 112 | - [Python Awesome](https://github.com/gautam1858/python-awesome) 113 | - [100 DaysOfCode with Python](https://github.com/talkpython/100daysofcode-with-python-course) 114 | - [Python Interview Questions](https://github.com/learning-zone/python-interview-questions) 115 | - [100 Plus Python Coding Problems With Solutions](https://github.com/ProgrammingHero1/100-plus-python-coding-problems-with-solutions) 116 | - [FlyPython](https://github.com/xxg1413/python) 117 | - [The Algorithms - Python](https://github.com/TheAlgorithms/Python) 118 | - [Full Speed Python](https://github.com/joaoventura/full-speed-python) 119 | - [FlyPython](https://github.com/xxg1413/python) 120 | - [Awesome Python Books](https://github.com/Junnplus/awesome-python-books) 121 | - [Break The Ice With Python](https://github.com/darkprinx/break-the-ice-with-python) 122 | - [The Python Open Source Computer Science Degree](https://github.com/ForrestKnight/open-source-cs-python) 123 | - [Free Python Books](https://github.com/pamoroso/free-python-books) 124 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Nutshell Machine Learning 2 | 3 | ![GitHub](https://img.shields.io/github/license/EdemGold/Nutshell-Machine-Learning) 4 | ![GitHub](https://img.shields.io/badge/Contributions-welcome-green) 5 | ![GitHub](https://img.shields.io/badge/PRs-welcome-green) 6 | ![GitHub contributors](https://img.shields.io/github/contributors/EdemGold/Nutshell-Machine-Learning) 7 | ![GitHub Repo stars](https://img.shields.io/github/stars/EdemGold/Nutshell-Machine-Learning) 8 | 9 | ![Nutshell Machine Learning](https://user-images.githubusercontent.com/78334545/132151051-66386e41-2c42-421e-bb06-42ed11d8d500.png) 10 | 11 | 12 | 13 | > Machines can see, hear and learn. Welcome to the future 🌍 14 | 15 | The repository was built with a tree-like structure in mind, it contains everything that you need to getting started with Machine Learning. A lot of the fear people have of Machine learning is due to those unnecessary complex terms, this stops people from going into Machine Learning. It's not true!, anyone can do ML, and we plan to make that happen. Join our [Discord](https://discord.gg/9BaRFXxsmA) Server for latest updates and further discussion. 16 | 17 | Here is a [resource](./Python-Resources) to get you started with the basics and fundamentals of Python. 18 | 19 | # Resources 20 | 21 | - [Machine Learning Concepts](https://github.com/EdemGold/Nutshell-Machine-Learning/tree/main/Machine-Learning-Concepts) 22 | - [Machine Learning Repositories](https://github.com/EdemGold/Nutshell-Machine-Learning/tree/main/Machine-Learning-Repositories) 23 | - [Machine Learning Courses/Videos](https://github.com/EdemGold/Nutshell-Machine-Learning/tree/main/Machine-Learning-Courses) 24 | - [Machine Learning Roadmap](https://github.com/EdemGold/Nutshell-Machine-Learning/tree/main/Machine-Learning-Roadmap) 25 | - [Machine Learning Articles](https://github.com/EdemGold/Nutshell-Machine-Learning/tree/main/Machine-Learning-Articles) 26 | - [Machine Learning Podcasts](https://github.com/EdemGold/Nutshell-Machine-Learning/tree/main/Machine-Learning-Podcasts) 27 | 28 | 29 | # Contributing 30 | 31 | Feel free to add more resources to this repo by either creating an issue or making a Pull Request. See our [contribution guidelines](CONTRIBUTING.md) to get started. Join our [Discord](https://discord.gg/9BaRFXxsmA) Server for latest updates and further discussion. 32 | 33 | # License 34 | 35 | This repository is under an [MIT License](https://choosealicense.com/licenses/mit/). 36 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman --------------------------------------------------------------------------------