How to learn Python for machine learning. 🐍

The beginner's guide.
(based on my real life experience of mentoring 300+ students)

🧵👇

In this thread we'll look at all the concepts in Python you need to know for machine learning along with all the free resources that you'll need.

All of this is based on my experience of successfully teaching 300+ students how to code using Python.

(2 / 19)
You can use many languages for machine learning, why Python?

Because of 2 reasons:
- Comparatively easier to learn than other languages
- Has the biggest and most mature community

This makes Python a no-brainer to learn for machine learning as a beginner.

(3 / 19)
These are the absolute basics which you must know about:

- Basic terminal commands
- Basic arithmetic (+,-,/,*)
- Accepting user input
- For & While loops
- Exception handling
- If-Else statements
- Functions, modules & Imports

(4 / 19)
Then comes the more tougher concepts which you must know about:

- Object oriented programming in Python:Classes, Objects, Methods
- PIP (Pypi)
- List slicing
- String formatting
- Dictionaries & Tuples
- Managing environments
- Dunder methods like __init__

(5 / 19)
This are even more advanced concepts but you do not need then to start machine learning:

- Lambda functions
- Built in libraries like CSV, requests, Sqlite
- Map and Filter
- *args and **kwargs
- Async
- Decorators

(6 / 19)
From what I've observed, most beginners just find it really difficult just to get the Python environment setup and then using the terminal becomes an even bigger nightmare for them.

Let's tackle this issue.

(7 / 19)
You need to install:
- Anaconda for managing environments (different versions of Python)
- Python3
- Machine learning packages like Sckit learn and TensorFlow using pip when needed

(8 / 19)
Anaconda installation guide for 👇

MacOS: 🔗docs.​anaconda.​com/anaconda/install/mac-os/
Windows: 🔗docs.​anaconda.​com/anaconda/install/windows/
Linux: 🔗docs.​anaconda.​com/anaconda/install/linux/

(9 / 19)
MacOS and Linux have Python pre-installed, for windows you'll have to install it yourself and it is really easy to mess up the install.

Here'a a guide with step by step instructions which will help you.
🔗bit.​ly/3rbDoyl

(10 / 19)
After you do all of that, you need a place to write your code which is called a "code editor".

Here are some popular ones

- VS code: Feature rich
- Sublime: Light and simple
- Jupyter: Useful for prototyping
- Pycharm: Full blown IDE i.​e has loads of features.

(11 / 19)
If all of that seems complicated to you, I suggest you use Google colab, Kagggle notebooks or repl.​it
These are online editors which have everything setup for you.

Not to mention colab and kaggle notebooks give you a free GPU for your machine learning workloads.

(12 / 19)
Links for these editors

Collab : 🔗colab.​research.​google.​com
Kaggle Notebooks : 🔗kaggle.​com/notebooks/welcome
Repl : 🔗repl. it

(13 / 19)
The Basic & Intermediate Python course on freecodecamp go over pretty much all Python concepts you need for machine learning which I have mentioned above.

Basics: 🔗youtube.​com/watch?v=rfscVS0vtbw
Intermediate: 🔗youtube.​com/watch?v=HGOBQPFzWKo

(14 / 19)
Another thing which most beginners skip is knowing how to use the terminal properly and the know-how of navigating around folders.

Here's a brilliant website which gives you an overview of the windows command prompt, enough for you to get started.

🔗bit.​​ly/34tmnGd

(15 / 19)
The story is a bit different on Linux and Mac, their terminals are extremely powerful and packed to the brim with features, here's a tutorial which will help you get started with the basics 👇

​🔗youtube.​com/watch?v=oxuRxtrO2Ag

(16 / 19)
Keep in mind that you should learn how to use the linux terminal because at some point in your machine learning journey you will have to deal with linux.

It is not important to learn it at the start but I do recommend it.

(17 / 19)
This tutorial will help you in knowing how to work with folders, this is important!

