How to learn machine learning from scratch?

Machine learning is the buzz word these days and everybody wants to know something about it. In times to come machine learning will be a concept that everyone who needs to stay competitive will have to know about.

What is Machine Learning

What is Machine Learning?

Traditional programs take data as input and produces data as output.

However a machine learning algorithm takes data as input but produces a program as an output. This machine generated program can now take new data, process it and produce output data.

Machine learning algorithms automate the process of creating programs using historical data. In simple words, it gives computers the capability to extract knowledge from data and store it for future judgement.

Wikipedia defines machine learning as…

Machine learning is the subfield of computer science that, according to Arthur Samuel, gives “computers the ability to learn without being explicitly programmed”.

This brings us to our first introspective question…

Which kind of machine learner are you?

Depending on the role you have in your organization or the role you aspire for, you might fall in one of the three different category of machine learners.

1. Businesses user

high Level Understanding

Business user is involved in the day to day running of a business. They run the operations and are responsible for defining and executing the business processes of a company. In traditional companies, the executives, operations team and managers fall in this category.

For this kind of user a high level understanding (non technical) of what Machine Learning can do and what it can’t do is beneficial. They need just enough information to equip themselves to determine whether they will see return on investment on machine learning or not?

    • Traditionally for customer support operation teams spend lot of dollars on costly human resources. Machine learning can automate menial operational tasks like customer support.
    • Machine learning can analyze tons of usage data (big data) and make remarkable suggestions on business tactics that can be applied to increase revenue.

2. Machine Learning Engineers & Data Scientists

Machine Learning Engineers Data Scientists 1

If you belong to this group, then you are working on creating cutting edge machine learning libraries that will be used by the machine learning engineers and the data scientists.

You would be an aspiring student or actively studying computer science or mathematics.

An example would be the group of students from the university of Waikato, New Zealand. They have created an open source machine learning library called Weka.

The core team of IBM that developed Watson would also belong to this group.

Machine learning enthusiasts who contribute to open source projects like Spark and Sci-kit learn would also be a part of this group.

How to go about understanding Machine learning?

The method of learning would depend on which of the above type of learner you are?

If you are a business user who needs to get a high level of understanding then your best bet is doing online research. There are plenty of resources available on youtube to give you that preliminary understanding.

We at MCAL Global did a webinar that summarizes machine learning. We recommend you watch it. It is available at the following link:https://www.youtube.com/embed/9ZNITUZvv_I

Machine learning engineers and data scientists will also find the above webinar useful. It will give an overview on machine learning concepts and its applications. It will also give details on the line items that needs to be learnt to start this journey.

However if you are an aspiring machine learning engineer or data scientist you will need professional training.

Just reading free stuff online and watching free videos will not give you the kind of depth you are looking for. You will have to invest in some form of structured training with a mentor.

We at MCAL Global have an online instructor led training called “Machine learning using Python” which helps people hone in their machine learning and data science skills. It is a weekend course so working professionals could also enroll in it. For detailed information on this course email us at ml@mcal.in

If you plan to become a researcher who is looking to create machine learning algorithms, we recommend that you enroll in a college for a long term formal education in Computer Science or Mathematics.

If you are at a point where you are trying to make a decision whether to go down the path of machine learning or not then try to answer two questions:

  • Does machine learning interest me?
  • What are the future prospects in the field of machine learning?

You yourself are the best judge on your interest in this field. You will have to evaluate it yourself. No one can make that decision for you.

But if you have doubts on the future prospects of machine learning, then look at the following info graphic:few facts

What should I do next?

Use the table below to identify which kind of learner you are, then you can review the learning approach recommended for you and relevant resources suggested for you.

Do I need to learn programming?

If you are a business learner then you don’t need to learn any programming. In fact you don’t even have to know how various algorithms work.

All you need to know is what is machine learning at a high level. What are its strong points and where it doesn’t work. Armed with this information you will be able to take strategic decisions.

    • There should be a pattern in the data. Without this basic hypothesis machine learning doesn’t work. Machine learning doesn’t work on random data. So it’s crucial that the data collected for solving the problem has some patterns hidden in it. There is an underlying correlation that exists.
    • The pattern or correlation should not be known. There should be a general sense of pattern but the exact pattern should be unknown. Because if the pattern is known then what’s the point of machine learning?
    • There should be lots of relevant data. Machine learning algorithms are data hungry and work well when lots of relevant data exists for the algorithms to analyze and detect the patterns. As human beings learn from experience, the machines learn from data. The more data you have the more experienced your machine learning model will be.

Which programming language should I learn?

If you want to become a data scientist or a machine learning engineer then you will have to pick a programming language.

Without the knowledge of programming you will not be able to use machine learning or create new algorithms. At some point in time you will have to delve into the programming side of the world.

For machine learning you don’t need to understand the heavy duty GUI intensive programming, web based or socket programming. All you need to know is how to read, write and manipulate data. How to write mathematical logic behind the algorithms.

In a nutshell your use of programming will be targeted towards machine learning. Now here is where the biggest question arises…

Which programming language should I learn?

There are a plethora of programming languages Java, C, C++, .Net, Scala, Ruby, Python, R etc. It gets confusing quite fast when it comes to making a decision which one to use?

If you do a little bit of online research, it will become clear to you that Python is emerging as one of the leader in the machine learning space. It is followed by R.

You will notice that analysts who want to apply machine learning to solve real world problems are jumping on the Python train.

The ones who want limited programming would and stick to academics are going for R.

A quick google search on the top programming languages will convince you that Python is in the top 5 list.

R or Python?

To help you make a decision we made a side by side comparison of the strengths and the weaknesses of Python and R.

Python Programming Language Test

R Programming Language Test We suggest, take a deep breadth and analyze your needs before picking your programming language. If you are confused and not able to make a decision then just go for Python :). It is a good choice.

What topics should I cover in Programming?

In general learning a programming language is an ongoing process and involves a lifetime of learning.

    • Programming Basics– Keywords, Statements, Operators, Data Types
    • Flow Control– If else, For loop, While loop
    • Functions– User defined functions, Arguments, Return value
    • File HandListItemng– ListItemst files, Read files, Write to files
    • Miscellaneous items– Exception HandListItemng, Logging
    • Amazing ListItembraries (appListItemcable to Python)– MatplotListItemb, NumPy, Pandas and Scikit-learn

Enough about Programming, what topics should I cover in Machine Learning?

Machine learning at its core is made up of Data Structures, Algorithms, Statistics, Linear Algebra, Probability theory and Calculus.

    • Statistics– Mean, Median, Mode, Standard Deviation, Normal Distribution, Z-Score, histograms
    • ProbabiListItemty– Basics, Bayesian ProbabiListItemty
    • Calculus– Gradient Descent, Root mean square, Distance
    • Machine Learning– Step Zero – Supervised Learning, Unsupervised Learning, Regression, Classification, Clustering
    • Machine Learning– Step One – ListItemnear Regression, Polynomial Regression, Regularization, Ridge Regression, LASSO Regression, Logistic Regression
    • Machine Learning– Step two – Decision Trees, KNN algorithm, K Means Clustering, Principal Component Analysis, ListItemnear Discriminant Analysis, Quadratic Discriminant Analysis
    • Machine Learning– Final Step – Deep Learning and other advanced algorithms

We would love to hear from you about the article or any other question you may have. Please drop us an email at ml@mcal.in to get in touch with us with your question and feedback. Feel free to reach out to us with your training or consulting needs as well. We would love to hear from you.

Don’t Miss Out...

Kickstart Your Business Analyst Career
Book a Free Video Consultation

Please review the eligibility criteria on the website before submitting the form!