Sentdex Machine Learning with Python Review

Straight up, I really enjoyed Sentdex Machine Learning with Python course (by Harrison @Sentdex). You can find the course on Youtube, and on his website. I found it at a great introduction, especially the overall understanding and intuition.

Sentdex Machine Learning with Python

Sentdex Machine Learning with Python

The course starts with an introduction to regression, best fit slopes and then starts to move from one topic to the next such as KNN, SVM and then onto Deep Learning topics with Tensorflow. The difference I feel with this course is how deep Sentdex gets into the subject. Plus, I love his passion when he’s instructing.

In terms of depth, I think a good example is when he is teaching us KNN.

After showing us how to do it the ‘easier’ way (Scikit-Learn), Sentdex starts from scratch and helps us build an understanding of how it all works. I think this really helps in realising what you are actually doing. I also really enjoyed the use of deep learning with Kaggle data such as Cats vs. Dogs and his kernal on Kaggle for Lung Cancer Detection.

Favourite Parts:

  1. In depth analysis of some of the technics, such as coding linear regression and KNN from scratch. I think this helps in building an understanding of what is happening. There are times when he will go through the process without code as well, but in the end I think the code speaks more.
  2. Enthusiasm and really passionate when he explains the process.
  3. He makes mistakes, but shows them and corrects them in the end. In some cases he will insert himself in the future to correct a big mistake just so we don’t go along with it. I prefer seeing these mistakes personally when I’m learning. Although ‘some’ of the code is deprecated – or very soon to be, you can always look at the Youtube comments and someone would have corrected it!
  4. Quick tip – you probably need to know a bit about Python to follow through. I recommend a simple introduction course such as Udacity, Udemy or Edx (MIT).
  5. My GITHUB (just going through sections).

Recommended!

Jose Portilla Python for Data Science Review

I’ve started my transition in data science, and machine learning/artificial intelligence. There are many available resources available but I felt Jose Portilla’s Udemy Python for Data Science was a great overall starter. Course link here.

Python for Data Science

There is roughly 25 sections. Although the first 4 are more about set up (assuming no python background). Here are the things I enjoyed:

  1. The overall ‘introduction’ to Python and Data. Jose pretty much goes into each core area, such as numpy, pandas, matplot, seaborn and then jumps into machine learning (I honestly did not expect this part).

    Yep, Jose has convinced me Seaborn is sexy..

  2. The ‘Notebooks‘ – in Python for Data Science, Jose arranges notebooks for you to do exercises. I really like this part of it as it reinforces the lectures. This was also in his other course (Python bootcamp).
  3. Always reminding us to go through the data, explore it, and figure out why we are doing it.
  4. The start to finish of each project. The format of each topic generally boils down to a lecture (understanding) and then some exercises and then a problem set from start to finish. I normally use a blank notebook for each new topic and follow along with him.
  5. My GITHUB link for this course is here.
Completed the Python for Data Science course.

Completed the Python for Data Science course.

Reminder for those thinking of taking it!

This is an overview, and although there is a crash course for Python, I think a little bit of knowledge is good. Although Python for Data Science covers a lot of topics in machine learning (neural nets, deep learning, NLP) it doesn’t go deeply into them. If you are looking for that, I’d suggest a different course.

I think those pushing it, could finish the course in a less than a month – even a fortnight. A great entry point to Data science and although I do not plan to take the R studio equivalent, I highly recommend it!

 

Coursera Learn To Program: Crafting Quality Code Review

The University of Toronto has a follow up course to their Learn to Program: The Fundamentals course, Learn to Program: Crafting Quality Code on Coursera (link here). This program is shorter, and is a good overall followup to the beginner course. It’s a good overall finish to the two courses available.

Learn to Program: Crafting Quality Code

  • Coursera link here.
  • Level: Probably know a bit of Python
  • Time Frame: 5 weeks
  • Personal Time taken: 4 days.
  • Assessments: 1 final assignment, a peer assessed assignment (which is a mix of code / understanding how to test your work)
  • Quizzes every week.
  • My GITHUB link for the course.

