From 9fe4157a9d9c3b956ae44ef07d2cbcffaeb06128 Mon Sep 17 00:00:00 2001 From: lola-jo Date: Fri, 1 Sep 2023 21:45:37 +0800 Subject: [PATCH 01/15] rebase the db --- awesome/database/data.db | Bin 962560 -> 962560 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/awesome/database/data.db b/awesome/database/data.db index d51aee9fa7b736ccddffff885a909d60892c8cf9..626f557b4886d6ff40ed03f53dabd4744343fded 100644 GIT binary patch delta 34589 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 From 31c695c20166c5477552398233eabca11a22ff89 Mon Sep 17 00:00:00 2001 From: lola-jo Date: Fri, 1 Sep 2023 21:49:22 +0800 Subject: [PATCH 02/15] update readme.ipynb of db --- awesome/README.ipynb | 172 +++++++++++++++++++++++-------------------- 1 file changed, 94 insertions(+), 78 deletions(-) diff --git a/awesome/README.ipynb b/awesome/README.ipynb index bb74f65424..7fbc8dd5ce 100644 --- a/awesome/README.ipynb +++ b/awesome/README.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 44, "metadata": { "tags": [ "remove_cell" @@ -14,7 +14,7 @@ "\n", "import os\n", "import sys\n", - "!{sys.executable} -m pip install --quiet pandas langcodes langcodes[data] tabulate jupyter nbconvert jupyter_contrib_nbextensions\n", + "!{sys.executable} -m pip install --quiet pandas langcodes langcodes[data] tabulate jupyter nbconvert\n", "\n", "module_path = os.path.abspath(os.path.join('./lists'))\n", "if module_path not in sys.path:\n", @@ -39,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 45, "metadata": {}, "outputs": [], "source": [ @@ -54,7 +54,8 @@ "user_course_df = init_db(DB_URL, 'UserCourses')\n", "user_tutorial_df = init_db(DB_URL, 'UserTutorials')\n", "organization_df = init_db(DB_URL, 'Organization')\n", - "course_organization_df = init_db(DB_URL, 'CourseOrganizations')\n" + "course_organization_df = init_db(DB_URL, 'CourseOrganizations')\n", + "\n" ] }, { @@ -66,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 46, "metadata": { "tags": [ "remove_cell" @@ -97,81 +98,96 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ - "| | Title | By | Topic | Price | Level | Type | Hascert | Language | Tag |\n", - "|---:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------|:---------------|:----------------|:--------------|:----------|:-----------------------|:--------------------------------------------------------------------------------------------------|\n", - "| 1 | Data Visualization | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ“ˆ Data visualization ๐Ÿซ™ Javascript ๐Ÿ‘จโ€๐Ÿซ Projects |\n", - "| 2 | Relational Database | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ“Š SQL |\n", - "| 3 | Scientific Computing with Python | Charles Severance@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video |\n", - "| 4 | Data Analysis with Python | Santiago Basulto@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video |\n", - "| 5 | Machine Learning with Python | Tim Ruscica@freeCodeCamp | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 6 | Big Data, Large Scale Machine Learning | John Langford, Yann LeCun@New York University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data |\n", - "| 7 | Artificial Intelligence | Patrick Henry Winston@MIT | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿค– AI |\n", - "| 8 | Natural Language Processing with Deep Learning | Chris Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", - "| 9 | Machine Learning: 2014-2015 | Nando de Freitas@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 10 | Getting Started with Deep Learning | @NVIDIA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฅ Paid of 90$ | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning โšก๏ธ Big data ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision |\n", - "| 11 | Building Video AI Applications at the Edge on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision |\n", - "| 12 | Getting Started with AI on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘“ Computer vision ๐Ÿ’ป Hardware ๐Ÿฆฟ Robotics |\n", - "| 13 | Graduate Summer School: Deep Learning, Feature Learning | Yann LeCun, Yoshua Bengio, Geoffrey Hinton, Andrew Ng, Stanley Osher@UCLA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 14 | Deep Learning 2017 | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 15 | Deep Learning | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 16 | Statistical Machine Learning: Spring 2017 | Ryan Tibshirani, Larry Wasserman@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 17 | UVA Deep Learning Course | Yuki Asano@University of Amsterdam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 18 | MIT Deep Learning and Artificial Intelligence Lectures | Lex Fridman@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿš— Self driving |\n", - "| 19 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 20 | Deep Reinforcement Learning | Sergey Levine@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 21 | Practical Deep Learning | Jeremy Howard | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 22 | Introduction to Deep Learning | Bhiksha Raj, Rita Singh@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 23 | AI for Everyone | Andrew Ng | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning |\n", - "| 24 | Yann LeCunโ€™s Deep Learning Course at CDS | Yann LeCun@New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 25 | Neural Networks and Deep Learning | Alan Blair@University of New South Wales | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 26 | Spinning Up in Deep Reinforcement Learning | Josh Achiam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐ŸŽฎ Reinforcement learning |\n", - "| | | | | | | | | | |\n", - "| 27 | Introduction to Deep Learning | Alex Smola, Mu Li@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 28 | Dive into Deep Learning in 1 Day | Alex Smola@ODSC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 29 | Dive into Deep Learning | Rachel Hu, Aston Zhang@GTC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 30 | ๅŠจๆ‰‹ๅญฆๆทฑๅบฆๅญฆไน ๅœจ็บฟ่ฏพ็จ‹ | Mu Li@D2L | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 31 | Practical Machine Learning | Alex Smola, Mu Li | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 32 | Learning from Data | Yaser Abu-Mostafa@Caltech | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data |\n", - "| 33 | Computational Systems Biology: Deep Learning in the Life Sciences | Manolis Kellis@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ“ˆ Data visualization ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 34 | Introduction to Deep Learning and Generative Models | Sebastian Raschka@UNIVERSITY OF WISCONSINโ€“MADISON | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 35 | Deep Learning for Speech and Language | Antonio Bonafonte &\tJose Adriรกn Rodrรญguez Fonollosa &\tMarta Ruiz Costa-jussร  \t& Javier Hernando \t& Santiago Pascual \t& Elisa Sayrol \t& Xavier Giro-i-Nieto@Universitat Politรจcnica de Catalunya | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", - "| 36 | Deep Learning on Computational Accelerators | Alex Bronstein & Chaim Baskin & Moshe Kimhi & Mitchell Keren Taraday@Technion | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 37 | Applications of Deep Neural Networks | Jeff Heaton@Washington University in St. Louis | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘ฝ Deep learning |\n", - "| 38 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP ๐Ÿ‘“ Computer vision |\n", - "| 39 | Deep Learning | Justin Sirignano@Univ. of Illinois at Urbana-Champaign | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", - "| 40 | Deep learning course | Victor Lempitsky@Skoltech | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", - "| 41 | Deep Learning for Natural Language Processing | Phil Blunsom@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 42 | Machine Learning | Tony Jebara@Columbia University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 43 | Harvard University: Introduction to Data Science with Python | Pavlos Protopapas@Havard University | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning |\n", - "| 44 | Introduction to Machine Learning | Jennifer Listgarten, Jitendra Malik@UC Berkeley | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 45 | Natural Language Processing with Deep Learning | Christopher Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 46 | Deep Learning for Computer Vision | Fei-Fei Li, Yunzhu Li, Ruohan Gao@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 47 | Advanced Robotics | Pieter Abbeel@UC Berkeley | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿฆฟ Robotics |\n", - "| 48 | Machine Learning | Thorsten Joachims@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 49 | Machine Learning for Data Science | Lillian Lee@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning |\n", - "| 50 | Deep Learning | @New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 51 | Deep Learning for Computer Vision and Natural Language Processing | Liangliang Cao, Dr. James Fan@Columbia University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 52 | Introduction to Matrix Methods | John C. Duchi@Stanford | ๐Ÿ Python | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿงฎ Math |\n", - "| 53 | Machine Learning | Tom Mitchell@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 54 | Introduction to Deep Learning | Bhiksha Raj@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 55 | Mining Massive Data Sets | Jure Leskovec, Mina Ghashami@Stanford | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science |\n", - "| 56 | Reinforcement Learning in the Wild | | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฎ Reinforcement learning |\n", - "| 57 | UVA DEEP LEARNING COURSE | Yuki Asano | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 58 | Machine Learning for Beginners | Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura@Microsoft | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ Python |\n", - "| 59 | Machine Learning Crash Course with TensorFlow APIs | Google for Developers@Google for Developers | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 60 | Deep Learning course | Charles Ollion, Olivier Grisel@Institut polytechnique de Paris | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", - "| 61 | Full Stack Deep Learning | Josh Tobin, Sergey Karayev, Pieter Abbeel, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", - "| 62 | mlcourse.ai โ€“ Open Machine Learning Course | Yury Kashnitsky@mlcourse.ai | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning |\n", - "| 63 | Deep Learning Using PyTorch | Hossein Hajiabolhassan | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", - "| 64 | A Machine Learning Course with Python | Amirsina Torfi@ Machine Learning Mindset | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 65 | MLOps Zoomcamp | Alexey Grigorev@DataTalks.Club | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning |\n", - "| 66 | Machine Learning course | Vladislav Goncharenko, Radoslav Neychev@MIPT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐Ÿง  Machine learning |" + "| | Title | By | Topic | Price | Level | Type | Hascert | Language | Tag |\n", + "|---:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------|:---------------|:----------------|:--------------|:----------|:-----------------------|:--------------------------------------------------------------------------------------------------|\n", + "| 1 | Data Visualization | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ“ˆ Data visualization ๐Ÿซ™ Javascript ๐Ÿ‘จโ€๐Ÿซ Projects |\n", + "| 2 | Relational Database | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ“Š SQL |\n", + "| 3 | Scientific Computing with Python | Charles Severance@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video |\n", + "| 4 | Data Analysis with Python | Santiago Basulto@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video |\n", + "| 5 | Machine Learning with Python | Tim Ruscica@freeCodeCamp | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 6 | Big Data, Large Scale Machine Learning | John Langford, Yann LeCun@New York University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data |\n", + "| 7 | Artificial Intelligence | Patrick Henry Winston@MIT | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿค– AI |\n", + "| 8 | Natural Language Processing with Deep Learning | Chris Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", + "| 9 | Machine Learning: 2014-2015 | Nando de Freitas@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 10 | Getting Started with Deep Learning | @NVIDIA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฅ Paid of 90$ | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning โšก๏ธ Big data ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision |\n", + "| 11 | Building Video AI Applications at the Edge on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision |\n", + "| 12 | Getting Started with AI on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘“ Computer vision ๐Ÿ’ป Hardware ๐Ÿฆฟ Robotics |\n", + "| 13 | Graduate Summer School: Deep Learning, Feature Learning | Yann LeCun, Yoshua Bengio, Geoffrey Hinton, Andrew Ng, Stanley Osher@UCLA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 14 | Deep Learning 2017 | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 15 | Deep Learning | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 16 | Statistical Machine Learning: Spring 2017 | Ryan Tibshirani, Larry Wasserman@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 17 | UVA Deep Learning Course | Yuki Asano@University of Amsterdam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 18 | MIT Deep Learning and Artificial Intelligence Lectures | Lex Fridman@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿš— Self driving |\n", + "| 19 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 20 | Deep Reinforcement Learning | Sergey Levine@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 21 | Practical Deep Learning | Jeremy Howard | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 22 | Introduction to Deep Learning | Bhiksha Raj, Rita Singh@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 23 | AI for Everyone | Andrew Ng | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning |\n", + "| 24 | Yann LeCunโ€™s Deep Learning Course at CDS | Yann LeCun@New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 25 | Neural Networks and Deep Learning | Alan Blair@University of New South Wales | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 26 | Spinning Up in Deep Reinforcement Learning | Josh Achiam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐ŸŽฎ Reinforcement learning |\n", + "| | | | | | | | | | |\n", + "| 27 | Introduction to Deep Learning | Alex Smola, Mu Li@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 28 | Dive into Deep Learning in 1 Day | Alex Smola@ODSC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 29 | Dive into Deep Learning | Rachel Hu, Aston Zhang@GTC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 30 | ๅŠจๆ‰‹ๅญฆๆทฑๅบฆๅญฆไน ๅœจ็บฟ่ฏพ็จ‹ | Mu Li@D2L | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 31 | Practical Machine Learning | Alex Smola, Mu Li | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 32 | Learning from Data | Yaser Abu-Mostafa@Caltech | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data |\n", + "| 33 | Computational Systems Biology: Deep Learning in the Life Sciences | Manolis Kellis@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ“ˆ Data visualization ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 34 | Introduction to Deep Learning and Generative Models | Sebastian Raschka@UNIVERSITY OF WISCONSINโ€“MADISON | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 35 | Deep Learning for Speech and Language | Antonio Bonafonte &\tJose Adriรกn Rodrรญguez Fonollosa &\tMarta Ruiz Costa-jussร  \t& Javier Hernando \t& Santiago Pascual \t& Elisa Sayrol \t& Xavier Giro-i-Nieto@Universitat Politรจcnica de Catalunya | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", + "| 36 | Deep Learning on Computational Accelerators | Alex Bronstein & Chaim Baskin & Moshe Kimhi & Mitchell Keren Taraday@Technion | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 37 | Applications of Deep Neural Networks | Jeff Heaton@Washington University in St. Louis | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘ฝ Deep learning |\n", + "| 38 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP ๐Ÿ‘“ Computer vision |\n", + "| 39 | Deep Learning | Justin Sirignano@Univ. of Illinois at Urbana-Champaign | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", + "| 40 | Deep learning course | Victor Lempitsky@Skoltech | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", + "| 41 | Deep Learning for Natural Language Processing | Phil Blunsom@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 42 | Machine Learning | Tony Jebara@Columbia University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 43 | Harvard University: Introduction to Data Science with Python | Pavlos Protopapas@Havard University | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning |\n", + "| 44 | Introduction to Machine Learning | Jennifer Listgarten, Jitendra Malik@UC Berkeley | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 45 | Natural Language Processing with Deep Learning | Christopher Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 46 | Deep Learning for Computer Vision | Fei-Fei Li, Yunzhu Li, Ruohan Gao@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 47 | Advanced Robotics | Pieter Abbeel@UC Berkeley | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿฆฟ Robotics |\n", + "| 48 | Machine Learning | Thorsten Joachims@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 49 | Machine Learning for Data Science | Lillian Lee@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning |\n", + "| 50 | Deep Learning | @New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 51 | Deep Learning for Computer Vision and Natural Language Processing | Liangliang Cao, Dr. James Fan@Columbia University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 52 | Introduction to Matrix Methods | John C. Duchi@Stanford | ๐Ÿ Python | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿงฎ Math |\n", + "| 53 | Machine Learning | Tom Mitchell@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 54 | Introduction to Deep Learning | Bhiksha Raj@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 55 | Mining Massive Data Sets | Jure Leskovec, Mina Ghashami@Stanford | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science |\n", + "| 56 | Reinforcement Learning in the Wild | | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฎ Reinforcement learning |\n", + "| 57 | UVA DEEP LEARNING COURSE | Yuki Asano | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 58 | Machine Learning for Beginners | Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura@Microsoft | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ Python |\n", + "| 59 | Machine Learning Crash Course with TensorFlow APIs | Google for Developers@Google for Developers | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 60 | Deep Learning course | Charles Ollion, Olivier Grisel@Institut polytechnique de Paris | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", + "| 61 | Full Stack Deep Learning | Josh Tobin, Sergey Karayev, Pieter Abbeel, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", + "| 62 | mlcourse.ai โ€“ Open Machine Learning Course | Yury Kashnitsky@mlcourse.ai | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning |\n", + "| 63 | Deep Learning Using PyTorch | Hossein Hajiabolhassan | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", + "| 64 | A Machine Learning Course with Python | Amirsina Torfi@ Machine Learning Mindset | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 65 | MLOps Zoomcamp | Alexey Grigorev@DataTalks.Club | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning |\n", + "| 66 | Machine Learning course | Vladislav Goncharenko, Radoslav Neychev@MIPT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐Ÿง  Machine learning |\n", + "| 67 | Stanford CS229: Machine Learning | Andrew Ng@Stanford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 68 | Making Friends with Machine Learning | Cassie Kozyrkov | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 69 | Applied Machine Learning | Volodymyr Kuleshov@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 70 | Introduction to Machine Learning (Tรผbingen) | Dmitry Kobak@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 71 | Statistical Machine Learning โ€” Ulrike von Luxburg, 2020 | Ulrike von Luxburg@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 72 | Probabilistic Machine Learning (Summer 2020) | Philipp Hennig@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 73 | MIT 6.S897 Machine Learning for Healthcare, Spring 2019 | Peter Szolovits, David Sontag@MIT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 74 | Neural Networks: Zero to Hero | Andrej Karpathy@karpathy.ai | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 75 | Deep Learning โ€” Andreas Geiger | Andreas Zell@University of Tรผbingen | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 76 | Foundation Models | Samuel Albanie | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning |\n", + "| 77 | Yann LeCunโ€™s Deep Learning Course at CDS | Alfredo Canziani@NYU | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 78 | Deep Unsupervised Learning | Pieter Abbeel, Peter Chen, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 79 | Deep Neural Networks | Sergey Levine, Phillip Isola@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 80 | Stanford CS230: Deep Learning | Andrew Ng@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 81 | MIT 6.S192: Deep Learning for Art, Aesthetics, and Creativity | Ali Jahanian, Alyosha Efros, others@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |" ], "text/plain": [ "" @@ -188,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 48, "metadata": { "tags": [ "remove_cell" @@ -196,7 +212,7 @@ }, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ "[NbConvertApp] Converting notebook README.ipynb to markdown\n", @@ -227,7 +243,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.5" + "version": "3.9.16" } }, "nbformat": 4, From 0b4cc54e071a1adf1e0c1a19d439c0534025b8dd Mon Sep 17 00:00:00 2001 From: lola-jo Date: Fri, 1 Sep 2023 21:53:37 +0800 Subject: [PATCH 03/15] update readme.md of db --- awesome/README.md | 153 +++++++++++++++++++++++++--------------------- 1 file changed, 84 insertions(+), 69 deletions(-) diff --git a/awesome/README.md b/awesome/README.md index 9ab6114e92..38a2a90b1b 100644 --- a/awesome/README.md +++ b/awesome/README.md @@ -5,73 +5,88 @@ ## Courses -| | Title | By | Topic | Price | Level | Type | Hascert | Language | Tag | -|---:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------|:---------------|:----------------|:--------------|:----------|:-----------------------|:--------------------------------------------------------------------------------------------------| -| 1 | Data Visualization | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ“ˆ Data visualization ๐Ÿซ™ Javascript ๐Ÿ‘จโ€๐Ÿซ Projects | -| 2 | Relational Database | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ“Š SQL | -| 3 | Scientific Computing with Python | Charles Severance@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video | -| 4 | Data Analysis with Python | Santiago Basulto@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video | -| 5 | Machine Learning with Python | Tim Ruscica@freeCodeCamp | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 6 | Big Data, Large Scale Machine Learning | John Langford, Yann LeCun@New York University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data | -| 7 | Artificial Intelligence | Patrick Henry Winston@MIT | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿค– AI | -| 8 | Natural Language Processing with Deep Learning | Chris Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | -| 9 | Machine Learning: 2014-2015 | Nando de Freitas@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 10 | Getting Started with Deep Learning | @NVIDIA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฅ Paid of 90$ | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning โšก๏ธ Big data ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision | -| 11 | Building Video AI Applications at the Edge on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision | -| 12 | Getting Started with AI on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘“ Computer vision ๐Ÿ’ป Hardware ๐Ÿฆฟ Robotics | -| 13 | Graduate Summer School: Deep Learning, Feature Learning | Yann LeCun, Yoshua Bengio, Geoffrey Hinton, Andrew Ng, Stanley Osher@UCLA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 14 | Deep Learning 2017 | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 15 | Deep Learning | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 16 | Statistical Machine Learning: Spring 2017 | Ryan Tibshirani, Larry Wasserman@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 17 | UVA Deep Learning Course | Yuki Asano@University of Amsterdam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 18 | MIT Deep Learning and Artificial Intelligence Lectures | Lex Fridman@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿš— Self driving | -| 19 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 20 | Deep Reinforcement Learning | Sergey Levine@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 21 | Practical Deep Learning | Jeremy Howard | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 22 | Introduction to Deep Learning | Bhiksha Raj, Rita Singh@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 23 | AI for Everyone | Andrew Ng | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning | -| 24 | Yann LeCunโ€™s Deep Learning Course at CDS | Yann LeCun@New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 25 | Neural Networks and Deep Learning | Alan Blair@University of New South Wales | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 26 | Spinning Up in Deep Reinforcement Learning | Josh Achiam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐ŸŽฎ Reinforcement learning | -| | | | | | | | | | | -| 27 | Introduction to Deep Learning | Alex Smola, Mu Li@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 28 | Dive into Deep Learning in 1 Day | Alex Smola@ODSC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 29 | Dive into Deep Learning | Rachel Hu, Aston Zhang@GTC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 30 | ๅŠจๆ‰‹ๅญฆๆทฑๅบฆๅญฆไน ๅœจ็บฟ่ฏพ็จ‹ | Mu Li@D2L | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 31 | Practical Machine Learning | Alex Smola, Mu Li | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 32 | Learning from Data | Yaser Abu-Mostafa@Caltech | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data | -| 33 | Computational Systems Biology: Deep Learning in the Life Sciences | Manolis Kellis@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ“ˆ Data visualization ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 34 | Introduction to Deep Learning and Generative Models | Sebastian Raschka@UNIVERSITY OF WISCONSINโ€“MADISON | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 35 | Deep Learning for Speech and Language | Antonio Bonafonte & Jose Adriรกn Rodrรญguez Fonollosa & Marta Ruiz Costa-jussร  & Javier Hernando & Santiago Pascual & Elisa Sayrol & Xavier Giro-i-Nieto@Universitat Politรจcnica de Catalunya | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | -| 36 | Deep Learning on Computational Accelerators | Alex Bronstein & Chaim Baskin & Moshe Kimhi & Mitchell Keren Taraday@Technion | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 37 | Applications of Deep Neural Networks | Jeff Heaton@Washington University in St. Louis | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘ฝ Deep learning | -| 38 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP ๐Ÿ‘“ Computer vision | -| 39 | Deep Learning | Justin Sirignano@Univ. of Illinois at Urbana-Champaign | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | -| 40 | Deep learning course | Victor Lempitsky@Skoltech | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | -| 41 | Deep Learning for Natural Language Processing | Phil Blunsom@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 42 | Machine Learning | Tony Jebara@Columbia University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 43 | Harvard University: Introduction to Data Science with Python | Pavlos Protopapas@Havard University | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning | -| 44 | Introduction to Machine Learning | Jennifer Listgarten, Jitendra Malik@UC Berkeley | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 45 | Natural Language Processing with Deep Learning | Christopher Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 46 | Deep Learning for Computer Vision | Fei-Fei Li, Yunzhu Li, Ruohan Gao@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 47 | Advanced Robotics | Pieter Abbeel@UC Berkeley | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿฆฟ Robotics | -| 48 | Machine Learning | Thorsten Joachims@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 49 | Machine Learning for Data Science | Lillian Lee@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning | -| 50 | Deep Learning | @New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 51 | Deep Learning for Computer Vision and Natural Language Processing | Liangliang Cao, Dr. James Fan@Columbia University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 52 | Introduction to Matrix Methods | John C. Duchi@Stanford | ๐Ÿ Python | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿงฎ Math | -| 53 | Machine Learning | Tom Mitchell@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 54 | Introduction to Deep Learning | Bhiksha Raj@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 55 | Mining Massive Data Sets | Jure Leskovec, Mina Ghashami@Stanford | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science | -| 56 | Reinforcement Learning in the Wild | | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฎ Reinforcement learning | -| 57 | UVA DEEP LEARNING COURSE | Yuki Asano | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 58 | Machine Learning for Beginners | Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura@Microsoft | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ Python | -| 59 | Machine Learning Crash Course with TensorFlow APIs | Google for Developers@Google for Developers | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 60 | Deep Learning course | Charles Ollion, Olivier Grisel@Institut polytechnique de Paris | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | -| 61 | Full Stack Deep Learning | Josh Tobin, Sergey Karayev, Pieter Abbeel, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | -| 62 | mlcourse.ai โ€“ Open Machine Learning Course | Yury Kashnitsky@mlcourse.ai | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning | -| 63 | Deep Learning Using PyTorch | Hossein Hajiabolhassan | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | -| 64 | A Machine Learning Course with Python | Amirsina Torfi@ Machine Learning Mindset | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 65 | MLOps Zoomcamp | Alexey Grigorev@DataTalks.Club | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning | -| 66 | Machine Learning course | Vladislav Goncharenko, Radoslav Neychev@MIPT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐Ÿง  Machine learning | +| | Title | By | Topic | Price | Level | Type | Hascert | Language | Tag | +|---:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------|:---------------|:----------------|:--------------|:----------|:-----------------------|:--------------------------------------------------------------------------------------------------| +| 1 | Data Visualization | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ“ˆ Data visualization ๐Ÿซ™ Javascript ๐Ÿ‘จโ€๐Ÿซ Projects | +| 2 | Relational Database | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ“Š SQL | +| 3 | Scientific Computing with Python | Charles Severance@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video | +| 4 | Data Analysis with Python | Santiago Basulto@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video | +| 5 | Machine Learning with Python | Tim Ruscica@freeCodeCamp | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 6 | Big Data, Large Scale Machine Learning | John Langford, Yann LeCun@New York University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data | +| 7 | Artificial Intelligence | Patrick Henry Winston@MIT | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿค– AI | +| 8 | Natural Language Processing with Deep Learning | Chris Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | +| 9 | Machine Learning: 2014-2015 | Nando de Freitas@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 10 | Getting Started with Deep Learning | @NVIDIA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฅ Paid of 90$ | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning โšก๏ธ Big data ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision | +| 11 | Building Video AI Applications at the Edge on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision | +| 12 | Getting Started with AI on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘“ Computer vision ๐Ÿ’ป Hardware ๐Ÿฆฟ Robotics | +| 13 | Graduate Summer School: Deep Learning, Feature Learning | Yann LeCun, Yoshua Bengio, Geoffrey Hinton, Andrew Ng, Stanley Osher@UCLA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 14 | Deep Learning 2017 | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 15 | Deep Learning | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 16 | Statistical Machine Learning: Spring 2017 | Ryan Tibshirani, Larry Wasserman@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 17 | UVA Deep Learning Course | Yuki Asano@University of Amsterdam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 18 | MIT Deep Learning and Artificial Intelligence Lectures | Lex Fridman@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿš— Self driving | +| 19 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 20 | Deep Reinforcement Learning | Sergey Levine@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 21 | Practical Deep Learning | Jeremy Howard | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 22 | Introduction to Deep Learning | Bhiksha Raj, Rita Singh@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 23 | AI for Everyone | Andrew Ng | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning | +| 24 | Yann LeCunโ€™s Deep Learning Course at CDS | Yann LeCun@New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 25 | Neural Networks and Deep Learning | Alan Blair@University of New South Wales | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 26 | Spinning Up in Deep Reinforcement Learning | Josh Achiam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐ŸŽฎ Reinforcement learning | +| | | | | | | | | | | +| 27 | Introduction to Deep Learning | Alex Smola, Mu Li@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 28 | Dive into Deep Learning in 1 Day | Alex Smola@ODSC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 29 | Dive into Deep Learning | Rachel Hu, Aston Zhang@GTC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 30 | ๅŠจๆ‰‹ๅญฆๆทฑๅบฆๅญฆไน ๅœจ็บฟ่ฏพ็จ‹ | Mu Li@D2L | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 31 | Practical Machine Learning | Alex Smola, Mu Li | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 32 | Learning from Data | Yaser Abu-Mostafa@Caltech | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data | +| 33 | Computational Systems Biology: Deep Learning in the Life Sciences | Manolis Kellis@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ“ˆ Data visualization ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 34 | Introduction to Deep Learning and Generative Models | Sebastian Raschka@UNIVERSITY OF WISCONSINโ€“MADISON | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 35 | Deep Learning for Speech and Language | Antonio Bonafonte & Jose Adriรกn Rodrรญguez Fonollosa & Marta Ruiz Costa-jussร  & Javier Hernando & Santiago Pascual & Elisa Sayrol & Xavier Giro-i-Nieto@Universitat Politรจcnica de Catalunya | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | +| 36 | Deep Learning on Computational Accelerators | Alex Bronstein & Chaim Baskin & Moshe Kimhi & Mitchell Keren Taraday@Technion | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 37 | Applications of Deep Neural Networks | Jeff Heaton@Washington University in St. Louis | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘ฝ Deep learning | +| 38 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP ๐Ÿ‘“ Computer vision | +| 39 | Deep Learning | Justin Sirignano@Univ. of Illinois at Urbana-Champaign | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | +| 40 | Deep learning course | Victor Lempitsky@Skoltech | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | +| 41 | Deep Learning for Natural Language Processing | Phil Blunsom@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 42 | Machine Learning | Tony Jebara@Columbia University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 43 | Harvard University: Introduction to Data Science with Python | Pavlos Protopapas@Havard University | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning | +| 44 | Introduction to Machine Learning | Jennifer Listgarten, Jitendra Malik@UC Berkeley | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 45 | Natural Language Processing with Deep Learning | Christopher Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 46 | Deep Learning for Computer Vision | Fei-Fei Li, Yunzhu Li, Ruohan Gao@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 47 | Advanced Robotics | Pieter Abbeel@UC Berkeley | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿฆฟ Robotics | +| 48 | Machine Learning | Thorsten Joachims@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 49 | Machine Learning for Data Science | Lillian Lee@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning | +| 50 | Deep Learning | @New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 51 | Deep Learning for Computer Vision and Natural Language Processing | Liangliang Cao, Dr. James Fan@Columbia University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 52 | Introduction to Matrix Methods | John C. Duchi@Stanford | ๐Ÿ Python | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿงฎ Math | +| 53 | Machine Learning | Tom Mitchell@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 54 | Introduction to Deep Learning | Bhiksha Raj@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 55 | Mining Massive Data Sets | Jure Leskovec, Mina Ghashami@Stanford | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science | +| 56 | Reinforcement Learning in the Wild | | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฎ Reinforcement learning | +| 57 | UVA DEEP LEARNING COURSE | Yuki Asano | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 58 | Machine Learning for Beginners | Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura@Microsoft | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ Python | +| 59 | Machine Learning Crash Course with TensorFlow APIs | Google for Developers@Google for Developers | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 60 | Deep Learning course | Charles Ollion, Olivier Grisel@Institut polytechnique de Paris | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | +| 61 | Full Stack Deep Learning | Josh Tobin, Sergey Karayev, Pieter Abbeel, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | +| 62 | mlcourse.ai โ€“ Open Machine Learning Course | Yury Kashnitsky@mlcourse.ai | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning | +| 63 | Deep Learning Using PyTorch | Hossein Hajiabolhassan | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | +| 64 | A Machine Learning Course with Python | Amirsina Torfi@ Machine Learning Mindset | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 65 | MLOps Zoomcamp | Alexey Grigorev@DataTalks.Club | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning | +| 66 | Machine Learning course | Vladislav Goncharenko, Radoslav Neychev@MIPT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐Ÿง  Machine learning | +| 67 | Stanford CS229: Machine Learning | Andrew Ng@Stanford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 68 | Making Friends with Machine Learning | Cassie Kozyrkov | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 69 | Applied Machine Learning | Volodymyr Kuleshov@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 70 | Introduction to Machine Learning (Tรผbingen) | Dmitry Kobak@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 71 | Statistical Machine Learning โ€” Ulrike von Luxburg, 2020 | Ulrike von Luxburg@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 72 | Probabilistic Machine Learning (Summer 2020) | Philipp Hennig@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 73 | MIT 6.S897 Machine Learning for Healthcare, Spring 2019 | Peter Szolovits, David Sontag@MIT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 74 | Neural Networks: Zero to Hero | Andrej Karpathy@karpathy.ai | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 75 | Deep Learning โ€” Andreas Geiger | Andreas Zell@University of Tรผbingen | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 76 | Foundation Models | Samuel Albanie | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning | +| 77 | Yann LeCunโ€™s Deep Learning Course at CDS | Alfredo Canziani@NYU | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 78 | Deep Unsupervised Learning | Pieter Abbeel, Peter Chen, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 79 | Deep Neural Networks | Sergey Levine, Phillip Isola@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 80 | Stanford CS230: Deep Learning | Andrew Ng@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 81 | MIT 6.S192: Deep Learning for Art, Aesthetics, and Creativity | Ali Jahanian, Alyosha Efros, others@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | From 9531dda3f758c7a3304a705a68cdb8d9f0ae3a22 Mon Sep 17 00:00:00 2001 From: lola-jo Date: Fri, 1 Sep 2023 21:59:42 +0800 Subject: [PATCH 04/15] fix a small spell problem --- awesome/database/data.db | Bin 962560 -> 962560 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/awesome/database/data.db b/awesome/database/data.db index 626f557b4886d6ff40ed03f53dabd4744343fded..316a1ae2e66bafd4e1aacc7e8d6b812168e2e37a 100644 GIT binary patch delta 82 zcmZp8VAb%zYJxQ5!HF`?j0YPNS`!#s6PQ{Pn71adRL-Ane~g#6{n>mLAZ7((HXvpP ZVh$kY1Y#~A<_2OOAm-ivY(Afq0075JB@zGt delta 79 zcmZp8VAb%zYJxQ5fr&ECj0YMMS`!#s6PQ{Pn71adRL*B~Y`-<11&CRJm<@>8ftUk` WIf0l9h`E872Z(vM--CIA3Tsv{%- From 8bb8f4ab0993f8ac1ecb60ae9e4bab26a60b3c21 Mon Sep 17 00:00:00 2001 From: lola-jo Date: Fri, 1 Sep 2023 23:06:36 +0800 Subject: [PATCH 05/15] rename the courses --- awesome/README.ipynb | 180 +++++++++++++++++++-------------------- awesome/database/data.db | Bin 962560 -> 962560 bytes 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/awesome/README.ipynb b/awesome/README.ipynb index 7fbc8dd5ce..b9d2dbdda9 100644 --- a/awesome/README.ipynb +++ b/awesome/README.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 44, + "execution_count": 1, "metadata": { "tags": [ "remove_cell" @@ -39,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 3, "metadata": { "tags": [ "remove_cell" @@ -98,96 +98,96 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ - "| | Title | By | Topic | Price | Level | Type | Hascert | Language | Tag |\n", - "|---:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------|:---------------|:----------------|:--------------|:----------|:-----------------------|:--------------------------------------------------------------------------------------------------|\n", - "| 1 | Data Visualization | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ“ˆ Data visualization ๐Ÿซ™ Javascript ๐Ÿ‘จโ€๐Ÿซ Projects |\n", - "| 2 | Relational Database | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ“Š SQL |\n", - "| 3 | Scientific Computing with Python | Charles Severance@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video |\n", - "| 4 | Data Analysis with Python | Santiago Basulto@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video |\n", - "| 5 | Machine Learning with Python | Tim Ruscica@freeCodeCamp | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 6 | Big Data, Large Scale Machine Learning | John Langford, Yann LeCun@New York University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data |\n", - "| 7 | Artificial Intelligence | Patrick Henry Winston@MIT | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿค– AI |\n", - "| 8 | Natural Language Processing with Deep Learning | Chris Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", - "| 9 | Machine Learning: 2014-2015 | Nando de Freitas@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 10 | Getting Started with Deep Learning | @NVIDIA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฅ Paid of 90$ | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning โšก๏ธ Big data ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision |\n", - "| 11 | Building Video AI Applications at the Edge on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision |\n", - "| 12 | Getting Started with AI on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘“ Computer vision ๐Ÿ’ป Hardware ๐Ÿฆฟ Robotics |\n", - "| 13 | Graduate Summer School: Deep Learning, Feature Learning | Yann LeCun, Yoshua Bengio, Geoffrey Hinton, Andrew Ng, Stanley Osher@UCLA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 14 | Deep Learning 2017 | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 15 | Deep Learning | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 16 | Statistical Machine Learning: Spring 2017 | Ryan Tibshirani, Larry Wasserman@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 17 | UVA Deep Learning Course | Yuki Asano@University of Amsterdam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 18 | MIT Deep Learning and Artificial Intelligence Lectures | Lex Fridman@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿš— Self driving |\n", - "| 19 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 20 | Deep Reinforcement Learning | Sergey Levine@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 21 | Practical Deep Learning | Jeremy Howard | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 22 | Introduction to Deep Learning | Bhiksha Raj, Rita Singh@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 23 | AI for Everyone | Andrew Ng | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning |\n", - "| 24 | Yann LeCunโ€™s Deep Learning Course at CDS | Yann LeCun@New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 25 | Neural Networks and Deep Learning | Alan Blair@University of New South Wales | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 26 | Spinning Up in Deep Reinforcement Learning | Josh Achiam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐ŸŽฎ Reinforcement learning |\n", - "| | | | | | | | | | |\n", - "| 27 | Introduction to Deep Learning | Alex Smola, Mu Li@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 28 | Dive into Deep Learning in 1 Day | Alex Smola@ODSC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 29 | Dive into Deep Learning | Rachel Hu, Aston Zhang@GTC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 30 | ๅŠจๆ‰‹ๅญฆๆทฑๅบฆๅญฆไน ๅœจ็บฟ่ฏพ็จ‹ | Mu Li@D2L | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 31 | Practical Machine Learning | Alex Smola, Mu Li | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 32 | Learning from Data | Yaser Abu-Mostafa@Caltech | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data |\n", - "| 33 | Computational Systems Biology: Deep Learning in the Life Sciences | Manolis Kellis@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ“ˆ Data visualization ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 34 | Introduction to Deep Learning and Generative Models | Sebastian Raschka@UNIVERSITY OF WISCONSINโ€“MADISON | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 35 | Deep Learning for Speech and Language | Antonio Bonafonte &\tJose Adriรกn Rodrรญguez Fonollosa &\tMarta Ruiz Costa-jussร  \t& Javier Hernando \t& Santiago Pascual \t& Elisa Sayrol \t& Xavier Giro-i-Nieto@Universitat Politรจcnica de Catalunya | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", - "| 36 | Deep Learning on Computational Accelerators | Alex Bronstein & Chaim Baskin & Moshe Kimhi & Mitchell Keren Taraday@Technion | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", - "| 37 | Applications of Deep Neural Networks | Jeff Heaton@Washington University in St. Louis | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘ฝ Deep learning |\n", - "| 38 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP ๐Ÿ‘“ Computer vision |\n", - "| 39 | Deep Learning | Justin Sirignano@Univ. of Illinois at Urbana-Champaign | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", - "| 40 | Deep learning course | Victor Lempitsky@Skoltech | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", - "| 41 | Deep Learning for Natural Language Processing | Phil Blunsom@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 42 | Machine Learning | Tony Jebara@Columbia University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 43 | Harvard University: Introduction to Data Science with Python | Pavlos Protopapas@Havard University | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning |\n", - "| 44 | Introduction to Machine Learning | Jennifer Listgarten, Jitendra Malik@UC Berkeley | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 45 | Natural Language Processing with Deep Learning | Christopher Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 46 | Deep Learning for Computer Vision | Fei-Fei Li, Yunzhu Li, Ruohan Gao@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 47 | Advanced Robotics | Pieter Abbeel@UC Berkeley | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿฆฟ Robotics |\n", - "| 48 | Machine Learning | Thorsten Joachims@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 49 | Machine Learning for Data Science | Lillian Lee@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning |\n", - "| 50 | Deep Learning | @New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 51 | Deep Learning for Computer Vision and Natural Language Processing | Liangliang Cao, Dr. James Fan@Columbia University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 52 | Introduction to Matrix Methods | John C. Duchi@Stanford | ๐Ÿ Python | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿงฎ Math |\n", - "| 53 | Machine Learning | Tom Mitchell@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 54 | Introduction to Deep Learning | Bhiksha Raj@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 55 | Mining Massive Data Sets | Jure Leskovec, Mina Ghashami@Stanford | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science |\n", - "| 56 | Reinforcement Learning in the Wild | | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฎ Reinforcement learning |\n", - "| 57 | UVA DEEP LEARNING COURSE | Yuki Asano | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", - "| 58 | Machine Learning for Beginners | Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura@Microsoft | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ Python |\n", - "| 59 | Machine Learning Crash Course with TensorFlow APIs | Google for Developers@Google for Developers | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 60 | Deep Learning course | Charles Ollion, Olivier Grisel@Institut polytechnique de Paris | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", - "| 61 | Full Stack Deep Learning | Josh Tobin, Sergey Karayev, Pieter Abbeel, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", - "| 62 | mlcourse.ai โ€“ Open Machine Learning Course | Yury Kashnitsky@mlcourse.ai | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning |\n", - "| 63 | Deep Learning Using PyTorch | Hossein Hajiabolhassan | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", - "| 64 | A Machine Learning Course with Python | Amirsina Torfi@ Machine Learning Mindset | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", - "| 65 | MLOps Zoomcamp | Alexey Grigorev@DataTalks.Club | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning |\n", - "| 66 | Machine Learning course | Vladislav Goncharenko, Radoslav Neychev@MIPT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐Ÿง  Machine learning |\n", - "| 67 | Stanford CS229: Machine Learning | Andrew Ng@Stanford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 68 | Making Friends with Machine Learning | Cassie Kozyrkov | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 69 | Applied Machine Learning | Volodymyr Kuleshov@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 70 | Introduction to Machine Learning (Tรผbingen) | Dmitry Kobak@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 71 | Statistical Machine Learning โ€” Ulrike von Luxburg, 2020 | Ulrike von Luxburg@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 72 | Probabilistic Machine Learning (Summer 2020) | Philipp Hennig@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 73 | MIT 6.S897 Machine Learning for Healthcare, Spring 2019 | Peter Szolovits, David Sontag@MIT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", - "| 74 | Neural Networks: Zero to Hero | Andrej Karpathy@karpathy.ai | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", - "| 75 | Deep Learning โ€” Andreas Geiger | Andreas Zell@University of Tรผbingen | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", - "| 76 | Foundation Models | Samuel Albanie | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning |\n", - "| 77 | Yann LeCunโ€™s Deep Learning Course at CDS | Alfredo Canziani@NYU | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", - "| 78 | Deep Unsupervised Learning | Pieter Abbeel, Peter Chen, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", - "| 79 | Deep Neural Networks | Sergey Levine, Phillip Isola@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", - "| 80 | Stanford CS230: Deep Learning | Andrew Ng@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", - "| 81 | MIT 6.S192: Deep Learning for Art, Aesthetics, and Creativity | Ali Jahanian, Alyosha Efros, others@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |" + "| | Title | By | Topic | Price | Level | Type | Hascert | Language | Tag |\n", + "|---:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------|:---------------|:----------------|:--------------|:----------|:-----------------------|:--------------------------------------------------------------------------------------------------|\n", + "| 1 | Data Visualization | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ“ˆ Data visualization ๐Ÿซ™ Javascript ๐Ÿ‘จโ€๐Ÿซ Projects |\n", + "| 2 | Relational Database | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ“Š SQL |\n", + "| 3 | Scientific Computing with Python | Charles Severance@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video |\n", + "| 4 | Data Analysis with Python | Santiago Basulto@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video |\n", + "| 5 | Machine Learning with Python | Tim Ruscica@freeCodeCamp | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 6 | Big Data, Large Scale Machine Learning | John Langford, Yann LeCun@New York University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data |\n", + "| 7 | Artificial Intelligence | Patrick Henry Winston@MIT | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿค– AI |\n", + "| 8 | Natural Language Processing with Deep Learning | Chris Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", + "| 9 | Machine Learning: 2014-2015 | Nando de Freitas@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 10 | Getting Started with Deep Learning | @NVIDIA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฅ Paid of 90$ | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning โšก๏ธ Big data ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision |\n", + "| 11 | Building Video AI Applications at the Edge on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision |\n", + "| 12 | Getting Started with AI on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘“ Computer vision ๐Ÿ’ป Hardware ๐Ÿฆฟ Robotics |\n", + "| 13 | Graduate Summer School: Deep Learning, Feature Learning | Yann LeCun, Yoshua Bengio, Geoffrey Hinton, Andrew Ng, Stanley Osher@UCLA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 14 | Deep Learning 2017 | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 15 | Deep Learning | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 16 | Statistical Machine Learning: Spring 2017 | Ryan Tibshirani, Larry Wasserman@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 17 | UVA Deep Learning Course | Yuki Asano@University of Amsterdam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 18 | MIT Deep Learning and Artificial Intelligence Lectures | Lex Fridman@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿš— Self driving |\n", + "| 19 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 20 | Deep Reinforcement Learning | Sergey Levine@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 21 | Practical Deep Learning | Jeremy Howard | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 22 | Introduction to Deep Learning | Bhiksha Raj, Rita Singh@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 23 | AI for Everyone | Andrew Ng | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning |\n", + "| 24 | Yann LeCunโ€™s Deep Learning Course at CDS | Yann LeCun@New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 25 | Neural Networks and Deep Learning | Alan Blair@University of New South Wales | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 26 | Spinning Up in Deep Reinforcement Learning | Josh Achiam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐ŸŽฎ Reinforcement learning |\n", + "| | | | | | | | | | |\n", + "| 27 | Introduction to Deep Learning | Alex Smola, Mu Li@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 28 | Dive into Deep Learning in 1 Day | Alex Smola@ODSC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 29 | Dive into Deep Learning | Rachel Hu, Aston Zhang@GTC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 30 | ๅŠจๆ‰‹ๅญฆๆทฑๅบฆๅญฆไน ๅœจ็บฟ่ฏพ็จ‹ | Mu Li@D2L | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 31 | Practical Machine Learning | Alex Smola, Mu Li | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 32 | Learning from Data | Yaser Abu-Mostafa@Caltech | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data |\n", + "| 33 | Computational Systems Biology: Deep Learning in the Life Sciences | Manolis Kellis@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ“ˆ Data visualization ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 34 | Introduction to Deep Learning and Generative Models | Sebastian Raschka@UNIVERSITY OF WISCONSINโ€“MADISON | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 35 | Deep Learning for Speech and Language | Antonio Bonafonte &\tJose Adriรกn Rodrรญguez Fonollosa &\tMarta Ruiz Costa-jussร  \t& Javier Hernando \t& Santiago Pascual \t& Elisa Sayrol \t& Xavier Giro-i-Nieto@Universitat Politรจcnica de Catalunya | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", + "| 36 | Deep Learning on Computational Accelerators | Alex Bronstein & Chaim Baskin & Moshe Kimhi & Mitchell Keren Taraday@Technion | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning |\n", + "| 37 | Applications of Deep Neural Networks | Jeff Heaton@Washington University in St. Louis | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘ฝ Deep learning |\n", + "| 38 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP ๐Ÿ‘“ Computer vision |\n", + "| 39 | Deep Learning | Justin Sirignano@Univ. of Illinois at Urbana-Champaign | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", + "| 40 | Deep learning course | Victor Lempitsky@Skoltech | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP |\n", + "| 41 | Deep Learning for Natural Language Processing | Phil Blunsom@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 42 | Machine Learning | Tony Jebara@Columbia University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 43 | Harvard University: Introduction to Data Science with Python | Pavlos Protopapas@Havard University | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning |\n", + "| 44 | Introduction to Machine Learning | Jennifer Listgarten, Jitendra Malik@UC Berkeley | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 45 | Natural Language Processing with Deep Learning | Christopher Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 46 | Deep Learning for Computer Vision | Fei-Fei Li, Yunzhu Li, Ruohan Gao@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 47 | Advanced Robotics | Pieter Abbeel@UC Berkeley | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿฆฟ Robotics |\n", + "| 48 | Machine Learning | Thorsten Joachims@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 49 | Machine Learning for Data Science | Lillian Lee@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning |\n", + "| 50 | Deep Learning | @New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 51 | Deep Learning for Computer Vision and Natural Language Processing | Liangliang Cao, Dr. James Fan@Columbia University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 52 | Introduction to Matrix Methods | John C. Duchi@Stanford | ๐Ÿ Python | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿงฎ Math |\n", + "| 53 | Machine Learning | Tom Mitchell@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 54 | Introduction to Deep Learning | Bhiksha Raj@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 55 | Mining Massive Data Sets | Jure Leskovec, Mina Ghashami@Stanford | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science |\n", + "| 56 | Reinforcement Learning in the Wild | | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฎ Reinforcement learning |\n", + "| 57 | UVA DEEP LEARNING COURSE | Yuki Asano | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning |\n", + "| 58 | Machine Learning for Beginners | Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura@Microsoft | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ Python |\n", + "| 59 | Machine Learning Crash Course with TensorFlow APIs | Google for Developers@Google for Developers | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 60 | Deep Learning course | Charles Ollion, Olivier Grisel@Institut polytechnique de Paris | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", + "| 61 | Full Stack Deep Learning | Josh Tobin, Sergey Karayev, Pieter Abbeel, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", + "| 62 | mlcourse.ai โ€“ Open Machine Learning Course | Yury Kashnitsky@mlcourse.ai | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning |\n", + "| 63 | Deep Learning Using PyTorch | Hossein Hajiabolhassan | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning |\n", + "| 64 | A Machine Learning Course with Python | Amirsina Torfi@ Machine Learning Mindset | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning |\n", + "| 65 | MLOps Zoomcamp | Alexey Grigorev@DataTalks.Club | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning |\n", + "| 66 | Machine Learning course | Vladislav Goncharenko, Radoslav Neychev@MIPT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐Ÿง  Machine learning |\n", + "| 67 | Machine Learning | Andrew Ng@Stanford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 68 | Making Friends with Machine Learning | Cassie Kozyrkov | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 69 | Applied Machine Learning | Volodymyr Kuleshov@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 70 | Introduction to Machine Learning | Dmitry Kobak@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 71 | Statistical Machine Learning | Ulrike von Luxburg@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 72 | Probabilistic Machine Learning | Philipp Hennig@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 73 | Machine Learning for Healthcare | Peter Szolovits, David Sontag@MIT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning |\n", + "| 74 | Neural Networks: Zero to Hero | Andrej Karpathy@karpathy.ai | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 75 | Deep Learning โ€” Andreas Geiger | Andreas Zell@University of Tรผbingen | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 76 | Foundation Models | Samuel Albanie | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning |\n", + "| 77 | Yann LeCunโ€™s Deep Learning Course | Alfredo Canziani@NYU | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 78 | Deep Unsupervised Learning | Pieter Abbeel, Peter Chen, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 79 | Deep Neural Networks | Sergey Levine, Phillip Isola@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 80 | Deep Learning | Andrew Ng@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |\n", + "| 81 | Deep Learning for Art, Aesthetics, and Creativity | Ali Jahanian, Alyosha Efros, others@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning |" ], "text/plain": [ "" @@ -204,7 +204,7 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 5, "metadata": { "tags": [ "remove_cell" @@ -216,7 +216,7 @@ "output_type": "stream", "text": [ "[NbConvertApp] Converting notebook README.ipynb to markdown\n", - "[NbConvertApp] Writing 54327 bytes to README.md\n" + "[NbConvertApp] Writing 71278 bytes to README.md\n" ] } ], diff --git a/awesome/database/data.db b/awesome/database/data.db index 316a1ae2e66bafd4e1aacc7e8d6b812168e2e37a..0409b17e7b2a59b3d26700b4c36cb5929bc123dc 100644 GIT binary patch delta 408 zcmW;EO-NKx7{>AQ@t))H-now8M`6Y!vyYs_Q2GBc^|3yx(Hddv0YyR4up`qc)9{zGE5C6^)Q~TKp!5uZUXyP!NIqePQpB0g$GQGJ@)kwZoY#j zco9ieiAP}Kk+}Nn6iDoqS{LWMV9TwXu`k$Fm3L&=QSfyhQ&p*PzTD!PjjGHsk$vRr o02@nk{C~&<%W_;&QtiyAD#wwunk;2CTaM*gG0QW@QA@V%AL4q7FaQ7m delta 467 zcmZp8VAb%zYJxQ5!HF`?j0YPNwk9wx)8~<5;M&aok98sQbw;VpjtLx$Y^_$#5~04+ z4GbAA`GZRm^V0H*QWTtnjf^aps6#M*xDF;#X}RPZ*F3V-oD}$?@`9>XIfZH zxp^5F7?@e_GH}n~xXXGMsPsJR^1D-6m|0qFJjJI!oWY_r{cSae1UJ+b7MA7;(;a8B z$n)wb1Q!%#=A|nb85mk_PngN#&BU7MArYE7eZy>)a6Sc%;L_aO)FPm?k%4AA`y7_- z>~mQEf98^7;OXI*$9jud4rm!4Gh3^ryF_UHbl=Hrp|T2(8m1_O<`iXSrz(`?=PCG< zRwR`crR#tV*}iBpn=2EmqZ`PMH&fXnc@#844(~|n$Z9N From 026f8e8187bf23a6dc59f7f5c6d9eb59db58558e Mon Sep 17 00:00:00 2001 From: lola-jo Date: Fri, 1 Sep 2023 23:08:53 +0800 Subject: [PATCH 06/15] update readme.md --- awesome/README.md | 168 +++++++++++++++++++++++----------------------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/awesome/README.md b/awesome/README.md index 38a2a90b1b..0730e40b91 100644 --- a/awesome/README.md +++ b/awesome/README.md @@ -5,88 +5,88 @@ ## Courses -| | Title | By | Topic | Price | Level | Type | Hascert | Language | Tag | -|---:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------|:---------------|:----------------|:--------------|:----------|:-----------------------|:--------------------------------------------------------------------------------------------------| -| 1 | Data Visualization | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ“ˆ Data visualization ๐Ÿซ™ Javascript ๐Ÿ‘จโ€๐Ÿซ Projects | -| 2 | Relational Database | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ“Š SQL | -| 3 | Scientific Computing with Python | Charles Severance@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video | -| 4 | Data Analysis with Python | Santiago Basulto@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video | -| 5 | Machine Learning with Python | Tim Ruscica@freeCodeCamp | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 6 | Big Data, Large Scale Machine Learning | John Langford, Yann LeCun@New York University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data | -| 7 | Artificial Intelligence | Patrick Henry Winston@MIT | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿค– AI | -| 8 | Natural Language Processing with Deep Learning | Chris Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | -| 9 | Machine Learning: 2014-2015 | Nando de Freitas@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 10 | Getting Started with Deep Learning | @NVIDIA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฅ Paid of 90$ | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning โšก๏ธ Big data ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision | -| 11 | Building Video AI Applications at the Edge on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision | -| 12 | Getting Started with AI on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘“ Computer vision ๐Ÿ’ป Hardware ๐Ÿฆฟ Robotics | -| 13 | Graduate Summer School: Deep Learning, Feature Learning | Yann LeCun, Yoshua Bengio, Geoffrey Hinton, Andrew Ng, Stanley Osher@UCLA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 14 | Deep Learning 2017 | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 15 | Deep Learning | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 16 | Statistical Machine Learning: Spring 2017 | Ryan Tibshirani, Larry Wasserman@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 17 | UVA Deep Learning Course | Yuki Asano@University of Amsterdam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 18 | MIT Deep Learning and Artificial Intelligence Lectures | Lex Fridman@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿš— Self driving | -| 19 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 20 | Deep Reinforcement Learning | Sergey Levine@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 21 | Practical Deep Learning | Jeremy Howard | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 22 | Introduction to Deep Learning | Bhiksha Raj, Rita Singh@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 23 | AI for Everyone | Andrew Ng | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning | -| 24 | Yann LeCunโ€™s Deep Learning Course at CDS | Yann LeCun@New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 25 | Neural Networks and Deep Learning | Alan Blair@University of New South Wales | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 26 | Spinning Up in Deep Reinforcement Learning | Josh Achiam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐ŸŽฎ Reinforcement learning | -| | | | | | | | | | | -| 27 | Introduction to Deep Learning | Alex Smola, Mu Li@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 28 | Dive into Deep Learning in 1 Day | Alex Smola@ODSC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 29 | Dive into Deep Learning | Rachel Hu, Aston Zhang@GTC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 30 | ๅŠจๆ‰‹ๅญฆๆทฑๅบฆๅญฆไน ๅœจ็บฟ่ฏพ็จ‹ | Mu Li@D2L | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 31 | Practical Machine Learning | Alex Smola, Mu Li | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 32 | Learning from Data | Yaser Abu-Mostafa@Caltech | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data | -| 33 | Computational Systems Biology: Deep Learning in the Life Sciences | Manolis Kellis@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ“ˆ Data visualization ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 34 | Introduction to Deep Learning and Generative Models | Sebastian Raschka@UNIVERSITY OF WISCONSINโ€“MADISON | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 35 | Deep Learning for Speech and Language | Antonio Bonafonte & Jose Adriรกn Rodrรญguez Fonollosa & Marta Ruiz Costa-jussร  & Javier Hernando & Santiago Pascual & Elisa Sayrol & Xavier Giro-i-Nieto@Universitat Politรจcnica de Catalunya | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | -| 36 | Deep Learning on Computational Accelerators | Alex Bronstein & Chaim Baskin & Moshe Kimhi & Mitchell Keren Taraday@Technion | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | -| 37 | Applications of Deep Neural Networks | Jeff Heaton@Washington University in St. Louis | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘ฝ Deep learning | -| 38 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP ๐Ÿ‘“ Computer vision | -| 39 | Deep Learning | Justin Sirignano@Univ. of Illinois at Urbana-Champaign | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | -| 40 | Deep learning course | Victor Lempitsky@Skoltech | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | -| 41 | Deep Learning for Natural Language Processing | Phil Blunsom@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 42 | Machine Learning | Tony Jebara@Columbia University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 43 | Harvard University: Introduction to Data Science with Python | Pavlos Protopapas@Havard University | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning | -| 44 | Introduction to Machine Learning | Jennifer Listgarten, Jitendra Malik@UC Berkeley | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 45 | Natural Language Processing with Deep Learning | Christopher Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 46 | Deep Learning for Computer Vision | Fei-Fei Li, Yunzhu Li, Ruohan Gao@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 47 | Advanced Robotics | Pieter Abbeel@UC Berkeley | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿฆฟ Robotics | -| 48 | Machine Learning | Thorsten Joachims@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 49 | Machine Learning for Data Science | Lillian Lee@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning | -| 50 | Deep Learning | @New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 51 | Deep Learning for Computer Vision and Natural Language Processing | Liangliang Cao, Dr. James Fan@Columbia University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 52 | Introduction to Matrix Methods | John C. Duchi@Stanford | ๐Ÿ Python | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿงฎ Math | -| 53 | Machine Learning | Tom Mitchell@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 54 | Introduction to Deep Learning | Bhiksha Raj@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 55 | Mining Massive Data Sets | Jure Leskovec, Mina Ghashami@Stanford | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science | -| 56 | Reinforcement Learning in the Wild | | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฎ Reinforcement learning | -| 57 | UVA DEEP LEARNING COURSE | Yuki Asano | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | -| 58 | Machine Learning for Beginners | Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura@Microsoft | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ Python | -| 59 | Machine Learning Crash Course with TensorFlow APIs | Google for Developers@Google for Developers | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 60 | Deep Learning course | Charles Ollion, Olivier Grisel@Institut polytechnique de Paris | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | -| 61 | Full Stack Deep Learning | Josh Tobin, Sergey Karayev, Pieter Abbeel, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | -| 62 | mlcourse.ai โ€“ Open Machine Learning Course | Yury Kashnitsky@mlcourse.ai | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning | -| 63 | Deep Learning Using PyTorch | Hossein Hajiabolhassan | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | -| 64 | A Machine Learning Course with Python | Amirsina Torfi@ Machine Learning Mindset | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | -| 65 | MLOps Zoomcamp | Alexey Grigorev@DataTalks.Club | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning | -| 66 | Machine Learning course | Vladislav Goncharenko, Radoslav Neychev@MIPT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐Ÿง  Machine learning | -| 67 | Stanford CS229: Machine Learning | Andrew Ng@Stanford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 68 | Making Friends with Machine Learning | Cassie Kozyrkov | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 69 | Applied Machine Learning | Volodymyr Kuleshov@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 70 | Introduction to Machine Learning (Tรผbingen) | Dmitry Kobak@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 71 | Statistical Machine Learning โ€” Ulrike von Luxburg, 2020 | Ulrike von Luxburg@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 72 | Probabilistic Machine Learning (Summer 2020) | Philipp Hennig@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 73 | MIT 6.S897 Machine Learning for Healthcare, Spring 2019 | Peter Szolovits, David Sontag@MIT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | -| 74 | Neural Networks: Zero to Hero | Andrej Karpathy@karpathy.ai | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | -| 75 | Deep Learning โ€” Andreas Geiger | Andreas Zell@University of Tรผbingen | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | -| 76 | Foundation Models | Samuel Albanie | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning | -| 77 | Yann LeCunโ€™s Deep Learning Course at CDS | Alfredo Canziani@NYU | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | -| 78 | Deep Unsupervised Learning | Pieter Abbeel, Peter Chen, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | -| 79 | Deep Neural Networks | Sergey Levine, Phillip Isola@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | -| 80 | Stanford CS230: Deep Learning | Andrew Ng@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | -| 81 | MIT 6.S192: Deep Learning for Art, Aesthetics, and Creativity | Ali Jahanian, Alyosha Efros, others@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| | Title | By | Topic | Price | Level | Type | Hascert | Language | Tag | +|---:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------|:---------------|:----------------|:--------------|:----------|:-----------------------|:--------------------------------------------------------------------------------------------------| +| 1 | Data Visualization | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ“ˆ Data visualization ๐Ÿซ™ Javascript ๐Ÿ‘จโ€๐Ÿซ Projects | +| 2 | Relational Database | @freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ“Š SQL | +| 3 | Scientific Computing with Python | Charles Severance@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video | +| 4 | Data Analysis with Python | Santiago Basulto@freeCodeCamp | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video | +| 5 | Machine Learning with Python | Tim Ruscica@freeCodeCamp | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 6 | Big Data, Large Scale Machine Learning | John Langford, Yann LeCun@New York University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data | +| 7 | Artificial Intelligence | Patrick Henry Winston@MIT | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿค– AI | +| 8 | Natural Language Processing with Deep Learning | Chris Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | +| 9 | Machine Learning: 2014-2015 | Nando de Freitas@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 10 | Getting Started with Deep Learning | @NVIDIA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฅ Paid of 90$ | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning โšก๏ธ Big data ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision | +| 11 | Building Video AI Applications at the Edge on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘“ Computer vision | +| 12 | Getting Started with AI on Jetson Nano | @NVIDIA | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘“ Computer vision ๐Ÿ’ป Hardware ๐Ÿฆฟ Robotics | +| 13 | Graduate Summer School: Deep Learning, Feature Learning | Yann LeCun, Yoshua Bengio, Geoffrey Hinton, Andrew Ng, Stanley Osher@UCLA | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 14 | Deep Learning 2017 | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 15 | Deep Learning | Ali Ghodsi@University of Waterloo | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 16 | Statistical Machine Learning: Spring 2017 | Ryan Tibshirani, Larry Wasserman@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 17 | UVA Deep Learning Course | Yuki Asano@University of Amsterdam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 18 | MIT Deep Learning and Artificial Intelligence Lectures | Lex Fridman@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿš— Self driving | +| 19 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 20 | Deep Reinforcement Learning | Sergey Levine@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 21 | Practical Deep Learning | Jeremy Howard | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 22 | Introduction to Deep Learning | Bhiksha Raj, Rita Singh@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 23 | AI for Everyone | Andrew Ng | ๐Ÿค– AI | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning | +| 24 | Yann LeCunโ€™s Deep Learning Course at CDS | Yann LeCun@New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 25 | Neural Networks and Deep Learning | Alan Blair@University of New South Wales | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 26 | Spinning Up in Deep Reinforcement Learning | Josh Achiam | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐ŸŽฎ Reinforcement learning | +| | | | | | | | | | | +| 27 | Introduction to Deep Learning | Alex Smola, Mu Li@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 28 | Dive into Deep Learning in 1 Day | Alex Smola@ODSC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 29 | Dive into Deep Learning | Rachel Hu, Aston Zhang@GTC | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 30 | ๅŠจๆ‰‹ๅญฆๆทฑๅบฆๅญฆไน ๅœจ็บฟ่ฏพ็จ‹ | Mu Li@D2L | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ | ๐Ÿ‘จโ€๐Ÿซ Projects ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 31 | Practical Machine Learning | Alex Smola, Mu Li | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘จโ€๐Ÿซ Projects ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 32 | Learning from Data | Yaser Abu-Mostafa@Caltech | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning โšก๏ธ Big data | +| 33 | Computational Systems Biology: Deep Learning in the Life Sciences | Manolis Kellis@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ“ˆ Data visualization ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 34 | Introduction to Deep Learning and Generative Models | Sebastian Raschka@UNIVERSITY OF WISCONSINโ€“MADISON | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 35 | Deep Learning for Speech and Language | Antonio Bonafonte & Jose Adriรกn Rodrรญguez Fonollosa & Marta Ruiz Costa-jussร  & Javier Hernando & Santiago Pascual & Elisa Sayrol & Xavier Giro-i-Nieto@Universitat Politรจcnica de Catalunya | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | +| 36 | Deep Learning on Computational Accelerators | Alex Bronstein & Chaim Baskin & Moshe Kimhi & Mitchell Keren Taraday@Technion | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning | +| 37 | Applications of Deep Neural Networks | Jeff Heaton@Washington University in St. Louis | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ‘ฝ Deep learning | +| 38 | Introduction to Deep Learning | Alexander Amini & Ava Amini & Sadhana Lolla@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP ๐Ÿ‘“ Computer vision | +| 39 | Deep Learning | Justin Sirignano@Univ. of Illinois at Urbana-Champaign | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | +| 40 | Deep learning course | Victor Lempitsky@Skoltech | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐ŸŽฅ Video ๐Ÿง  Machine learning ๐Ÿ‘ฝ Deep learning ๐Ÿ—ฃ๏ธ NLP | +| 41 | Deep Learning for Natural Language Processing | Phil Blunsom@Oxford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 42 | Machine Learning | Tony Jebara@Columbia University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 43 | Harvard University: Introduction to Data Science with Python | Pavlos Protopapas@Havard University | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning | +| 44 | Introduction to Machine Learning | Jennifer Listgarten, Jitendra Malik@UC Berkeley | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 45 | Natural Language Processing with Deep Learning | Christopher Manning@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 46 | Deep Learning for Computer Vision | Fei-Fei Li, Yunzhu Li, Ruohan Gao@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 47 | Advanced Robotics | Pieter Abbeel@UC Berkeley | ๐Ÿฆฟ Robotics | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿฆฟ Robotics | +| 48 | Machine Learning | Thorsten Joachims@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 49 | Machine Learning for Data Science | Lillian Lee@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿง  Machine learning | +| 50 | Deep Learning | @New York University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 51 | Deep Learning for Computer Vision and Natural Language Processing | Liangliang Cao, Dr. James Fan@Columbia University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 52 | Introduction to Matrix Methods | John C. Duchi@Stanford | ๐Ÿ Python | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿงฎ Math | +| 53 | Machine Learning | Tom Mitchell@Carnegie Mellon University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 54 | Introduction to Deep Learning | Bhiksha Raj@Carnegie Mellon University | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 55 | Mining Massive Data Sets | Jure Leskovec, Mina Ghashami@Stanford | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸง Intermediate | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science | +| 56 | Reinforcement Learning in the Wild | | ๐Ÿ’ฟ Data science | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฎ Reinforcement learning | +| 57 | UVA DEEP LEARNING COURSE | Yuki Asano | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‘ฝ Deep learning | +| 58 | Machine Learning for Beginners | Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura@Microsoft | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ’ฟ Data science ๐Ÿ Python | +| 59 | Machine Learning Crash Course with TensorFlow APIs | Google for Developers@Google for Developers | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 60 | Deep Learning course | Charles Ollion, Olivier Grisel@Institut polytechnique de Paris | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ซ๐Ÿ‡ท franรงais | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | +| 61 | Full Stack Deep Learning | Josh Tobin, Sergey Karayev, Pieter Abbeel, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | +| 62 | mlcourse.ai โ€“ Open Machine Learning Course | Yury Kashnitsky@mlcourse.ai | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning | +| 63 | Deep Learning Using PyTorch | Hossein Hajiabolhassan | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿ‘ฝ Deep learning | +| 64 | A Machine Learning Course with Python | Amirsina Torfi@ Machine Learning Mindset | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿง  Machine learning | +| 65 | MLOps Zoomcamp | Alexey Grigorev@DataTalks.Club | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ Python ๐Ÿง  Machine learning | +| 66 | Machine Learning course | Vladislav Goncharenko, Radoslav Neychev@MIPT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English ๐Ÿ‡ท๐Ÿ‡บ ั€ัƒััะบะธะน | ๐Ÿ Python ๐Ÿง  Machine learning | +| 67 | Machine Learning | Andrew Ng@Stanford | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 68 | Making Friends with Machine Learning | Cassie Kozyrkov | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 69 | Applied Machine Learning | Volodymyr Kuleshov@Cornell University | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 70 | Introduction to Machine Learning | Dmitry Kobak@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 71 | Statistical Machine Learning | Ulrike von Luxburg@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 72 | Probabilistic Machine Learning | Philipp Hennig@University of Tรผbingen | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 73 | Machine Learning for Healthcare | Peter Szolovits, David Sontag@MIT | ๐Ÿง  Machine learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿง  Machine learning | +| 74 | Neural Networks: Zero to Hero | Andrej Karpathy@karpathy.ai | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฉ Beginner | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 75 | Deep Learning โ€” Andreas Geiger | Andreas Zell@University of Tรผbingen | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 76 | Foundation Models | Samuel Albanie | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿค– AI ๐Ÿ‘ฝ Deep learning | +| 77 | Yann LeCunโ€™s Deep Learning Course | Alfredo Canziani@NYU | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 78 | Deep Unsupervised Learning | Pieter Abbeel, Peter Chen, others | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 79 | Deep Neural Networks | Sergey Levine, Phillip Isola@UC Berkeley | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 80 | Deep Learning | Andrew Ng@Stanford | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | +| 81 | Deep Learning for Art, Aesthetics, and Creativity | Ali Jahanian, Alyosha Efros, others@MIT | ๐Ÿ‘ฝ Deep learning | ๐ŸŸฉ Free | ๐ŸŸฅ Advanced | ๐ŸŸฉ Self-paced | โŒ | ๐Ÿ‡บ๐Ÿ‡ธ English | ๐ŸŽฅ Video ๐Ÿ‘ฝ Deep learning | From 6e7aa747395b5be9d403806014da1cb9f14038b5 Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Sat, 2 Sep 2023 12:41:21 +0800 Subject: [PATCH 07/15] migrate linear and polynomial regression from md to ipynb. --- .../linear-and-polynomial-regression.ipynb | 1718 +++++++++++++++++ .../linear-and-polynomial-regression.md | 444 ----- 2 files changed, 1718 insertions(+), 444 deletions(-) create mode 100644 open-machine-learning-jupyter-book/ml-fundamentals/regression/linear-and-polynomial-regression.ipynb delete mode 100644 open-machine-learning-jupyter-book/ml-fundamentals/regression/linear-and-polynomial-regression.md diff --git a/open-machine-learning-jupyter-book/ml-fundamentals/regression/linear-and-polynomial-regression.ipynb b/open-machine-learning-jupyter-book/ml-fundamentals/regression/linear-and-polynomial-regression.ipynb new file mode 100644 index 0000000000..932660e780 --- /dev/null +++ b/open-machine-learning-jupyter-book/ml-fundamentals/regression/linear-and-polynomial-regression.ipynb @@ -0,0 +1,1718 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 38, + "id": "95868c2f-5abf-4fc4-bd6b-256d55d051eb", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [ + "hide-cell" + ] + }, + "outputs": [], + "source": [ + "# Install the necessary dependencies\n", + "\n", + "import os\n", + "import sys\n", + "!{sys.executable} -m pip install --quiet pandas scikit-learn numpy matplotlib jupyterlab_myst\n" + ] + }, + { + "cell_type": "markdown", + "id": "663dea79", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# Linear and polynomial regression\n", + "\n", + ":::{figure} ../../../images/ml-regression/linear-polynomial.png\n", + "---\n", + "name: 'Linear vs polynomial regression infographic'\n", + "width: 100%\n", + "---\n", + "Infographic by [Dasani Madipalli](https://twitter.com/dasani_decoded)\n", + ":::\n" + ] + }, + { + "cell_type": "markdown", + "id": "d0525b63-aae3-492a-b251-8131622648d0", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "## Build a regression model using Scikit-learn: regression four ways" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "f3a0efe9-db96-4df7-a495-7d25504f6828", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [ + "hide-input" + ] + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "

\n", + "\n", + "A demo of linear-regression. [source]\n", + "

\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from IPython.display import HTML\n", + "\n", + "display(HTML(\"\"\"\n", + "

\n", + "\n", + "A demo of linear-regression. [source]\n", + "

\n", + "\"\"\"))" + ] + }, + { + "cell_type": "markdown", + "id": "d08017d2", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "\n", + "\n", + "### Introduction\n", + "\n", + "So far you have explored what regression is with sample data gathered from the pumpkin pricing dataset that we will use throughout this lesson. You have also visualized it using Matplotlib.\n", + "\n", + "Now you are ready to dive deeper into regression for Machine Learning. While visualization allows you to make sense of data, the real power of Machine Learning comes from _training models_. Models are trained on historical data to automatically capture data dependencies, and they allow you to predict outcomes for new data, which the model has not seen before.\n", + "\n", + "In this lesson, you will learn more about two types of regression: _basic linear regression_ and _polynomial regression_, along with some of the math underlying these techniques. Those models will allow us to predict pumpkin prices depending on different input data.\n", + "\n", + ":::{note}\n", + "Throughout this curriculum, we assume minimal knowledge of math, and seek to make it accessible for students coming from other fields, so watch for notes, callouts, diagrams, and other learning tools to aid in comprehension.\n", + ":::\n", + "\n", + "### Prerequisite\n", + "\n", + "You should be familiar by now with the structure of the pumpkin data that we are examining. You can find it preloaded and pre-cleaned in this section's [linear and polynomial regression.ipynb](../../assignments/ml-fundamentals/linear-and-polynomial-regression.ipynb) file. In the file, the pumpkin price is displayed per bushel in a new data frame. Make sure you can run these notebooks in kernels in Visual Studio Code.\n", + "\n", + "### Preparation\n", + "\n", + "As a reminder, you are loading this data so as to ask questions about it.\n", + "\n", + "- When is the best time to buy pumpkins? \n", + "- What price can I expect of a case of miniature pumpkins?\n", + "- Should I buy them in half-bushel baskets or by the 1 1/9 bushel box?\n", + "Let's keep digging into this data.\n", + "\n", + "In the previous lesson, you created a Pandas data frame and populated it with part of the original dataset, standardizing the pricing by bushel. By doing that, however, you were only able to gather about 400 data points and only for the fall months.\n", + "\n", + "Take a look at the data that we preloaded in this lesson's accompanying notebook. The data is preloaded and an initial scatterplot is charted to show monthly data. Maybe we can get a little more detail about the nature of the data by cleaning it more.\n", + "\n", + "## A linear regression line\n", + "\n", + "As you learned in section 1, the goal of a linear regression exercise is to be able to plot a line to:\n", + "\n", + "- **Show variable relationships**. Show the relationship between variables\n", + "- **Make predictions**. Make accurate predictions on where a new data point would fall in relationship to that line.\n", + "\n", + "It is typical of **Least-Squares Regression** to draw this type of line. The term 'least-squares' means that all the data points surrounding the regression line are squared and then added up. Ideally, that final sum is as small as possible, because we want a low number of errors or `least-squares``.\n", + "\n", + "We do so since we want to model a line that has the least cumulative distance from all of our data points. We also square the terms before adding them since we are concerned with their magnitude rather than their direction.\n", + "\n", + ":::{seealso}\n", + "**Show me the math** \n", + " \n", + "This line, called the _line of best fit_ can be expressed by [an equation](https://en.wikipedia.org/wiki/Simple_linear_regression): \n", + "\n", + "> ```\n", + "> Y = a + bX\n", + "> ```\n", + "\n", + "`X` is the 'explanatory variable'. `Y` is the 'dependent variable'. The slope of the line is `b` and `a` is the y-intercept, which refers to the value of `Y` when `X = 0`. \n", + "\n", + ">:::{figure} ../../../images/ml-regression/slope.png\n", + ">---\n", + ">name: 'calculate the slope'\n", + ">width: 60%\n", + ">---\n", + ">Infographic by [Jen Looper](https://twitter.com/jenlooper)\n", + ">:::\n", + "\n", + "First, calculate the slope `b`.\n", + "\n", + "In other words, and referring to our pumpkin data's original question: \"predict the price of a pumpkin per bushel by month\", `X` would refer to the price and `Y` would refer to the month of sale.\n", + "\n", + ">:::{figure} ../../../images/ml-regression/calculation.png\n", + ">---\n", + ">name: 'complete the equation'\n", + ">width: 60%\n", + ">---\n", + ">Infographic by [Jen Looper](https://twitter.com/jenlooper)\n", + ">:::\n", + "\n", + "Calculate the value of Y. If you're paying around $4, it must be April!\n", + "\n", + "The math that calculates the line must demonstrate the slope of the line, which is also dependent on the intercept, or where `Y` is situated when `X = 0`.\n", + "\n", + "You can observe the method of calculation for these values on the [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) website. Also, visit [this Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) to watch how the numbers' values impact the line.\n", + ":::\n", + "\n", + "## Correlation\n", + "\n", + "One more term to understand is the **Correlation Coefficient** between given X and Y variables. Using a scatterplot, you can quickly visualize this coefficient. A plot with data points scattered in a neat line has a high correlation, but a plot with data points scattered everywhere between X and Y has a low correlation.\n", + "\n", + "A good linear regression model will be one that has a high (nearer to 1 than 0) Correlation Coefficient using the Least-Squares Regression method with a line of regression.\n", + "\n", + ":::{seealso}\n", + "Run the notebook accompanying this lesson and look at the Month to Price scatterplot. Does the data associating Month to Price for pumpkin sales seem to have a high or low correlation, according to your visual interpretation of the scatterplot? Does that change if you use a more fine-grained measure instead of `Month`, eg. *day of the year* (i.e. number of days since the beginning of the year)?\n", + ":::\n", + "\n", + "In the code below, we will assume that we have cleaned up the data, and obtained a data frame called `new_pumpkins`, similar to the following:" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "93a478b1", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [ + "output_scroll" + ] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
City NameTypePackageVarietySub VarietyGradeDateLow PriceHigh PriceMostly Low...Unit of SaleQualityConditionAppearanceStorageCropRepackTrans ModeUnnamed: 24Unnamed: 25
0BALTIMORENaN24 inch binsNaNNaNNaN4/29/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
1BALTIMORENaN24 inch binsNaNNaNNaN5/6/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
2BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
3BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
4BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN11/5/1690.0100.090.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
\n", + "

5 rows ร— 26 columns

\n", + "
" + ], + "text/plain": [ + " City Name Type Package Variety Sub Variety Grade Date \\\n", + "0 BALTIMORE NaN 24 inch bins NaN NaN NaN 4/29/17 \n", + "1 BALTIMORE NaN 24 inch bins NaN NaN NaN 5/6/17 \n", + "2 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 9/24/16 \n", + "3 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 9/24/16 \n", + "4 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 11/5/16 \n", + "\n", + " Low Price High Price Mostly Low ... Unit of Sale Quality Condition \\\n", + "0 270.0 280.0 270.0 ... NaN NaN NaN \n", + "1 270.0 280.0 270.0 ... NaN NaN NaN \n", + "2 160.0 160.0 160.0 ... NaN NaN NaN \n", + "3 160.0 160.0 160.0 ... NaN NaN NaN \n", + "4 90.0 100.0 90.0 ... NaN NaN NaN \n", + "\n", + " Appearance Storage Crop Repack Trans Mode Unnamed: 24 Unnamed: 25 \n", + "0 NaN NaN NaN E NaN NaN NaN \n", + "1 NaN NaN NaN E NaN NaN NaN \n", + "2 NaN NaN NaN N NaN NaN NaN \n", + "3 NaN NaN NaN N NaN NaN NaN \n", + "4 NaN NaN NaN N NaN NaN NaN \n", + "\n", + "[5 rows x 26 columns]" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from datetime import datetime\n", + "\n", + "pumpkins = pd.read_csv('https://static-1300131294.cos.accelerate.myqcloud.com/data/us-pumpkins.csv')\n", + "\n", + "pumpkins.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "351f7c01", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MonthDayOfYearVarietyCityPackageLow PriceHigh PricePrice
709267PIE TYPEBALTIMORE1 1/9 bushel cartons15.015.013.636364
719267PIE TYPEBALTIMORE1 1/9 bushel cartons18.018.016.363636
7210274PIE TYPEBALTIMORE1 1/9 bushel cartons18.018.016.363636
7310274PIE TYPEBALTIMORE1 1/9 bushel cartons17.017.015.454545
7410281PIE TYPEBALTIMORE1 1/9 bushel cartons15.015.013.636364
\n", + "
" + ], + "text/plain": [ + " Month DayOfYear Variety City Package Low Price \\\n", + "70 9 267 PIE TYPE BALTIMORE 1 1/9 bushel cartons 15.0 \n", + "71 9 267 PIE TYPE BALTIMORE 1 1/9 bushel cartons 18.0 \n", + "72 10 274 PIE TYPE BALTIMORE 1 1/9 bushel cartons 18.0 \n", + "73 10 274 PIE TYPE BALTIMORE 1 1/9 bushel cartons 17.0 \n", + "74 10 281 PIE TYPE BALTIMORE 1 1/9 bushel cartons 15.0 \n", + "\n", + " High Price Price \n", + "70 15.0 13.636364 \n", + "71 18.0 16.363636 \n", + "72 18.0 16.363636 \n", + "73 17.0 15.454545 \n", + "74 15.0 13.636364 " + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]\n", + "\n", + "new_columns = ['Package', 'Variety', 'City Name', 'Month', 'Low Price', 'High Price', 'Date']\n", + "pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1)\n", + "\n", + "price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2\n", + "\n", + "month = pd.DatetimeIndex(pumpkins['Date']).month\n", + "day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)\n", + "\n", + "new_pumpkins = pd.DataFrame(\n", + " {'Month': month, \n", + " 'DayOfYear' : day_of_year, \n", + " 'Variety': pumpkins['Variety'], \n", + " 'City': pumpkins['City Name'], \n", + " 'Package': pumpkins['Package'], \n", + " 'Low Price': pumpkins['Low Price'],\n", + " 'High Price': pumpkins['High Price'], \n", + " 'Price': price})\n", + "\n", + "new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/1.1\n", + "new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price*2\n", + "\n", + "new_pumpkins.head()" + ] + }, + { + "cell_type": "markdown", + "id": "75dff0fd", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "A basic scatterplot reminds us that we only have monthly data from August through December. We probably need more data to be able to draw conclusions in a linear fashion." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "62162c46", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter('Month', 'Price', data=new_pumpkins)" + ] + }, + { + "cell_type": "markdown", + "id": "025f014e", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + ":::{note}\n", + "We have performed the same cleaning steps as in the previous section, and have calculated `DayOfYear` column using the following expression: \n", + ":::" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "bc1d5493", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)" + ] + }, + { + "cell_type": "markdown", + "id": "83b08051", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Now that you have an understanding of the math behind linear regression, let's create a Regression model to see if we can predict which package of pumpkins will have the best pumpkin prices. Someone buying pumpkins for a holiday pumpkin patch might want this information to be able to optimize their purchases of pumpkin packages for the patch.\n", + "\n", + "## Looking for Correlation\n", + "\n", + "From the previous section, you have probably seen that the average price for different months looks like this:\n", + "\n", + ":::{figure} ../../../images/ml-regression/barchart.png\n", + "---\n", + "name: 'Average price by month'\n", + "width: 70%\n", + "---\n", + "Average price by month{cite}`Average_price_by_month`\n", + ":::\n", + "\n", + "This suggests that there should be some correlation, and we can try training a linear regression model to predict the relationship between `Month` and `Price`, or between `DayOfYear` and `Price`. Here is the scatter plot that shows the latter relationship:\n", + "\n", + ":::{figure} ../../../images/ml-regression/scatter-dayofyear.png\n", + "---\n", + "name: 'Scatter plot of Price vs. Day of Year'\n", + "width: 70%\n", + "---\n", + "Scatter plot of Price vs. Day of Year{cite}`Scatter_plot_of_Price_vs._Day_of_Year`\n", + ":::\n", + "\n", + "It looks like there are different clusters of prices corresponding to different pumpkin varieties. To confirm this hypothesis, let's plot each pumpkin category using a different color. By passing an `ax` parameter to the `scatter` plotting function we can plot all points on the same graph:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "9864740b", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "image/png": "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ReLatWvi8ccfF23bthV+fn5i9OjRori42OgY/L3fZOl87t271+x3uKioyHAMns+brH0/63OH65FGCCEcc++HiIiIyL7YRoaIiIhcFhMZIiIicllMZIiIiMhlMZEhIiIil8VEhoiIiFwWExkiIiJyWUxkiIiIyGUxkSEiIiKXxUSGiNzGl19+ib59+8Lb2xujRo2SXRwicgAmMkTUaFOmTIFGo4FGo4G3tzc6dOiA5ORkrF692jDZpD1t27YN99xzDwICAuDn54dBgwYhPT29wX5PPfUUBgwYgKKiIsybNw/e3t744osvjPa5cuUKunfvjgULFti9nETkeExkiKhJUlJSUFxcjB9//BE7duzAvffeiyeffBL3338/bty4Ybc4f//73/Hggw/izjvvRE5ODr777js8+uijmDlzZoNkpLCwEMOGDUPnzp1xzz33YM6cOZgyZQquXLli2GfhwoVo3bo1XnzxRbuVsdb169ftfkwiskL2ZE9E5HomT54sHnzwwQbrd+/eLQCIf/7zn0IIIV577TXRp08f4efnJzp37ixmzZplmGzy559/FgEBAWLjxo1Gx9i8ebPw8/MT5eXl4tSpU8Lb21s89dRTDWK98cYbAoA4dOiQKCoqMjkx5rVr10SvXr3E7NmzhRBC7NmzR/j4+IgjR46I6upq8fLLL4tu3bqJVq1aiX79+hmV5caNG2Lq1KmG7bGxsWLlypUmz8OLL74oIiIiRLdu3Zp1Xomo8XhHhojsZtiwYejfvz82bdoEAGjRogXeeOMNfP/991izZg327NmDhQsXAgDatGmDRx99FGlpaUbHSEtLw0MPPYSAgAB89NFHqKqqMvkYaMaMGfD398f69esRGRmJ4uJiBAYGYuXKlSguLsYjjzyCVq1aYe3atXj33XfxySefYOrUqViyZAkGDhyI5cuXY+3atXj77bfx/fffY968eZg4cSL2798PAKipqUHnzp2xceNGHD9+HEuXLsWSJUvw4YcfGpVj9+7dOHHiBHbt2oVt27apcVqJyBLZmRQRuR5zd2SEEOKRRx4RvXr1Mrlt48aNIjQ01PA6JydHeHl5ibNnzwohhDh37pxo2bKl2LdvnxBCiJkzZ4qgoCCz5ejXr58YMWKE4XVQUJBIS0trsN/SpUtFixYtxMCBA0VVVZWoqKgQfn5+4uDBg0b7TZs2TYwbN85svNmzZ4uxY8caXk+ePFl06NBBVFZWmn0PEamLd2SIyK6EENBoNACArKwsJCYmolOnTggICMCkSZNQWlqKq1evAgB+9atfoXfv3lizZg0A4F//+he6du2KIUOG2LVMf/zjH1FTU4NFixahZcuWKCgowNWrV5GcnAx/f3/DsnbtWhQWFhre9+abb2LgwIFo3749/P398e677+LUqVNGx+7bty98fHzsWl4ish0TGSKyqx9++AFRUVH48ccfcf/996Nfv374+OOPcfToUbz55psAjBvF/u53vzP0QEpLS8Njjz1mSIRiY2Oh1+tx9uzZBnGuX7+OwsJCxMbGWi1Ty5Ytjf77888/AwA+++wz5ObmGpbjx4/jo48+AgBs2LABCxYswLRp07Bz507k5ubisccea9Cgt02bNo05PURkZ0xkiMhu9uzZg2PHjmHs2LE4evQoampq8Nprr+GOO+5AbGysyYRk4sSJ+Omnn/DGG2/g+PHjmDx5smHb2LFj4e3tjddee63B+95++21cuXIF48aNa3Q5b7nlFvj6+uLUqVOIjo42WiIjIwEoY9IMHjwYjz/+OG699VZER0cb3a0hIufQUnYBiMg1VVZWoqSkBNXV1Th37hwyMjKwfPly3H///fjtb3+LvLw8VFVV4e9//zseeOABfPnll3j77bcbHKdt27YYM2YMnn76aQwfPhydO3c2bOvSpQv+8pe/YP78+WjVqhUmTZoEb29vfPLJJ1iyZAnmz5+P+Pj4Rpc9ICAACxYswLx581BTU4O77roLer0eX375JQIDAzF58mTExMRg7dq1yMzMRFRUFN5//30cPnwYUVFRzTpvRGRnshvpEJHrmTx5sqGbc8uWLUX79u1FUlKSWL16taiurjbs99e//lVERESI1q1bC61WK9auXSsAiIsXLxodr7bb9ocffmgy3ieffCLuvvtu0aZNG9GqVSsxcOBAsXr16gb7mWvsK4QQAMTmzZsNr2tqasTKlStFXFyc8Pb2Fu3btxdarVbs379fCCFERUWFmDJliggKChLBwcFi1qxZYtGiRaJ///5G58Fco2cicgyNEEJIzaSIyOO9//77mDdvHs6ePcuGs0TUKHy0RETSXL16FcXFxVixYgVmzJjBJIaIGo2NfYlImr/85S/o2bMnwsPDsXjxYtnFISIXxEdLRERE5LJ4R4aIiIhcFhMZIiIicllMZIiIiMhlMZEhIiIil8VEhoiIiFwWExkiIiJyWUxkiIiIyGUxkSEiIiKX9f9PmheX/r+mHwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ax=None\n", + "colors = ['red','blue','green','yellow']\n", + "for i,var in enumerate(new_pumpkins['Variety'].unique()):\n", + " df = new_pumpkins[new_pumpkins['Variety']==var]\n", + " ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)" + ] + }, + { + "cell_type": "markdown", + "id": "f6bb5fa9", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Our investigation suggests that variety has more effect on the overall price than the actual selling date. So let us focus for the moment only on one pumpkin variety, and see what effect the date has on the price:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "115f94ab", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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jIwM07dvX+N0Os2dd95pTpw40Y098R8dGdMvv/zS3HTTTSY2NtaEh4ebUaNGNZuqzZiedtddd5khQ4aYXr16mZiYGHPNNdd4vEl888035r777jP9+/c34eHh5gc/+IE5ePCgx2Pwev9WW+O5cePGVp+/xcXF7sdgPD219xw9WyC8JzmMMaZ7PgMCAADwPs6ZAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYAQAAtkaYARAw8vLyNHLkSIWGhmrGjBlWNwdANyHMAOi0O+64Qw6HQw6HQ6GhoRo4cKC+973v6fnnn3cvTulN69ev14QJExQZGanw8HCNHTtWK1eubHbc/fffr0suuUTFxcVauHChQkND9eGHH3ocU11draFDh+rBBx/0ejsBWIMwA6BLrr32Wh08eFD79u3Tm2++qUmTJunf/u3fdN1116m+vt5rdbKysnTjjTcqLS1NH3/8sT799FP96Ec/0j333NMskOzZs0dXX3214uLiNGHCBM2bN0933HGHqqur3cf85Cc/UVhYmB599FGvtbHJqVOnvP6YADrA6sWhANjPrFmzzI033ths+/vvv28kmWeffdYYY8wTTzxhLr74YhMeHm7i4uLMvffe616csqqqykRGRpo1a9Z4PEZ2drYJDw83lZWVpqSkxISGhpr777+/Wa2nn37aSDIfffSRKS4ubnEhzW+++cYMHz7cZGZmGmOM2bBhg+nVq5fZtm2baWhoML/85S9NYmKi6dOnjxk1apRHW+rr681dd93l3n/BBReYp556qsVxePTRR815551nEhMTz2lcAXQNn8wA8Jqrr75ao0eP1quvvipJ6tGjh55++ml9/vnneuGFF7Rhwwb95Cc/kSRFREToRz/6kVasWOHxGCtWrNAPf/hDRUZG6pVXXlFdXV2LXwndfffd6tu3r1avXq34+HgdPHhQTqdTTz31lA4ePKhbbrlFffr00apVq/THP/5Rr732mu666y4tWbJEY8aM0bJly7Rq1So988wz+vzzz7Vw4ULdeuutysnJkSQ1NjYqLi5Oa9as0e7du/Xwww9ryZIlevnllz3a8f7776ugoEDvvvuu1q9f74thBdAeq9MUAPtp7ZMZY4y55ZZbzPDhw1vct2bNGhMVFeX++eOPPzY9e/Y0paWlxhhjvv76axMSEmI2bdpkjDHmnnvuMS6Xq9V2jBo1ykybNs39s8vlMitWrGh23MMPP2x69OhhxowZY+rq6szJkydNeHi42bx5s8dxs2fPNhkZGa3Wy8zMNDNnznT/PGvWLDNw4EBTW1vb6n0A+B6fzADwKmOMHA6HJOm9997TNddco/PPP1+RkZG67bbbdOTIEdXU1EiSLrvsMl100UV64YUXJEl/+ctfNGTIEKWnp3u1TT//+c/V2NioRYsWKSQkREVFRaqpqdH3vvc99e3b131btWqV9uzZ477f8uXLNWbMGMXExKhv37764x//qJKSEo/HHjlypHr16uXV9gLoHMIMAK/64osvlJSUpH379um6667TqFGj9Le//U3bt2/X8uXLJXmeKPuv//qv7plJK1as0J133ukOQxdccIEqKipUWlrarM6pU6e0Z88eXXDBBe22KSQkxOO/VVVVkqTXX39d+fn57tvu3bv1yiuvSJJefPFFPfjgg5o9e7beeecd5efn684772x2km9ERERnhgeADxBmAHjNhg0b9Nlnn2nmzJnavn27Ghsb9cQTT+iKK67QBRdc0GIoufXWW7V//349/fTT2r17t2bNmuXeN3PmTIWGhuqJJ55odr9nnnlG1dXVysjI6HQ7R4wYod69e6ukpETJycket/j4eEmnr1lz5ZVX6r777lNqaqqSk5M9PrUB4D9CrG4AAHuqra3VoUOH1NDQoK+//lpvvfWWli1bpuuuu0633367du3apbq6OmVlZen6669XXl6ennnmmWaP079/f91000166KGHNGXKFMXFxbn3JSQk6LHHHtMDDzygPn366LbbblNoaKhee+01LVmyRA888IAuv/zyTrc9MjJSDz74oBYuXKjGxkaNHz9eFRUVysvLk9Pp1KxZs5SSkqJVq1bp7bffVlJSkv785z9r69atSkpKOqdxA+ADVp+0A8B+Zs2a5Z4CHRISYmJiYszkyZPN888/bxoaGtzH/eY3vzHnnXeeCQsLM1OnTjWrVq0yksyxY8c8Hq9pSvfLL7/cYr3XXnvNXHXVVSYiIsL06dPHjBkzxjz//PPNjmvtBGBjjJFksrOz3T83Njaap556ygwbNsyEhoaamJgYM3XqVJOTk2OMMebkyZPmjjvuMC6Xy/Tr18/ce++9ZtGiRWb06NEe49DaidAAuo/DGGMsTVMAgt6f//xnLVy4UKWlpZxMC6DT+JoJgGVqamp08OBB/epXv9Ldd99NkAHQJZwADMAyjz32mC688EINGjRIixcvtro5AGyKr5kAAICt8ckMAACwNcIMAACwNcIMAACwNcIMAACwNcIMAACwNcIMAACwNcIMAACwNcIMAACwtf8PBnCWtEJg2EcAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']\n", + "pie_pumpkins.plot.scatter('DayOfYear','Price') " + ] + }, + { + "cell_type": "markdown", + "id": "2527b9e5", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "If we now calculate the correlation between `Price` and `DayOfYear` using `corr` function, we will get something like `-0.27` - which means that training a predictive model makes sense.\n", + "\n", + ":::{note}\n", + "Before training a linear regression model, it is important to make sure that our data is clean. Linear regression does not work well with missing values, thus it makes sense to get rid of all empty cells:\n", + ":::" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "242febdf", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Int64Index: 144 entries, 70 to 1630\n", + "Data columns (total 8 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Month 144 non-null int64 \n", + " 1 DayOfYear 144 non-null int64 \n", + " 2 Variety 144 non-null object \n", + " 3 City 144 non-null object \n", + " 4 Package 144 non-null object \n", + " 5 Low Price 144 non-null float64\n", + " 6 High Price 144 non-null float64\n", + " 7 Price 144 non-null float64\n", + "dtypes: float64(3), int64(2), object(3)\n", + "memory usage: 10.1+ KB\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/var/folders/h0/kqxjp1r14yggzhpqx_gpx6580000gn/T/ipykernel_58993/3144308612.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " pie_pumpkins.dropna(inplace=True)\n" + ] + } + ], + "source": [ + "pie_pumpkins.dropna(inplace=True)\n", + "pie_pumpkins.info()" + ] + }, + { + "cell_type": "markdown", + "id": "92709a1f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Another approach would be to fill those empty values with mean values from the corresponding column.\n", + "\n", + "## Simple Linear Regression\n", + "\n", + "To train our Linear Regression model, we will use the **Scikit-learn** library." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "c3d17ae6", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.model_selection import train_test_split" + ] + }, + { + "cell_type": "markdown", + "id": "02c3a570", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "We start by separating input values (features) and the expected output (label) into separate NumPy arrays:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "8a96563a", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)\n", + "y = pie_pumpkins['Price']" + ] + }, + { + "cell_type": "markdown", + "id": "6bfab9bb", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + ":::{note}\n", + "Note that we had to perform `reshape` on the input data in order for the Linear Regression package to understand it correctly. Linear Regression expects a 2D-array as an input, where each row of the array corresponds to a vector of input features. In our case, since we have only one input - we need an array with shape N×1, where N is the dataset size.\n", + ":::\n", + "\n", + "Then, we need to split the data into train and test datasets, so that we can validate our model after training:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "63a5c90e", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)" + ] + }, + { + "cell_type": "markdown", + "id": "975937b9", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Finally, training the actual Linear Regression model takes only two lines of code. We define the `LinearRegression` object, and fit it to our data using the `fit` method:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "cc303abf", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
LinearRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "LinearRegression()" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lin_reg = LinearRegression()\n", + "lin_reg.fit(X_train,y_train)" + ] + }, + { + "cell_type": "markdown", + "id": "4c93426e", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "The `LinearRegression` object after `fit`-ting contains all the coefficients of the regression, which can be accessed using `.coef_` property. In our case, there is just one coefficient, which should be around `-0.017`. It means that prices seem to drop a bit with time, but not too much, around 2 cents per day. We can also access the intersection point of the regression with the Y-axis using `lin_reg`.intercept_` - it will be around `21` in our case, indicating the price at the beginning of the year.\n", + "\n", + "To see how accurate our model is, we can predict prices on a test dataset, and then measure how close our predictions are to the expected values. This can be done using mean square error (MSE) metrics, which is the mean of all squared differences between expected and predicted values." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "cd436fa3", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean error: 2.77 (17.2%)\n" + ] + } + ], + "source": [ + "pred = lin_reg.predict(X_test)\n", + "\n", + "mse = np.sqrt(mean_squared_error(y_test,pred))\n", + "print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')" + ] + }, + { + "cell_type": "markdown", + "id": "43014d87", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Our error seems to be around 2 points, which is ~17%. Not too good. Another indicator of model quality is the **coefficient of determination**, which can be obtained like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "2803d5e1", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model determination: 0.04460606335028361\n" + ] + } + ], + "source": [ + "score = lin_reg.score(X_train,y_train)\n", + "print('Model determination: ', score)" + ] + }, + { + "cell_type": "markdown", + "id": "d64ea140", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "If the value is 0, it means that the model does not take input data into account, and acts as the *worst linear predictor*, which is simply a mean value of the result. The value of 1 means that we can perfectly predict all expected outputs. In our case, the coefficient is around 0.06, which is quite low.\n", + "\n", + "We can also plot the test data together with the regression line to better see how regression works in our case:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "337d38c5", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(X_test,y_test)\n", + "plt.plot(X_test,pred)" + ] + }, + { + "cell_type": "markdown", + "id": "c2831e2f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "## Polynomial Regression\n", + "\n", + "Another type of Linear Regression is Polynomial Regression. While sometimes there's a linear relationship between variables - the bigger the pumpkin in volume, the higher the price - sometimes these relationships can't be plotted as a plane or straight line.\n", + "\n", + ":::{seealso}\n", + "Here are [some more examples](https://online.stat.psu.edu/stat501/lesson/9/9.8) of data that could use Polynomial Regression\n", + ":::\n", + "\n", + "Take another look at the relationship between Date and Price. Does this scatterplot seem like it should necessarily be analyzed by a straight line? Can't prices fluctuate? In this case, you can try polynomial regression.\n", + "\n", + ":::{note}\n", + "Polynomials are mathematical expressions that might consist of one or more variables and coefficients.\n", + ":::\n", + "\n", + "Polynomial regression creates a curved line to better fit nonlinear data. In our case, if we include a squared `DayOfYear` variable in input data, we should be able to fit our data with a parabolic curve, which will have a minimum at a certain point within the year.\n", + "\n", + "Scikit-learn includes a helpful [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) to combine different steps of data processing together. A **pipeline** is a chain of **estimators**. In our case, we will create a pipeline that first adds polynomial features to our model, and then trains the regression:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "bf0c99b8", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
Pipeline(steps=[('polynomialfeatures', PolynomialFeatures()),\n",
+       "                ('linearregression', LinearRegression())])
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "Pipeline(steps=[('polynomialfeatures', PolynomialFeatures()),\n", + " ('linearregression', LinearRegression())])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.preprocessing import PolynomialFeatures\n", + "from sklearn.pipeline import make_pipeline\n", + "\n", + "pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())\n", + "\n", + "pipeline.fit(X_train,y_train)" + ] + }, + { + "cell_type": "markdown", + "id": "5181be18", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Using `PolynomialFeatures(2)` means that we will include all second-degree polynomials from the input data. In our case, it will just mean $DayOfYear^2$, but given two input variables X and Y, this will add $X^2$, XY and $Y^2$. We may also use higher-degree polynomials if we want.\n", + "\n", + "Pipelines can be used in the same manner as the original `LinearRegression` object, i.e. we can `fit` the pipeline, and then use `predict` to get the prediction results. Here is the graph showing test data, and the approximation curve:\n", + "\n", + ":::{figure} ../../../images/ml-regression/poly-results.png\n", + "---\n", + "name: 'Polynomial regression'\n", + "width: 70%\n", + "---\n", + "Polynomial regression{cite}`Polynomial_regression`\n", + ":::\n", + "\n", + "Using Polynomial Regression, we can get slightly lower MSE and higher determination, but not significantly. We need to take into account other features!\n", + "\n", + ":::{seealso}\n", + "You can see that the minimal pumpkin prices are observed somewhere around Halloween. How can you explain this? \n", + ":::\n", + "\n", + "๐ŸŽƒ Congratulations, you just created a model that can help predict the price of pie pumpkins. You can probably repeat the same procedure for all pumpkin types, but that would be tedious. Let's learn now how to take pumpkin variety into account in our model!\n", + "\n", + "## Categorical Features\n", + "\n", + "In the ideal world, we want to be able to predict prices for different pumpkin varieties using the same model. However, the `Variety` column is somewhat different from columns like `Month`, because it contains non-numeric values. Such columns are called **categorical**.\n", + "\n", + "Here you can see how the average price depends on variety:\n", + "\n", + ":::{figure} ../../../images/ml-regression/price-by-variety.png\n", + "---\n", + "name: 'Average price by variety'\n", + "width: 70%\n", + "---\n", + "Average price by variety{cite}`Average_price_by_variety`\n", + ":::\n", + "\n", + "To take variety into account, we first need to convert it to numeric form or **encode**** it. There are several ways we can do it:\n", + "\n", + "* Simple **numeric encoding** will build a table of different varieties, and then replace the variety name by an index in that table. This is not the best idea for linear regression, because linear regression takes the actual numeric value of the index, and adds it to the result, multiplying by some coefficient. In our case, the relationship between the index number and the price is clearly non-linear, even if we make sure that indices are ordered in some specific way.\n", + "* **One-hot encoding** will replace the `Variety` column by 4 different columns, one for each variety. Each column will contain `1` if the corresponding row is of a given variety and `0`` otherwise. This means that there will be four coefficients in linear regression, one for each pumpkin variety, responsible for the \"starting price\" (or rather \"additional price\") for that particular variety.\n", + "\n", + "The code below shows how we can one-hot encode a variety:" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "246bfdd0", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FAIRYTALEMINIATUREMIXED HEIRLOOM VARIETIESPIE TYPE
700001
710001
720001
730001
740001
...............
17380100
17390100
17400100
17410100
17420100
\n", + "

415 rows ร— 4 columns

\n", + "
" + ], + "text/plain": [ + " FAIRYTALE MINIATURE MIXED HEIRLOOM VARIETIES PIE TYPE\n", + "70 0 0 0 1\n", + "71 0 0 0 1\n", + "72 0 0 0 1\n", + "73 0 0 0 1\n", + "74 0 0 0 1\n", + "... ... ... ... ...\n", + "1738 0 1 0 0\n", + "1739 0 1 0 0\n", + "1740 0 1 0 0\n", + "1741 0 1 0 0\n", + "1742 0 1 0 0\n", + "\n", + "[415 rows x 4 columns]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.get_dummies(new_pumpkins['Variety'])" + ] + }, + { + "cell_type": "markdown", + "id": "968fa4ea", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "To train linear regression using one-hot encoded variety as input, we just need to initialize `X` and `y` data correctly:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "f0bc3720", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "X = pd.get_dummies(new_pumpkins['Variety'])\n", + "y = new_pumpkins['Price']" + ] + }, + { + "cell_type": "markdown", + "id": "cc63ccc2", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "The rest of the code is the same as what we used above to train Linear Regression. If you try it, you will see that the mean squared error is about the same, but we get the much higher coefficient of determination (~77%). To get even more accurate predictions, we can take more categorical features into account, as well as numeric features, such as `Month` or `DayOfYear`. To get one large array of features, we can use `join`:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "6fd52a7f", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "X = pd.get_dummies(new_pumpkins['Variety']) \\\n", + " .join(new_pumpkins['Month']) \\\n", + " .join(pd.get_dummies(new_pumpkins['City'])) \\\n", + " .join(pd.get_dummies(new_pumpkins['Package']))\n", + "y = new_pumpkins['Price']" + ] + }, + { + "cell_type": "markdown", + "id": "e113e574", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "Here we also take into account `City` and `Package` type, which gives us MSE 2.84 (10%), and determination 0.94!\n", + "\n", + "## Putting it all together\n", + "\n", + "To make the best model, we can use combined (one-hot encoded categorical + numeric) data from the above example together with Polynomial Regression. Here is the complete code for your convenience:" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "fffe46b9", + "metadata": { + "attributes": { + "classes": [ + "code-cell" + ], + "id": "" + }, + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean error: 2.29 (8.47%)\n", + "Model determination: 0.9647780491582084\n" + ] + } + ], + "source": [ + "# set up training data\n", + "X = pd.get_dummies(new_pumpkins['Variety']) \\\n", + " .join(new_pumpkins['Month']) \\\n", + " .join(pd.get_dummies(new_pumpkins['City'])) \\\n", + " .join(pd.get_dummies(new_pumpkins['Package']))\n", + "y = new_pumpkins['Price']\n", + "\n", + "# make train-test split\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n", + "\n", + "# setup and train the pipeline\n", + "pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())\n", + "pipeline.fit(X_train,y_train)\n", + "\n", + "# predict results for test data\n", + "pred = pipeline.predict(X_test)\n", + "\n", + "# calculate MSE and determination\n", + "mse = np.sqrt(mean_squared_error(y_test,pred))\n", + "print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')\n", + "\n", + "score = pipeline.score(X_train,y_train)\n", + "print('Model determination: ', score)" + ] + }, + { + "cell_type": "markdown", + "id": "28aa766b", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "This should give us the best determination coefficient of almost 97%, and MSE=2.23 (~8% prediction error).\n", + "\n", + "| Model | MSE | Determination |\n", + "|-------|-----|---------------|\n", + "| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |\n", + "| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |\n", + "| `Variety` Linear | 5.24 (19.7%) | 0.77 |\n", + "| All features Linear | 2.84 (10.5%) | 0.94 |\n", + "| All features Polynomial | 2.23 (8.25%) | 0.97 |\n", + "\n", + "๐Ÿ† Well done! You created four Regression models in one section and improved the model quality to 97%. In the final section on Regression, you will learn about Logistic Regression to determine categories.\n", + "\n", + "## Self study\n", + "\n", + "In this section, we learned about Linear Regression. There are other important types of Regression. Read about Stepwise, Ridge, Lasso and Elasticnet techniques. A good course to study to learn more is the [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)\n", + "\n", + "## Your turn! ๐Ÿš€\n", + "\n", + "Test several different variables in this notebook to see how correlation corresponds to model accuracy.\n", + "\n", + "Assignment - [Create a regression model](../../assignments/ml-fundamentals/create-a-regression-model.md)\n", + "\n", + "## Acknowledgments\n", + "\n", + "Thanks to Microsoft for creating the open-source course [ML-For-Beginners](https://github.com/microsoft/ML-For-Beginners). It inspires the majority of the content in this chapter.\n", + "\n", + "---\n", + "\n", + ":::{bibliography}\n", + ":filter: docname in docnames\n", + ":::" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/open-machine-learning-jupyter-book/ml-fundamentals/regression/linear-and-polynomial-regression.md b/open-machine-learning-jupyter-book/ml-fundamentals/regression/linear-and-polynomial-regression.md deleted file mode 100644 index 2443833043..0000000000 --- a/open-machine-learning-jupyter-book/ml-fundamentals/regression/linear-and-polynomial-regression.md +++ /dev/null @@ -1,444 +0,0 @@ ---- -jupytext: - cell_metadata_filter: -all - formats: md:myst - text_representation: - extension: .md - format_name: myst - format_version: 0.13 - jupytext_version: 1.11.5 -kernelspec: - display_name: Python 3 - language: python - name: python3 ---- - -# Linear and polynomial regression - -```{figure} ../../../images/ml-regression/linear-polynomial.png ---- -name: 'Linear vs polynomial regression infographic' -width: 100% ---- -Infographic by [Dasani Madipalli](https://twitter.com/dasani_decoded) -``` - -## Build a regression model using Scikit-learn: regression four ways - -

- -A demo of linear-regression. [source] -

- -### Introduction - -So far you have explored what regression is with sample data gathered from the pumpkin pricing dataset that we will use throughout this lesson. You have also visualized it using Matplotlib. - -Now you are ready to dive deeper into regression for Machine Learning. While visualization allows you to make sense of data, the real power of Machine Learning comes from _training models_. Models are trained on historic data to automatically capture data dependencies, and they allow you to predict outcomes for new data, which the model has not seem before. - -In this lesson, you will learn more about two types of regression: _basic linear regression_ and _polynomial regression_, along with some of the math underlying these techniques. Those models will allow us to predict pumpkin prices depending on different input data. - -```{note} -Throughout this curriculum, we assume minimal knowledge of math, and seek to make it accessible for students coming from other fields, so watch for notes, callouts, diagrams, and other learning tools to aid in comprehension. -``` - -### Prerequisite - -You should be familiar by now with the structure of the pumpkin data that we are examining. You can find it preloaded and pre-cleaned in this section's [linear and polynomial regression.ipynb](../../assignments/ml-fundamentals/linear-and-polynomial-regression.ipynb) file. In the file, the pumpkin price is displayed per bushel in a new data frame. Make sure you can run these notebooks in kernels in Visual Studio Code. - -### Preparation - -As a reminder, you are loading this data so as to ask questions of it. - -- When is the best time to buy pumpkins? -- What price can I expect of a case of miniature pumpkins? -- Should I buy them in half-bushel baskets or by the 1 1/9 bushel box? -Let's keep digging into this data. - -In the previous lesson, you created a Pandas data frame and populated it with part of the original dataset, standardizing the pricing by the bushel. By doing that, however, you were only able to gather about 400 datapoints and only for the fall months. - -Take a look at the data that we preloaded in this lesson's accompanying notebook. The data is preloaded and an initial scatterplot is charted to show month data. Maybe we can get a little more detail about the nature of the data by cleaning it more. - -## A linear regression line - -As you learned in section 1, the goal of a linear regression exercise is to be able to plot a line to: - -- **Show variable relationships**. Show the relationship between variables -- **Make predictions**. Make accurate predictions on where a new datapoint would fall in relationship to that line. - -It is typical of **Least-Squares Regression** to draw this type of line. The term 'least-squares' means that all the datapoints surrounding the regression line are squared and then added up. Ideally, that final sum is as small as possible, because we want a low number of errors, or `least-squares`. - -We do so since we want to model a line that has the least cumulative distance from all of our data points. We also square the terms before adding them since we are concerned with its magnitude rather than its direction. - -```{seealso} -**Show me the math** - -This line, called the _line of best fit_ can be expressed by [an equation](https://en.wikipedia.org/wiki/Simple_linear_regression): - -> ``` -> Y = a + bX -> ``` - -`X` is the 'explanatory variable'. `Y` is the 'dependent variable'. The slope of the line is `b` and `a` is the y-intercept, which refers to the value of `Y` when `X = 0`. - ->```{figure} ../../../images/ml-regression/slope.png ->--- ->name: 'calculate the slope' ->width: 60% ->--- ->Infographic by [Jen Looper](https://twitter.com/jenlooper) ->``` - -First, calculate the slope `b`. - -In other words, and referring to our pumpkin data's original question: "predict the price of a pumpkin per bushel by month", `X` would refer to the price and `Y` would refer to the month of sale. - ->```{figure} ../../../images/ml-regression/calculation.png ->--- ->name: 'complete the equation' ->width: 60% ->--- ->Infographic by [Jen Looper](https://twitter.com/jenlooper) ->``` - -Calculate the value of Y. If you're paying around $4, it must be April! - -The math that calculates the line must demonstrate the slope of the line, which is also dependent on the intercept, or where `Y` is situated when `X = 0`. - -You can observe the method of calculation for these values on the [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) web site. Also visit [this Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) to watch how the numbers' values impact the line. -``` - -## Correlation - -One more term to understand is the **Correlation Coefficient** between given X and Y variables. Using a scatterplot, you can quickly visualize this coefficient. A plot with datapoints scattered in a neat line have high correlation, but a plot with datapoints scattered everywhere between X and Y have a low correlation. - -A good linear regression model will be one that has a high (nearer to 1 than 0) Correlation Coefficient using the Least-Squares Regression method with a line of regression. - -```{seealso} -Run the notebook accompanying this lesson and look at the Month to Price scatterplot. Does the data associating Month to Price for pumpkin sales seem to have high or low correlation, according to your visual interpretation of the scatterplot? Does that change if you use more fine-grained measure instead of `Month`, eg. *day of the year* (i.e. number of days since the beginning of the year)? -``` - -In the code below, we will assume that we have cleaned up the data, and obtained a data frame called `new_pumpkins`, similar to the following: - -```{code-cell} -:tags: [output_scroll] -import pandas as pd -import matplotlib.pyplot as plt -import numpy as np -from datetime import datetime - -pumpkins = pd.read_csv('../../assets/data/us-pumpkins.csv') - -pumpkins.head() -``` - -```{code-cell} -pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)] - -new_columns = ['Package', 'Variety', 'City Name', 'Month', 'Low Price', 'High Price', 'Date'] -pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1) - -price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2 - -month = pd.DatetimeIndex(pumpkins['Date']).month -day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days) - -new_pumpkins = pd.DataFrame( - {'Month': month, - 'DayOfYear' : day_of_year, - 'Variety': pumpkins['Variety'], - 'City': pumpkins['City Name'], - 'Package': pumpkins['Package'], - 'Low Price': pumpkins['Low Price'], - 'High Price': pumpkins['High Price'], - 'Price': price}) - -new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/1.1 -new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price*2 - -new_pumpkins.head() -``` - -A basic scatterplot reminds us that we only have month data from August through December. We probably need more data to be able to draw conclusions in a linear fashion. - -```{code-cell} -import matplotlib.pyplot as plt -plt.scatter('Month','Price',data=new_pumpkins) -``` - -```{note} -We have performed the same cleaning steps as in the previous section, and have calculated `DayOfYear` column using the following expression: -``` - -```{code-cell} -day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days) -``` - -Now that you have an understanding of the math behind linear regression, let's create a Regression model to see if we can predict which package of pumpkins will have the best pumpkin prices. Someone buying pumpkins for a holiday pumpkin patch might want this information to be able to optimize their purchases of pumpkin packages for the patch. - -## Looking for Correlation - -From the previous section you have probably seen that the average price for different months looks like this: - -```{figure} ../../../images/ml-regression/barchart.png ---- -name: 'Average price by month' -width: 70% ---- -Average price by month{cite}`Average_price_by_month` -``` - -This suggests that there should be some correlation, and we can try training linear regression model to predict the relationship between `Month` and `Price`, or between `DayOfYear` and `Price`. Here is the scatter plot that shows the latter relationship: - -```{figure} ../../../images/ml-regression/scatter-dayofyear.png ---- -name: 'Scatter plot of Price vs. Day of Year' -width: 70% ---- -Scatter plot of Price vs. Day of Year{cite}`Scatter_plot_of_Price_vs._Day_of_Year` -``` - -It looks like there are different clusters of prices corresponding to different pumpkin varieties. To confirm this hypothesis, let's plot each pumpkin category using a different color. By passing an `ax` parameter to the `scatter` plotting function we can plot all points on the same graph: - -```{code-cell} -ax=None -colors = ['red','blue','green','yellow'] -for i,var in enumerate(new_pumpkins['Variety'].unique()): - df = new_pumpkins[new_pumpkins['Variety']==var] - ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var) -``` - -Our investigation suggests that variety has more effect on the overall price than the actual selling date. So let us focus for the moment only on one pumpkin variety, and see what effect the date has on the price: - -```{code-cell} -pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE'] -pie_pumpkins.plot.scatter('DayOfYear','Price') -``` - -If we now calculate the correlation between `Price` and `DayOfYear` using `corr` function, we will get something like `-0.27` - which means that training a predictive model makes sense. - -```{note} -Before training a linear regression model, it is important to make sure that our data is clean. Linear regression does not work well with missing values, thus it makes sense to get rid of all empty cells: -``` - -```{code-cell} -pie_pumpkins.dropna(inplace=True) -pie_pumpkins.info() -``` - -Another approach would be to fill those empty values with mean values from the corresponding column. - -## Simple Linear Regression - -To train our Linear Regression model, we will use the **Scikit-learn** library. - -```{code-cell} -from sklearn.linear_model import LinearRegression -from sklearn.metrics import mean_squared_error -from sklearn.model_selection import train_test_split -``` - -We start by separating input values (features) and the expected output (label) into separate numpy arrays: - -```{code-cell} -X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1) -y = pie_pumpkins['Price'] -``` - -```{note} -Note that we had to perform `reshape` on the input data in order for the Linear Regression package to understand it correctly. Linear Regression expects a 2D-array as an input, where each row of the array corresponds to a vector of input features. In our case, since we have only one input - we need an array with shape N×1, where N is the dataset size. -``` - -Then, we need to split the data into train and test datasets, so that we can validate our model after training: - -```{code-cell} -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) -``` - -Finally, training the actual Linear Regression model takes only two lines of code. We define the `LinearRegression` object, and fit it to our data using the `fit` method: - -```{code-cell} -lin_reg = LinearRegression() -lin_reg.fit(X_train,y_train) -``` - -The `LinearRegression` object after `fit`-ting contains all the coefficients of the regression, which can be accessed using `.coef_` property. In our case, there is just one coefficient, which should be around `-0.017`. It means that prices seem to drop a bit with time, but not too much, around 2 cents per day. We can also access the intersection point of the regression with Y-axis using `lin_reg.intercept_` - it will be around `21` in our case, indicating the price at the beginning of the year. - -To see how accurate our model is, we can predict prices on a test dataset, and then measure how close our predictions are to the expected values. This can be done using mean square error (MSE) metrics, which is the mean of all squared differences between expected and predicted value. - -```{code-cell} -pred = lin_reg.predict(X_test) - -mse = np.sqrt(mean_squared_error(y_test,pred)) -print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)') -``` - -Our error seems to be around 2 points, which is ~17%. Not too good. Another indicator of model quality is the **coefficient of determination**, which can be obtained like this: - -```{code-cell} -score = lin_reg.score(X_train,y_train) -print('Model determination: ', score) -``` - -If the value is 0, it means that the model does not take input data into account, and acts as the *worst linear predictor*, which is simply a mean value of the result. The value of 1 means that we can perfectly predict all expected outputs. In our case, the coefficient is around 0.06, which is quite low. - -We can also plot the test data together with the regression line to better see how regression works in our case: - -```{code-cell} -plt.scatter(X_test,y_test) -plt.plot(X_test,pred) -``` - -## Polynomial Regression - -Another type of Linear Regression is Polynomial Regression. While sometimes there's a linear relationship between variables - the bigger the pumpkin in volume, the higher the price - sometimes these relationships can't be plotted as a plane or straight line. - -```{seealso} -Here are [some more examples](https://online.stat.psu.edu/stat501/lesson/9/9.8) of data that could use Polynomial Regression -``` - -Take another look at the relationship between Date and Price. Does this scatterplot seem like it should necessarily be analyzed by a straight line? Can't prices fluctuate? In this case, you can try polynomial regression. - -```{note} -Polynomials are mathematical expressions that might consist of one or more variables and coefficients. -``` - -Polynomial regression creates a curved line to better fit nonlinear data. In our case, if we include a squared `DayOfYear` variable into input data, we should be able to fit our data with a parabolic curve, which will have a minimum at a certain point within the year. - -Scikit-learn includes a helpful [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) to combine different steps of data processing together. A **pipeline** is a chain of **estimators**. In our case, we will create a pipeline that first adds polynomial features to our model, and then trains the regression: - -```{code-cell} -from sklearn.preprocessing import PolynomialFeatures -from sklearn.pipeline import make_pipeline - -pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression()) - -pipeline.fit(X_train,y_train) -``` - -Using `PolynomialFeatures(2)` means that we will include all second-degree polynomials from the input data. In our case it will just mean $DayOfYear^2$, but given two input variables X and Y, this will add $X^2$, XY and $Y^2$. We may also use higher degree polynomials if we want. - -Pipelines can be used in the same manner as the original `LinearRegression` object, i.e. we can `fit` the pipeline, and then use `predict` to get the prediction results. Here is the graph showing test data, and the approximation curve: - -```{figure} ../../../images/ml-regression/poly-results.png ---- -name: 'Polynomial regression' -width: 70% ---- -Polynomial regression{cite}`Polynomial_regression` -``` - -Using Polynomial Regression, we can get slightly lower MSE and higher determination, but not significantly. We need to take into account other features! - -```{seealso} -You can see that the minimal pumpkin prices are observed somewhere around Halloween. How can you explain this? -``` - -๐ŸŽƒ Congratulations, you just created a model that can help predict the price of pie pumpkins. You can probably repeat the same procedure for all pumpkin types, but that would be tedious. Let's learn now how to take pumpkin variety into account in our model! - -## Categorical Features - -In the ideal world, we want to be able to predict prices for different pumpkin varieties using the same model. However, the `Variety` column is somewhat different from columns like `Month`, because it contains non-numeric values. Such columns are called **categorical**. - -Here you can see how average price depends on variety: - -```{figure} ../../../images/ml-regression/price-by-variety.png ---- -name: 'Average price by variety' -width: 70% ---- -Average price by variety{cite}`Average_price_by_variety` -``` - -To take variety into account, we first need to convert it to numeric form, or **encode** it. There are several way we can do it: - -* Simple **numeric encoding** will build a table of different varieties, and then replace the variety name by an index in that table. This is not the best idea for linear regression, because linear regression takes the actual numeric value of the index, and adds it to the result, multiplying by some coefficient. In our case, the relationship between the index number and the price is clearly non-linear, even if we make sure that indices are ordered in some specific way. -* **One-hot encoding** will replace the `Variety` column by 4 different columns, one for each variety. Each column will contain `1` if the corresponding row is of a given variety, and `0` otherwise. This means that there will be four coefficients in linear regression, one for each pumpkin variety, responsible for "starting price" (or rather "additional price") for that particular variety. - -The code below shows how we can one-hot encode a variety: - -```{code-cell} -pd.get_dummies(new_pumpkins['Variety']) -``` - -To train linear regression using one-hot encoded variety as input, we just need to initialize `X` and `y` data correctly: - -```{code-cell} -X = pd.get_dummies(new_pumpkins['Variety']) -y = new_pumpkins['Price'] -``` - -The rest of the code is the same as what we used above to train Linear Regression. If you try it, you will see that the mean squared error is about the same, but we get much higher coefficient of determination (~77%). To get even more accurate predictions, we can take more categorical features into account, as well as numeric features, such as `Month` or `DayOfYear`. To get one large array of features, we can use `join`: - -```{code-cell} -X = pd.get_dummies(new_pumpkins['Variety']) \ - .join(new_pumpkins['Month']) \ - .join(pd.get_dummies(new_pumpkins['City'])) \ - .join(pd.get_dummies(new_pumpkins['Package'])) -y = new_pumpkins['Price'] -``` - -Here we also take into account `City` and `Package` type, which gives us MSE 2.84 (10%), and determination 0.94! - -## Putting it all together - -To make the best model, we can use combined (one-hot encoded categorical + numeric) data from the above example together with Polynomial Regression. Here is the complete code for your convenience: - -```{code-cell} -# set up training data -X = pd.get_dummies(new_pumpkins['Variety']) \ - .join(new_pumpkins['Month']) \ - .join(pd.get_dummies(new_pumpkins['City'])) \ - .join(pd.get_dummies(new_pumpkins['Package'])) -y = new_pumpkins['Price'] - -# make train-test split -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) - -# setup and train the pipeline -pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression()) -pipeline.fit(X_train,y_train) - -# predict results for test data -pred = pipeline.predict(X_test) - -# calculate MSE and determination -mse = np.sqrt(mean_squared_error(y_test,pred)) -print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)') - -score = pipeline.score(X_train,y_train) -print('Model determination: ', score) -``` - -This should give us the best determination coefficient of almost 97%, and MSE=2.23 (~8% prediction error). - -| Model | MSE | Determination | -|-------|-----|---------------| -| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 | -| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 | -| `Variety` Linear | 5.24 (19.7%) | 0.77 | -| All features Linear | 2.84 (10.5%) | 0.94 | -| All features Polynomial | 2.23 (8.25%) | 0.97 | - -๐Ÿ† Well done! You created four Regression models in one section and improved the model quality to 97%. In the final section on Regression, you will learn about Logistic Regression to determine categories. - -## Self study - -In this section, we learned about Linear Regression. There are other important types of Regression. Read about Stepwise, Ridge, Lasso and Elasticnet techniques. A good course to study to learn more is the [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) - -## Your turn! ๐Ÿš€ - -Test several different variables in this notebook to see how correlation corresponds to model accuracy. - -Assignment - [Create a regression model](../../assignments/ml-fundamentals/create-a-regression-model.md) - -## Acknowledgments - -Thanks to Microsoft for creating the open-source course [ML-For-Beginners](https://github.com/microsoft/ML-For-Beginners). It inspires the majority of the content in this chapter. - ---- - -```{bibliography} -:filter: docname in docnames -``` From 0ceb8e88cd730ee61565ef9332cb6502a780a089 Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Sat, 2 Sep 2023 13:15:58 +0800 Subject: [PATCH 08/15] Update README.md --- README.md | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 88982c9244..5eee16c936 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,27 @@ logo -# Learn AI together, for free. -![Python](https://img.shields.io/static/v1?style=for-the-badge&message=3.9&color=ffdd54&logo=python&logoColor=ffdd54&label=Python) ![Jupyter](https://img.shields.io/static/v1?style=for-the-badge&message=6.5.2&color=red&logo=Jupyter&logoColor=red&label=Notebook) ![JupyterBook](https://img.shields.io/static/v1?style=for-the-badge&message=0.13.1&color=F37626&logo=data:image/png;base64,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&logoColor=orange&label=Jupyterbook) [![PR Welcome](https://img.shields.io/badge/PR-welcome-brightgreen.svg?style=for-the-badge)](http://makeapullrequest.com) ![](https://img.shields.io/github/license/ocademy-ai/machine-learning?style=for-the-badge&label=license) ![](https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg?style=for-the-badge&label=license) [![codespaces](https://img.shields.io/static/v1?style=for-the-badge&message=Codespaces&color=181717&logo=GitHub&logoColor=FFFFFF&label=Launch)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=505683854&machine=basicLinux32gb&location=EastUs&skip_quickstart=true&geo=UsEast) [![binder](https://img.shields.io/badge/launch-binder-579aca.svg?style=for-the-badge&logo=data:image/png;base64,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)](https://mybinder.org/v2/gh/ocademy-ai/machine-learning/HEAD) +[![PR Welcome](https://img.shields.io/badge/PR-welcome-brightgreen.svg?style=for-the-badge)](http://makeapullrequest.com) ![](https://img.shields.io/github/license/ocademy-ai/machine-learning?style=for-the-badge&label=license) ![](https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg?style=for-the-badge&label=license) + +--- +# Learn AI together, for free. -**Ocademy** is your AI learning community dedicated to Python, Data Science, Machine Learning, Deep Learning, and MLOps. We believe open-source promotes equal opportunities for everyone to access AI. By curating, creating, and distributing educational resources and approaches freely and openly with the public, we underscore values of collaboration, transparency, and community-driven learning and teaching. +**Ocademy** is your AI learning community dedicated to Python, Data Science, Machine Learning, Deep Learning, and MLOps. We believe open-source promotes equal opportunities for everyone to access AI. By curating, creating, and distributing educational resources and approaches freely and openly with the public, we underscore the values of collaboration, transparency, and community-driven learning and teaching. ## ๐Ÿš€ Get started -### ๐Ÿ‘ Ocademy Awesome [In progress] +## ๐Ÿ‘ Ocademy Awesome [![]()](./awesome/README.md) -A well-structured list of awesome AI courses, turorials, books, tools and other learning resources. Have a glance [here](./awesome/README.md). -### Ocademy GenAI +A curated list of awesome AI courses, tutorials, books, tools and other learning resources. -Resources about Generative AI, started with a list of [prompts](./generative-ai/prompts/README.md) for AI Teaching and Learning. +## ๐Ÿค– Ocademy GenAI [![]()](./generative-ai/prompts/README.md) -### ๐Ÿ““ Ocademy Open Book [In progress] +Resources about Generative AI, started with a list of prompts for AI Teaching and Learning. -An [interactive and visual book](https://ocademy-ai.github.io/machine-learning/intro.html) aims to help millions of busy adults transition into AI, with below ๐Ÿงฉ features, +## ๐Ÿ““ Ocademy Open Book [![]()](https://press.ocademy.cc) -- A curated list of beginner-friendly resources for learning Python, Data Science, Machine Learning, Deep Learning and MLOps. -- Empower the learning journey with interactive Jupyter Notebooks built by [Jupyter Book](https://jupyterbook.org/) and [RISE](https://github.com/damianavila/RISE), with [TDD](https://en.wikipedia.org/wiki/Test-driven_development) style assignments. -- Transforming Machine Learning through the art of visualization by leveraging [Python Tutor](https://pythontutor.com/), [Pandas Tutor](https://pandastutor.com/), Pandas, Matplotlib, [Tensorflow.js](https://www.tensorflow.org/js) and various other visualization libraries. +An interactive and visual book aims to help millions of busy adults transition into AI. ## ๐Ÿ‘ฉโ€๐Ÿ’ป How to contribute From ebcbdad71dfe2ebe50831f82ef5ee4d87ab5ed8e Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Sat, 2 Sep 2023 13:16:01 +0800 Subject: [PATCH 09/15] Create README.md --- open-machine-learning-jupyter-book/README.md | 39 ++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 open-machine-learning-jupyter-book/README.md diff --git a/open-machine-learning-jupyter-book/README.md b/open-machine-learning-jupyter-book/README.md new file mode 100644 index 0000000000..cd7c25bf27 --- /dev/null +++ b/open-machine-learning-jupyter-book/README.md @@ -0,0 +1,39 @@ + +# An interactive and visual Machine Learning book - with code and assignment + +![Python](https://img.shields.io/static/v1?style=for-the-badge&message=3.9&color=ffdd54&logo=python&logoColor=ffdd54&label=Python) ![Jupyter](https://img.shields.io/static/v1?style=for-the-badge&message=6.5.2&color=red&logo=Jupyter&logoColor=red&label=Notebook) ![JupyterBook](https://img.shields.io/static/v1?style=for-the-badge&message=0.13.1&color=F37626&logo=data:image/png;base64,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&logoColor=orange&label=Jupyterbook) [![codespaces](https://img.shields.io/static/v1?style=for-the-badge&message=Codespaces&color=181717&logo=GitHub&logoColor=FFFFFF&label=Launch)](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=505683854&machine=basicLinux32gb&location=EastUs&skip_quickstart=true&geo=UsEast) [![binder](https://img.shields.io/badge/launch-binder-579aca.svg?style=for-the-badge&logo=data:image/png;base64,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)](https://mybinder.org/v2/gh/ocademy-ai/machine-learning/HEAD) + +--- + +The book is completely free and self-paced, which covers Python, Data Science, Machine Learning, Deep Learning and MLOps. We have TDD-style challenges to help you expand your skills. + +> **Note** +> +> All the Jupyter Notebook files can run independently on any Jupyter environment. Please use **Jupyter Lab** for the best experience. + +## ๐Ÿงฉ Features + +- A curated list of beginner-friendly [tutorials](https://press.ocademy.cc) for learning Python, Data Science, Machine Learning, Deep Learning and MLOps. +- Empower the learning journey with interactive Jupyter Notebooks. + - The book is built with [Jupyter Book](https://jupyterbook.org/) from computational content written as notebook. + - The slide is built with [RISE](https://github.com/damianavila/RISE) which instantly turns notebook into a live [reveal.js](https://revealjs.com/)-based presentation. + - The assignment is in [TDD](https://en.wikipedia.org/wiki/Test-driven_development) style and self-testable as pytest compatible notebook. +- Transforming Machine Learning through the art of visualization. + - Python is visualized by [Python Tutor](https://pythontutor.com/). + - Data Science is visualized by [Pandas Tutor](https://pandastutor.com/), Pandas and various other Python visualization libraries. + - Machine Learning/Deep Learning algorithms and models are visualized by frameworks like [Tensorflow.js](https://www.tensorflow.org/js). + +# ๐Ÿ‘ฉโ€๐Ÿ’ป How to contribute + +We welcome all contributions to the community and are excited to welcome you aboard. If you have the passion for Data Science, Machine Learning, and Deep Learning, simply fork the repository and follow our [Guidelines for contributing](https://github.com/ocademy-ai/machine-learning/blob/main/CONTRIBUTING.md) to make your changes. + +If you're new to open source or aren't sure where to start, don't worry! We have a guide for beginners that can help you get started. We also have a [Code of conduct](https://github.com/ocademy-ai/machine-learning/blob/main/CODE_OF_CONDUCT.md) that we ask all contributors to follow to ensure that our community is welcoming and inclusive. + +## ๐Ÿ“„ License + +Copyright ยฉ 2022-2023 Ocademy + +The content of this repository is bound by the following licenses: + +- The code is licensed under the MIT. +- The text and multimedia are licensed under CC-BY-4.0. From f4d0aedfddf5d649ddcd2116f531b2bd1cc34b61 Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Sat, 2 Sep 2023 13:16:03 +0800 Subject: [PATCH 10/15] Update _config.yml --- open-machine-learning-jupyter-book/_config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/open-machine-learning-jupyter-book/_config.yml b/open-machine-learning-jupyter-book/_config.yml index d247652285..e54768a9dc 100644 --- a/open-machine-learning-jupyter-book/_config.yml +++ b/open-machine-learning-jupyter-book/_config.yml @@ -70,6 +70,7 @@ html: repo: "ocademy-ai/machine-learning-utterances" issue-term: "pathname" theme: "github-light" + announcement: "Learn AI together, for free! At Ocademy." launch_buttons: notebook_interface: "jupyterlab" From 07c9babefbd27483df6a3c1e1861176be0584e42 Mon Sep 17 00:00:00 2001 From: Qi Zhang <5424267+zhangqi444@users.noreply.github.com> Date: Fri, 1 Sep 2023 22:35:07 -0700 Subject: [PATCH 11/15] Update README.md --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5eee16c936..5d79217b7f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,13 @@ -logo - - -[![PR Welcome](https://img.shields.io/badge/PR-welcome-brightgreen.svg?style=for-the-badge)](http://makeapullrequest.com) ![](https://img.shields.io/github/license/ocademy-ai/machine-learning?style=for-the-badge&label=license) ![](https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg?style=for-the-badge&label=license) +

+ logo +

+

+ + + + + +

--- # Learn AI together, for free. From 409087cd6c6aeda018cf3b58c76f19f6258f9f63 Mon Sep 17 00:00:00 2001 From: xu-hong Date: Sat, 2 Sep 2023 22:03:19 +0800 Subject: [PATCH 12/15] an intro to llm app tutorial --- tutorials/llm-app/LLM.ipynb | 857 ++++++++++++++++++++++++++++++ tutorials/llm-app/LLMappstack.png | Bin 0 -> 34978 bytes 2 files changed, 857 insertions(+) create mode 100644 tutorials/llm-app/LLM.ipynb create mode 100644 tutorials/llm-app/LLMappstack.png diff --git a/tutorials/llm-app/LLM.ipynb b/tutorials/llm-app/LLM.ipynb new file mode 100644 index 0000000000..85d5786ba0 --- /dev/null +++ b/tutorials/llm-app/LLM.ipynb @@ -0,0 +1,857 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ztFUmlJaxN9K", + "outputId": "6aa6c854-5d8d-4e66-a5e2-866e9b54e835" + }, + "outputs": [], + "source": [ + "!pip install chromadb\n", + "!pip install dotenv\n", + "!pip install \"langchain[llms]\"\n", + "!pip install openai\n", + "!pip install sentence_transformers\n", + "!pip install tiktoken" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Step-by-Step Guide: Create Your First LLM App in Less Than 100 Lines of Code\n", + "\n", + "In this Ocademy tutorial, we will utilize the MIT AI news dataset to construct the knowledge base and use LLM to interact with it. \n", + "\n", + "Imagine if MIT News๐Ÿ“ฐ were to introduce an AI assistant for their readers, enabling them to quickly search and delve into various technology topics on their website, without the need to comb through numerous archived articles. This tutorial provides a glimpse into how such an assistant could be developed!\n", + "\n", + "As a high-level overview, let's break down the key parts of an LLM app's architecture:\n", + "\n", + "- Embedding models ๐Ÿงฎ convert text into numeric representations that LLMs can understand\n", + "\n", + "- Vector databases ๐Ÿง‘โ€๐Ÿ’ป store these numeric embeddings for quick lookups and responses\n", + "\n", + "- Orchestration frameworks like LangChain or LlamaIndex ๐Ÿ”ง simplify how different LLMs are queried in sequence\n", + "\n", + "- The LLMs themselves ๐Ÿง  are massive models trained on enormous datasets to understand language\n", + "\n", + "- LLMOps ๐Ÿš€ handles the infrastructure like knowledge bases, data pipelines, caching and developer tools\n", + "\n", + "- Hosting ๐Ÿ–ฅ๏ธ provides cloud infrastructure so users can actually access and interact with the LLM app\n", + "\n", + "A diagram for how everything fits together:\n", + "\n", + "\"an\n", + "\n", + "\n", + "Now let's get started.\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "QMsMK-Dl_w6g" + }, + "source": [ + "First things first. Here we use dotenv library to load our OPENAI's API key. You need to have a `.env` file containing `OPENAI_API_KEY=\"\"` in the same directory." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Ptz4TXcf4Si3", + "outputId": "d9e07e8c-66c7-42e2-8311-21d73956fbea" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from dotenv import load_dotenv,find_dotenv\n", + "load_dotenv(find_dotenv())" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "kGHTIUgo2WGQ" + }, + "source": [ + "# First, contextual data\n", + "\n", + "\n", + "\n", + "MIT publishes News about technologies since 90s. The Dataset we use contains News specially about topic \"AI\", from 1994 to 2023.\n", + "\n", + "Credit: [Kaggle MIT AI News](https://www.kaggle.com/datasets/deepanshudalal09/mit-ai-news-published-till-2023?resource=download), for educational purpose only. " + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "4L6fj1uJ1lw9", + "outputId": "3aef2e2d-fbb9-4d43-a873-cfb7016ff168" + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0Published DateAuthorSourceArticle HeaderSub_HeadingsArticle BodyUrl
00July 7, 2023Adam ZeweMIT News OfficeLearning the language of molecules to predict ...This AI system only needs a small amount of da...['Discovering new materials and drugs typicall...https://news.mit.edu/2023/learning-language-mo...
11July 6, 2023Alex OuyangAbdul Latif Jameel Clinic for Machine Learning...MIT scientists build a system that can generat...BioAutoMATED, an open-source, automated machin...['Is it possible to build machine-learning mod...https://news.mit.edu/2023/bioautomated-open-so...
22June 30, 2023Jennifer MichalowskiMcGovern Institute for Brain ResearchWhen computer vision works more like a brain, ...Training artificial neural networks with data ...['From cameras to self-driving cars, many of t...https://news.mit.edu/2023/when-computer-vision...
33June 30, 2023Mary Beth GallagherSchool of EngineeringEducating national security leaders on artific...Experts from MITโ€™s School of Engineering, Schw...['Understanding artificial intelligence and ho...https://news.mit.edu/2023/educating-national-s...
44June 30, 2023Adam ZeweMIT News OfficeResearchers teach an AI to write better chart ...A new dataset can help scientists develop auto...['Chart captions that explain complex trends a...https://news.mit.edu/2023/researchers-chart-ca...
\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "
\n", + "
\n" + ], + "text/plain": [ + " Unnamed: 0 Published Date Author \\\n", + "0 0 July 7, 2023 Adam Zewe \n", + "1 1 July 6, 2023 Alex Ouyang \n", + "2 2 June 30, 2023 Jennifer Michalowski \n", + "3 3 June 30, 2023 Mary Beth Gallagher \n", + "4 4 June 30, 2023 Adam Zewe \n", + "\n", + " Source \\\n", + "0 MIT News Office \n", + "1 Abdul Latif Jameel Clinic for Machine Learning... \n", + "2 McGovern Institute for Brain Research \n", + "3 School of Engineering \n", + "4 MIT News Office \n", + "\n", + " Article Header \\\n", + "0 Learning the language of molecules to predict ... \n", + "1 MIT scientists build a system that can generat... \n", + "2 When computer vision works more like a brain, ... \n", + "3 Educating national security leaders on artific... \n", + "4 Researchers teach an AI to write better chart ... \n", + "\n", + " Sub_Headings \\\n", + "0 This AI system only needs a small amount of da... \n", + "1 BioAutoMATED, an open-source, automated machin... \n", + "2 Training artificial neural networks with data ... \n", + "3 Experts from MITโ€™s School of Engineering, Schw... \n", + "4 A new dataset can help scientists develop auto... \n", + "\n", + " Article Body \\\n", + "0 ['Discovering new materials and drugs typicall... \n", + "1 ['Is it possible to build machine-learning mod... \n", + "2 ['From cameras to self-driving cars, many of t... \n", + "3 ['Understanding artificial intelligence and ho... \n", + "4 ['Chart captions that explain complex trends a... \n", + "\n", + " Url \n", + "0 https://news.mit.edu/2023/learning-language-mo... \n", + "1 https://news.mit.edu/2023/bioautomated-open-so... \n", + "2 https://news.mit.edu/2023/when-computer-vision... \n", + "3 https://news.mit.edu/2023/educating-national-s... \n", + "4 https://news.mit.edu/2023/researchers-chart-ca... " + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "news = pd.read_csv(\"./articles.csv\", index_col=False)\n", + "news.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "id": "VEH8dp-W5aet" + }, + "outputs": [], + "source": [ + "# basic data cleaning: remove square bracket\n", + "news['Article Body'] = news['Article Body'].str.replace(\"[\\[\\]]\", \"\", regex=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "fEmmZ4sO3VPW", + "outputId": "52477e36-9079-418d-c45e-538cef7c9707" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1018, 8)\n", + "count 1018.000000\n", + "mean 5250.654224\n", + "std 2779.689887\n", + "min 0.000000\n", + "25% 3075.500000\n", + "50% 5603.000000\n", + "75% 7210.250000\n", + "max 17331.000000\n", + "Name: Article Body, dtype: float64\n" + ] + } + ], + "source": [ + "print(news.shape)\n", + "print(news['Article Body'].str.len().describe())" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Next up, let's load the documents\n", + "\n", + "Here, we use the `DataFrameLoader` in `LangChain` to create the document, since our original data comes with `.csv` format. However, there are various loaders available for different sources, such as text files, HTML, Markdown, JSON and even PDFs. For their usage, check out the [LangChain documents](https://python.langchain.com/docs/modules/data_connection/document_loaders/)." + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "id": "s2CszqQq3wXT" + }, + "outputs": [], + "source": [ + "from langchain.document_loaders import DataFrameLoader\n", + "from langchain.vectorstores import Chroma\n", + "\n", + "DOC_NUM = 100 # here I cap the length for quick iteration\n", + "df_loader = DataFrameLoader(news.head(DOC_NUM), page_content_column=\"Article Body\")\n", + "docs = df_loader.load()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "KQqwVdFO6hOr" + }, + "source": [ + "# Now create the embedding\n", + "\n", + "What is embedding? It's simply a numerical representation of any data. The embedding process involves capturing the semantic meaning of the input (in our case, texts) and placing similar inputs close together in the embedding space, allowing for easy comparison and analysis of the information.\n", + "\n", + "The embedding model does the work of turning data into numerical representation, which takes the form of vectors.\n", + "\n", + "* ๐Ÿงฑ splitting: As the first step, we will need to divide the document into blocks to later feed to the embedding model. Here, we use LangChain's `RecursiveCharacterTextSplitter` to chunk the article text. _Why recursive you should ask?_ Well, this is due to some quirkiness in the format of our data. For simpler-formatted text, `CharacterTextSplitter` should suffice.\n", + "\n", + "* ๐ŸŽฏ chunking strategy: A good article by pinecone about this: https://www.pinecone.io/learn/chunking-strategies/ But basically the `chunk_size` and `chunk_overlap` parameters can be used to control the granularity of the text splitting. The optimal values for these parameters depend on various factors, including the size and complexity of the documents, the specific use case, and the available computing resources." + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": { + "id": "L9ueeKBu5EWI" + }, + "outputs": [], + "source": [ + "from langchain.text_splitter import RecursiveCharacterTextSplitter\n", + "\n", + "text_splitter = RecursiveCharacterTextSplitter(\n", + " separators = [\"',\\s+'\", \"\\n\\n\", \"\\n\", \" \"],\n", + " chunk_size = 1000,\n", + " chunk_overlap = 100,\n", + " length_function = len,\n", + " is_separator_regex = True,\n", + ")\n", + "texts = text_splitter.split_documents(docs)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "40a5y6P69Fz1" + }, + "source": [ + "Now, instantiate the embedding model. Here, we use an open source Hugging Face model; there are other options availabe such as OpenAI, Cohere, for which you will write functions like this:\n", + "```python\n", + "from langchain.embeddings import OpenAIEmbeddings\n", + "embeddings = OpenAIEmbeddings(model=\"text-embedding-ada-002\")\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": { + "id": "vIvg2r2L8OVQ" + }, + "outputs": [], + "source": [ + "from langchain.embeddings import HuggingFaceEmbeddings\n", + "embedding_function = HuggingFaceEmbeddings(\n", + " model_name=\"sentence-transformers/all-MiniLM-L6-v2\"\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "L605vqp2DkQ-" + }, + "source": [ + "Let's call the embedding model on the first piece of text in our documents and see what it does. As you can see, the `query_result` is a vector of numerical numbers.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uD7BBunN9Eaq", + "outputId": "50d5d8df-989e-44d5-977b-531ec5d9c87b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[-0.08029699325561523, -0.08065493404865265, 0.018059276044368744, 0.032889898866415024, 0.019862568005919456, -0.017788495868444443, -0.0479583665728569, 0.02034035325050354, -0.003369471523910761, -0.019730767235159874, -0.05397197976708412, -0.028060955926775932, -0.033454909920692444, 0.05161232501268387, -0.06324969977140427, 0.029960889369249344, -0.0068223439157009125, 0.06033194437623024, -0.0667320191860199, -0.055941399186849594, 0.012173715978860855, 0.05964687466621399, 0.0953216701745987, 0.008063014596700668, 0.011641476303339005, 0.07151490449905396, 0.03841050714254379, -0.038250427693128586, -0.03261560574173927, -0.032569803297519684, 0.07426116615533829, 0.0034182798117399216, -0.04425995796918869, -0.027609990909695625, 0.02255490981042385, 0.02317224256694317, -0.06794223189353943, 0.046671509742736816, 0.041355330497026443, -0.046351443976163864, 0.020062889903783798, -0.057135675102472305, 0.01833488792181015, 0.047480229288339615, 0.09442918747663498, 0.022624433040618896, 0.011445599608123302, -0.02929035574197769, 0.05644892156124115, 0.032155971974134445, -0.06608694791793823, -0.09682579338550568, -0.009956390596926212, -0.0019220534013584256, -0.01160904299467802, 0.038964610546827316, -0.011539154686033726, -0.02075301483273506, -0.02745080180466175, 0.039661955088377, 0.07595409452915192, -0.07907848060131073, -0.05422496795654297, -0.001110775163397193, 0.03309088945388794, 0.04674471169710159, 0.06181382015347481, 0.046690039336681366, 0.0019216983346268535, -0.030430017039179802, 0.045845504850149155, 0.105988509953022, -0.014810968190431595, 0.10291655361652374, 0.08670393377542496, 0.04795975238084793, 0.010075028985738754, 0.06111839413642883, 0.040800437331199646, -0.025098329409956932, -0.027149785310029984, -0.01557173766195774, 0.06602735072374344, 0.043507277965545654, 0.051968153566122055, 0.002601668704301119, 0.03578083962202072, 0.0733751729130745, -0.05326193571090698, -0.029740961268544197, -0.002509359735995531, -0.08059502393007278, -0.0181902963668108, -0.08343156427145004, -0.1329995095729828, 0.041178423911333084, 0.009469379670917988, -0.06458397954702377, 0.0003507874207571149, 0.040877316147089005, -0.039768144488334656, 0.04657085984945297, 0.016257373616099358, -0.02041117288172245, 0.004313146695494652, -0.039711643010377884, 0.03577530384063721, 0.029378175735473633, 0.0784543976187706, -0.018971439450979233, 0.005498302634805441, 0.07511663436889648, 0.00212496193125844, -0.006662165280431509, 0.009190780110657215, -0.0006456899573095143, 0.0037180327344685793, -0.02456100843846798, -0.019163407385349274, 0.11340151727199554, -0.11726608872413635, -0.014153862372040749, -0.06458321213722229, 0.014280600473284721, -0.018787816166877747, -0.014290515333414078, -0.10717743635177612, -6.652133551562864e-34, 0.05259356647729874, 0.008988233283162117, 0.10800055414438248, 0.06611913442611694, 0.005579592660069466, -0.06732967495918274, -0.04022562503814697, -0.04908021166920662, -0.05547533184289932, 0.022320063784718513, -0.031063323840498924, -0.0071620396338403225, -0.02431890182197094, 0.07160164415836334, -0.016863815486431122, -0.02510993741452694, -0.003416548017412424, 0.045531339943408966, 0.03085215948522091, -0.03153841197490692, -0.05581296980381012, -0.011231709271669388, 0.023751871660351753, -0.0452219694852829, -0.03026430867612362, 0.05331858992576599, -0.02327839843928814, 0.036090388894081116, 0.00860527902841568, -0.013060211203992367, -0.05732588842511177, 0.03577518090605736, -0.016304058954119682, 0.05363037437200546, 0.013017958961427212, -0.006960777565836906, -0.02309443987905979, -0.044694554060697556, 0.0679493248462677, -0.015802282840013504, 0.006941790226846933, 0.014981124550104141, 0.052195753902196884, -0.02714707888662815, -0.05353927984833717, 0.04220477491617203, -0.03121732920408249, -0.0634383112192154, -0.09028780460357666, -0.04109630733728409, 0.01654866151511669, -0.00047933499445207417, -0.01707039587199688, -0.021580973640084267, 0.008730919100344181, 0.07525661587715149, -0.026686880737543106, 0.005990984383970499, 0.01768871769309044, -0.00815319363027811, 0.01686505787074566, 0.05663105100393295, -0.05390683189034462, 0.1157228872179985, -0.0029695637058466673, 0.07526682317256927, -0.013546906411647797, 0.0162858534604311, 0.03826628625392914, 0.08316200971603394, -0.009880034253001213, 0.0015637665055692196, -0.038417328149080276, -0.056181300431489944, 0.09857147932052612, -0.007044088561087847, 0.04247301071882248, -0.10923746973276138, 0.01867629960179329, 0.09073691070079803, 0.010692053474485874, 0.014217614196240902, -0.05699293315410614, -0.030958911404013634, -0.08391337841749191, -0.025458576157689095, 0.0007290879730135202, -0.10879223793745041, -0.033907387405633926, -0.002590901916846633, -0.07380743324756622, -0.11399663984775543, -0.01775074005126953, -0.011011927388608456, -0.021505409851670265, -1.842198747094195e-33, -0.0033274407032877207, -0.008284051902592182, 0.023836160078644753, 0.026089921593666077, 0.004324475768953562, -0.013007906265556812, -0.07030900567770004, -0.0047965641133487225, -0.017840106040239334, 0.02683161571621895, 0.09809403866529465, 0.002464308636263013, -0.04221300780773163, -0.029759369790554047, -0.061594534665346146, 0.018331753090023994, -0.015188640914857388, -0.031269121915102005, 0.06985902786254883, -0.02541864849627018, -0.06350425630807877, 0.09875267744064331, -0.0008555069216527045, 0.04318062216043472, -0.052593596279621124, -0.029430249705910683, -0.012454544194042683, 0.03946835920214653, -0.007362535689026117, 0.007073679473251104, -0.07076516002416611, -0.06447511166334152, -0.04175030440092087, 0.011629960499703884, -0.0705593153834343, 0.08165539801120758, 0.0625348910689354, -0.027191681787371635, 0.030038200318813324, -0.01955059915781021, -0.003846189472824335, 0.02989114075899124, -0.15439362823963165, -0.01679874397814274, 0.0089421970769763, -0.035002097487449646, -0.03196602687239647, -0.0010928098345175385, 0.029080022126436234, -0.019779106602072716, 0.04551155865192413, 0.008059385232627392, -0.0446624793112278, -0.12086201459169388, -0.02647695131599903, -0.02244364097714424, -0.015349126420915127, -0.03802594915032387, 0.08540879189968109, 0.07059520483016968, -0.13795195519924164, -0.04250170290470123, 0.015103167854249477, 0.07041838765144348, -0.08486443758010864, -0.02982172928750515, -0.05374345928430557, 0.07602254301309586, 0.030953263863921165, -0.021308381110429764, 0.04143853485584259, 0.025143848732113838, 0.06272923946380615, 0.10743489116430283, -0.00797290075570345, -0.0805516317486763, -0.001688878983259201, -0.08611451834440231, -0.07685836404561996, -0.04996547847986221, 0.06354441493749619, -0.040838997811079025, -0.03185965493321419, 0.08981325477361679, 0.07745341956615448, 0.04349365830421448, 0.0801093652844429, 0.03128885105252266, 0.00047847387031652033, 0.0002960324636660516, -0.009449842385947704, 0.05682939663529396, -0.033311571925878525, 0.07257773727178574, -0.04374237358570099, -3.77919633365309e-08, 0.0638398826122284, -0.009334253147244453, 0.095219187438488, -0.06522820144891739, 0.028098730370402336, 0.0761052593588829, -0.012004517018795013, 0.14398770034313202, -0.01849147118628025, 0.007650184910744429, 0.052262481302022934, 0.024455633014440536, -0.060001760721206665, 0.03123374469578266, 0.011012665927410126, 0.08577117323875427, 0.01610396057367325, 0.006404823623597622, -0.024396508932113647, 0.023728834465146065, 0.04617895558476448, 0.010622777044773102, 0.08702657371759415, -0.0007364939083345234, 0.09340309351682663, -0.15145541727542877, -0.012081803753972054, 0.00744673190638423, -0.07141755521297455, 0.06440305709838867, -0.0929868295788765, -0.01872183196246624, 0.03565594553947449, 0.06752737611532211, 0.07338577508926392, 0.04144444689154625, -0.025755124166607857, -0.06590019911527634, -0.0681319311261177, 0.007608841639012098, -0.09934312850236893, 0.0874791145324707, -0.11903194338083267, 0.0051944199949502945, 0.002535410225391388, -0.005202124826610088, 0.013943384401500225, 0.007774109020829201, 0.02964646741747856, 0.02337433211505413, 0.06047416850924492, 0.03016945905983448, 0.04605843126773834, -0.039424821734428406, -0.002726190257817507, 0.05896520987153053, -0.030224869027733803, -0.06258226931095123, 0.005693021696060896, -0.011318353936076164, -0.00509229302406311, -0.057896070182323456, 0.017414936795830727, -0.04749419540166855]\n" + ] + } + ], + "source": [ + "# Turn the first text chunk into a vector with the embedding\n", + "query_result = embedding_function.embed_query(texts[0].page_content)\n", + "print(query_result)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, let's generate embeddings for the entire documents and save to vector database.\n", + "We use Chroma in this case. Pinecone, Qdrant and FAISS are also popular choices." + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "7bTcks_HAchb", + "outputId": "fabf2ef4-c287-49de-b26d-dcdea1e335a0" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "', 'By contrast, the system created by the MIT researchers can effectively predict molecular properties using only a small amount of data. Their system has an underlying understanding of the rules that dictate how building blocks combine to produce valid molecules. These rules capture the similarities between molecular structures, which helps the system generate new molecules and predict their properties in a data-efficient manner.', 'This method outperformed other machine-learning approaches on both small and large datasets, and was able to accurately predict molecular properties and generate viable molecules when given a dataset with fewer than 100 samples.', 'โ€œOur goal with this project is to use some data-driven methods to speed up the discovery of new molecules, so you can train a model to do the prediction without all of these cost-heavy experiments,โ€ says lead author Minghao Guo, a computer science and electrical engineering (EECS) graduate student.\n" + ] + } + ], + "source": [ + "from langchain.vectorstores import Chroma\n", + "# load it into Chroma\n", + "db = Chroma.from_documents(texts, embedding_function)\n", + "\n", + "# do a simple vector similarity search\n", + "query = \"What are the progress of predicting molecular properties\"\n", + "results = db.similarity_search(query)\n", + "print(results[0].page_content)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "tD_MV7eNDy5s" + }, + "source": [ + "# Finally, \"chain\" the LLM and the vector database\n", + "\n", + "This is to enable question and answering with LLM, over our contextual data in the vector database.\n", + "For LLM, we use OpenAI API. Alternatively, you can choose `huggingface_hub` or `langchain.llms` for open source options such a Llama 2, GPT4All, Dolly 2.0." + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": { + "id": "AI-Au6RcAv5q" + }, + "outputs": [], + "source": [ + "from langchain.chat_models import ChatOpenAI\n", + "from langchain.chains import RetrievalQA\n", + "\n", + "llm = ChatOpenAI(\n", + " model_name=\"gpt-3.5-turbo\",\n", + " temperature=0.3,\n", + ")\n", + "# set chain_type to stuff: The simplest option, it just takes the documents it deems appropriate and uses them in the prompt to pass to the model.\n", + "qa = RetrievalQA.from_chain_type(llm=llm, chain_type=\"stuff\", retriever=db.as_retriever())\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, let's try to ask a question!" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 87 + }, + "id": "Wc8ocjAKZbs5", + "outputId": "ef55a054-8bbb-485c-cf65-6cbd2648ac4f" + }, + "outputs": [ + { + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'The researchers from MIT and the MIT-Watson AI Lab have developed a new framework that can predict molecular properties more efficiently than traditional deep-learning approaches. Their system has an underlying understanding of the rules that govern how building blocks combine to form molecules, allowing it to generate new molecules and accurately predict their properties using only a small amount of data. This method outperformed other machine-learning approaches on both small and large datasets, and it was able to accurately predict molecular properties and generate viable molecules even with fewer than 100 samples. The system learns the \"language\" of molecules, known as a molecular grammar, and uses this knowledge to predict properties more efficiently. The researchers have also demonstrated the effectiveness of their approach in predicting physical properties of polymers. Overall, their work shows promising progress in predicting molecular properties using machine learning.'" + ] + }, + "execution_count": 118, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "query = \"What are the progress of predicting molecular properties\"\n", + "qa.run(query)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "QEOXiYyBW0d_" + }, + "source": [ + "# Final touch, prompt template\n", + "\n", + "[Prompt engineering](https://www.pinecone.io/learn/series/langchain/langchain-prompt-templates/) is a crucial aspect of working with language models, as it directly impacts the quality and relevance of the generated text. LangChain simplifies prompt engineering through powerful features for creating and customizing prompt templates. Let's try it out.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8WrBPxgRW6JZ", + "outputId": "f6401d33-fe27-4b80-8abe-f0a65d87e292" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Yes, AI can make art. The field of AI-generated art has been developing for several decades, with early attempts dating back to the 1960s. Over time, models and algorithms have become more sophisticated, allowing AI systems to create visual and textual art. However, there are ongoing debates and discussions surrounding copyright, disinformation, biases, and the distinction between AI and human creativity. Artists and researchers are exploring the potential of AI as a new medium for artistic expression.\n" + ] + } + ], + "source": [ + "from langchain.prompts import PromptTemplate\n", + "\n", + "prompt_template = \"\"\"As a reporter who stays abreast with AI trends,\n", + "you should answer user inquiries based on the context provided and avoid making up answers.\n", + "If you don't know the answer, simply state that you don't know.\n", + "\n", + "{context}\n", + "\n", + "Question: {question}\"\"\"\n", + "\n", + "PROMPT = PromptTemplate(\n", + " template=prompt_template, input_variables=[\"context\", \"question\"]\n", + ")\n", + "\n", + "qa = RetrievalQA.from_chain_type(\n", + " llm=llm,\n", + " chain_type=\"stuff\",\n", + " retriever=db.as_retriever(),\n", + " chain_type_kwargs={\"prompt\": PROMPT},\n", + ")\n", + "\n", + "# Finally, let's ask questions!\n", + "query = \"Can AI make art?\"\n", + "print(qa.run(query))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "๐Ÿ™ŒThere you have it, your first LLM app is finished with fewer than 100 lines of code!\n", + "\n", + "But don't stop here, make your own changes or try to add more components. There are many pieces we haven't touched upon:\n", + "- Try more open-source models from Hugging Face \n", + "- Check out [agent](https://python.langchain.com/docs/modules/agents/), which can enable your LLM app to \"take action\"\n", + "- Try different data types other than csv files\n", + "- Try to host this app on either [Streamlit](https://streamlit.io) or [Steamship](https://steamship.com), create engaging UI/UX for it.\n", + "\n", + "Let us know what you make!" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": { + "id": "dvyTs6HtU9AF" + }, + "source": [] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/tutorials/llm-app/LLMappstack.png b/tutorials/llm-app/LLMappstack.png new file mode 100644 index 0000000000000000000000000000000000000000..45256fa6659774a0076aaad59b4bbe2d8b405f7a GIT binary patch literal 34978 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

>WG2uw&@UNUnWAao2O#;R3$ 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 literal 0 HcmV?d00001 From 0838510685512303e225929ba1f107183ba46085 Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Sun, 3 Sep 2023 00:56:11 +0800 Subject: [PATCH 13/15] Update CNAME --- CNAME | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CNAME b/CNAME index a28516cbab..e88024e663 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -press.ocademy.cc \ No newline at end of file +publish.ocademy.cc \ No newline at end of file From e448047791650edc11cb1238339a7430d0fadfea Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Sun, 3 Sep 2023 00:56:50 +0800 Subject: [PATCH 14/15] Update README.md --- open-machine-learning-jupyter-book/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/open-machine-learning-jupyter-book/README.md b/open-machine-learning-jupyter-book/README.md index cd7c25bf27..43fdcb9b53 100644 --- a/open-machine-learning-jupyter-book/README.md +++ b/open-machine-learning-jupyter-book/README.md @@ -9,7 +9,7 @@ The book is completely free and self-paced, which covers Python, Data Science, M > **Note** > -> All the Jupyter Notebook files can run independently on any Jupyter environment. Please use **Jupyter Lab** for the best experience. +> Please note: all the Jupyter Notebook files can run independently on any Jupyter environment. Please use **Jupyter Lab** with [myst](https://mystmd.org/guide/quickstart-jupyter-lab-myst) support for the best experience. ## ๐Ÿงฉ Features From 6467c31d6ccb4c43226f7da6c8c4b77a024560c6 Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Sun, 3 Sep 2023 01:00:01 +0800 Subject: [PATCH 15/15] Update README --- README.md | 2 +- open-machine-learning-jupyter-book/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5d79217b7f..27cce79061 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ A curated list of awesome AI courses, tutorials, books, tools and other learning Resources about Generative AI, started with a list of prompts for AI Teaching and Learning. -## ๐Ÿ““ Ocademy Open Book [![]()](https://press.ocademy.cc) +## ๐Ÿ““ Ocademy Open Book [![]()](https://ocademy-ai.github.io/machine-learning/) An interactive and visual book aims to help millions of busy adults transition into AI. diff --git a/open-machine-learning-jupyter-book/README.md b/open-machine-learning-jupyter-book/README.md index 43fdcb9b53..9db53fa8df 100644 --- a/open-machine-learning-jupyter-book/README.md +++ b/open-machine-learning-jupyter-book/README.md @@ -13,7 +13,7 @@ The book is completely free and self-paced, which covers Python, Data Science, M ## ๐Ÿงฉ Features -- A curated list of beginner-friendly [tutorials](https://press.ocademy.cc) for learning Python, Data Science, Machine Learning, Deep Learning and MLOps. +- A curated list of beginner-friendly [tutorials](https://ocademy-ai.github.io/machine-learning/) for learning Python, Data Science, Machine Learning, Deep Learning and MLOps. - Empower the learning journey with interactive Jupyter Notebooks. - The book is built with [Jupyter Book](https://jupyterbook.org/) from computational content written as notebook. - The slide is built with [RISE](https://github.com/damianavila/RISE) which instantly turns notebook into a live [reveal.js](https://revealjs.com/)-based presentation.