Windows: 🔗youtube.​com/watch?v=HDmwiJxzIrw
Mac: 🔗youtube.​com/watch?v=3TAEC-1YUZw
Linux: 🔗youtube.​com/watch?v=HbgzrKJvDRw

(18 / 19)

More from Pratham Prasoon

More from Machine learning

This is a Twitter series on #FoundationsOfML.

❓ Today, I want to start discussing the different types of Machine Learning flavors we can find.

This is a very high-level overview. In later threads, we'll dive deeper into each paradigm... 👇🧵

Last time we talked about how Machine Learning works.

Basically, it's about having some source of experience E for solving a given task T, that allows us to find a program P which is (hopefully) optimal w.r.t. some metric


According to the nature of that experience, we can define different formulations, or flavors, of the learning process.

A useful distinction is whether we have an explicit goal or desired output, which gives rise to the definitions of 1️⃣ Supervised and 2️⃣ Unsupervised Learning 👇

1️⃣ Supervised Learning

In this formulation, the experience E is a collection of input/output pairs, and the task T is defined as a function that produces the right output for any given input.

👉 The underlying assumption is that there is some correlation (or, in general, a computable relation) between the structure of an input and its corresponding output and that it is possible to infer that function or mapping from a sufficiently large number of examples.
With hard work and determination, anyone can learn to code.

Here’s a list of my favorites resources if you’re learning to code in 2021.

👇

1. freeCodeCamp.

I’d suggest picking one of the projects in the curriculum to tackle and then completing the lessons on syntax when you get stuck. This way you know *why* you’re learning what you’re learning, and you're building things

2.
https://t.co/7XC50GlIaa is a hidden gem. Things I love about it:

1) You can see the most upvoted solutions so you can read really good code

2) You can ask questions in the discussion section if you're stuck, and people often answer. Free

3. https://t.co/V9gcXqqLN6 and https://t.co/KbEYGL21iE

On stackoverflow you can find answers to almost every problem you encounter. On GitHub you can read so much great code. You can build so much just from using these two resources and a blank text editor.

4. https://t.co/xX2J00fSrT @eggheadio specifically for frontend dev.

Their tutorials are designed to maximize your time, so you never feel overwhelmed by a 14-hour course. Also, the amount of prep they put into making great courses is unlike any other online course I've seen.

You May Also Like

॥ॐ॥
अस्य श्री गायत्री ध्यान श्लोक:
(gAyatri dhyAna shlOka)
• This shloka to meditate personified form of वेदमाता गायत्री was given by Bhagwaan Brahma to Sage yAgnavalkya (याज्ञवल्क्य).

• 14th shloka of गायत्री कवचम् which is taken from वशिष्ठ संहिता, goes as follows..


• मुक्ता-विद्रुम-हेम-नील धवलच्छायैर्मुखस्त्रीक्षणै:।
muktA vidruma hEma nIla dhavalachhAyaiH mukhaistrlkShaNaiH.

• युक्तामिन्दुकला-निबद्धमुकुटां तत्वार्थवर्णात्मिकाम्॥
yuktAmindukalA nibaddha makutAm tatvArtha varNAtmikam.

• गायत्रीं वरदाभयाङ्कुश कशां शुभ्रं कपालं गदाम्।
gAyatrIm vardAbhayANkusha kashAm shubhram kapAlam gadAm.

• शंखं चक्रमथारविन्दयुगलं हस्तैर्वहन्ती भजै॥
shankham chakramathArvinda yugalam hastairvahantIm bhajE.

This shloka describes the form of वेदमाता गायत्री.

• It says, "She has five faces which shine with the colours of a Pearl 'मुक्ता', Coral 'विद्रुम', Gold 'हेम्', Sapphire 'नील्', & a Diamond 'धवलम्'.

• These five faces are symbolic of the five primordial elements called पञ्चमहाभूत:' which makes up the entire existence.

• These are the elements of SPACE, FIRE, WIND, EARTH & WATER.

• All these five faces shine with three eyes 'त्रिक्षणै:'.