/Workshop-on-Machine-Learning-2018

This repo contents all the information regarding workshop on Machine Learning held by NSU ACM SC.

Primary LanguageJupyter Notebook

Workshop-on-Machine-Learning-2018

This repo contents all the informations regarding workshop on Machine Learning by NSU ACM SC.

What we are going to learn from this Workshop

Day 1:

  • Introduction to Machine Learning
  • Intuition of the most common ML Algorithms

Day 2:

  • Applications of ML
  • Pre-processing Data for ML models
  • Use of different ML Algorithms
  • Implementation of Algorithms

Day 3:

  • More Applications, Data Visualizations, Feature Engineering, Summary and Q/A

                                      The instructors for this workshop are 
    
                                                     Asif Ahmed Neloy 

                                                     Mostafa Didar

Beginner Machine Learning Resources

Forked and modified for this workshop from - Beginner-Machine-Learning-Resources

Also published as a Article on Medium

Key things to focus on first

  • Language : python3 , you can opt for python2 and many older tutorials or books are on python2 but it will soon become obsolete, so its better to focus on python3. Yes you can go for Java or C++, but not recommended for beginners. Python just has better tools these days.

  • Linear Algebra : You can follow resources given, also NSU offers MAT125 course on Linear Algebra.

  • Statistics : Again NSU offers MAT361 for this purpose, if you're yet to do the course or if you think that you need easier or more elaborate resources you can follow the resource links.

  • Reading a lot of books and the willingness to try them out, implement them writing code : This is important. You have to keep in mind that Machine Learning as a field is vast and you'll need to study a lot. So the key is to read, write code, discuss among your friends. Discussing is the best way to get things done because you will always meet someone who has some better idea or has a better concept or knows the topic better.

  • Follow people on twitter: Follow the experts of the field online. Ironically hardly any of them are on facebook so your best bet to find them is twitter. A list of people to follow is given at the end. Also read medium publication Towards Data Science. I haven't found any other publication that much organized on this topic.

  • Where to get ideas about projects?: Github is a good place to start with.

  • Don't waste time running after everything: Do one thing at a time, it's very tempting to run after cool things people are doing. Fine, you're a beginner, hold your horses, learn things better, then you'll see that you can make things better and cooler than those guys. 🤓

  • If things get difficult?: Things will get difficult at times. So, don't lose hope. Be on your path and things will get just fine 😄

  • Practice on Kaggle: You should practice there. The best place to practice actually but first learn some basics. Kaggle is to machine learning what UVA is to Competitive Programming.

  • If you're Windows: Some python packages are difficult to install on Windows. No that doesn't mean you have to get Linux or macOS to do things (well things are easier there!). Instead of using Python from their official site, you can download and install Anaconda, a python distribution that comes with all the packages you need to get started with machine learning/ data science/ scientific computing.

Python Programming Resources

These are probably the best resources to begin with, follow whichever you like, all do the same job though. (Don't go to follow everything at once!)

Python tools related courses

If you want to use an IDE

Only IDE I can suggest in a heart beat is Pycharm. The community edition is free and you get the Professional Edition for free if you register with your NSU Email in the Jetbrains Student Program.

Not an IDE? Text Editor Suggestions?

Frameworks?

  • One rule of thumb is, when you're beginning to learn theoretical topics, it's best not to touch frameworks, use only what is necessary and try writing things from scratch, this way you get to know more and also the problems you face and solve will deepen your understanding on the topic.

  • Still there are some python modules you need to use to make life easier. Just use numpy for mathematical stuff and matplotlib for visualizing graphs.

  • When you've a good grasp of things: use scikit-learn

  • You'll get more information on this in the online courses! 😅

Now for real stuff : Machine Learning resources

Online Courses:

So many resources, what to follow eh? Good question. One thing about learning is that there's nothing called a universal good resource. It depends on the learners what they find best. Start exploring and find out the best one for you. 🧐

And this list is not the end of the world, you may find sources that are better!

Linear Algebra and Stat

Best and the easiest courses? Follow Khan Academy -

Books, Lierature(Journals, Papers)

Some prefer books for then online courses and the problem with books is that different books take different approaches. Thanks to our friends at NSU ACM SC R&D, they've created a nice repository of books in digital format - link here. Books ain't cheap, and you won't find every book in the local market as well.

Where to find digital copies of other books?

Well distributing digitals copies is kind of illegal but we live in a country where buying a book with 4~5K BDT isn't feasible.

You can use libgen.io to get books in PDF or ePub format.

If you want to get literature, visit scihub. You can also get IEEE or ACM Library membership (you need to pay yearly for that) to read papers and books (unless you want to use scihub or libgen)

Honorary mention

Very few people have the guts to go in depth and discuss things in Bangla, and Manash vai is one of them. His online book on machine learning is one of the best and it's in Bangla! And you can read it for free. Also you can follow his projects on his github repo.

A general guideline to begin with

  • Start with any of the online courses (other than the case study approach, do that after you have done at least one course).
  • Some people understand theories better, for them the Andrew NG course is the best place to start.
  • Some people understand theories better when it's discussed in code. So for coder people (like me 🤓) start with any other course in the list.
  • Things may seem overwhelming at times, so do this, drink more water, because human brain works better when it's swimming in a bath of fluid, take breaks, stop punishing yourself, discuss things with people, use groups, search in Google, annoy people who can help you and etc.
  • Avoid wannabe people. Machine Learning has gained greater hype than the Justice League Trailer. So obvious there will be no shortage of people online who know very little and will pretend they know a lot. So, avoid those people.

Necessary Tools and keys

People and publications to follow on twitter or github

Other Things to follow

So lets start Machine Learning

prerequisite

Installation Issues and guides

Now to the real deal - Machine Learning

The discussion has been divided into multiple markdown files in the docs folder. You can read the from there or just click on the links below to get there.