Different Code/Testing

What this course teaches a bit differently to other courses is ‘testing’ your code. When you write code, you need to know the possible cases where your code will fail. I enjoyed writing and thinking how code could fail – and HOW you will break the code.

Coursera Learn To Program: Crafting Quality Code Peer Marking

Otherwise, the program is straight forward. Running you through Python classes, and eventually making a Class orientated game which I enjoyed.

‘Rat Race’ game for our final assignment.

Recommendation

For me, this course would be good as a supplement. Definitely take the course after you have finished the first course. If you know Class structures, have made a game in Python, it’s a good reminder about what things could ‘break’ your application. Learn to Program: Crafting Quality Code is a very nice way to finish the course. If you know a fair amount of Python, it’s probably too easy for you so I’d recommend it to beginners.

Coursera Learn To Program: The Fundamentals

The University of Toronto offers a regular course on Coursera, Learn to Program: The Fundamentals. It’s an introductory course for Python and I think it’s a great course for beginners. I think what I enjoy most is it teaches a few things some other courses skip, such as the doc string (explanation) of your code.

Course Details:

  • For? Beginners in Python
  • Timeframe: I believe if you really push it, and have even a small amount of coding background, it will take you a solid few weeks. If you treat it as a full time – it will take you a week.
  • Syllabus: There are a few coding assignments, as well as quizzes in each week. The core schedule is basically around the fundamentals – booleans, variables, documentation, loops and lists. Videos are given with questions, and assignments are done on your own IDE (they will show you how to install).
  • The Forum had a very fast response rate. There was a programming assignment which has an auto-marker, and I was stuck on 30/37 (got to hit 100% on these coding ones!) and the moment I ask, I got a response a few hours later.
  • GITHUB

Doc String / Function Design Recipe

I think a lot of courses skip this part. Learn to Program: The Fundamentals goes into into this with detail, even with quizzes asking you to comprehend other doc strings.

“””

It’s the important lines that tell you what the code does.

WITH examples. Like this code converts your letters to a number.

Example: “hello” -> 3.

“””

What I like about this is that it helps with communication. For my own personal reference, a template can be found here. The template provides a good solid foundation to designing functions. You can read your own functions and helps others understand your code as well.

Quick and To the Point

I recommend this course to those starting out programming with Python. It’s to the point, and a quick but solid cover of the basics. The assignments are simpler, and although not as long as Udacity Introduction to Computer science, it covers the basics really well. It’s teaches you to do, and I really enjoyed it.

Learn To Program: The Fundamentals by University of Toronto on Coursera.

Udacity Introduction to Computer Science Notes & Review

Udacity Introduction to Computer Science is a great introductory course. To me, it was an introduction to Python and it’s a mix of programming and quizzes. If you want to start somewhere, particularly in Python, I suggest you give it a go. It’s a great starting point for those who want to begin with Python.

Udacity Introduction to Computer Science – Done!

For the last assignment, it was nice to tie everything up with a big project. Took me a fair amount figuring out how to set up the database, after that it was smooth sailing. My solution is here on my GITHUB (Jupyter Notebook). You will probably see my sprawl of comments throughout. I think how I made the database was messy so would love to see other solutions. As a tip for the last part (this) was great help.

Udacity Introduction to Computer Science Notes:

  • Recursion teaching is really cool – and it was nice to see the solutions with recursion, but also the problem with using recursion in terms of efficiency (such as the Fibonacci example).
  • The quizzes are good – but I recommend trying to find out how they got certain solutions. They do explain it but sometimes you need to look up solutions.
  • Even if you get the programming exercises right – definitely look at their solutions. I remember going through one exercise and then when I watched the solution, I realised I was doing it inefficiently.
  • If you don’t know Python – great place to start.
  • Self paced.
  • You don’t have to install everything (it’s all in browser).
  • You are welcome to check my GitHub for some of my solutions I decided to do offsite.

I think if you know a fair amount of programming, it’s a good primer and you will probably zoom through it. I think there may be better courses though. Afterall, it’s an introduction 😉