What is Machine Learning?

From Machine Learning
Jump to: navigation, search

Machine learning is how computers make predictions about future conditions or outcomes based on its learning experience with previously collected data.

What is this?


Machine learning at its most basic is the practice of using algorithms to parse data, learn from it and then make a determination or prediction about something in the world." [1]


Machine learning is an application of artificial intelligence (AI) that provides systems the ability to automatically learn and improve from experience without being explicitly programmed.[2]


As with all things in data science, the quality of data determines the quality of the output.

Lifecyle of a Machine Learning Model

Machine learning is based on iteration and repetition until the desired outcome is reached, such as a performance accuracy score above a certain percentage. Once this is achieved, the model can be applied, and the results should be reliable enough to draw conclusions from or act on.

Determining the type of problem to be solved is always the first step, to choose an ideal algorithm to work with. Exploratory machine learning is also possible if the desired outcome is unknown, and some algorithms can explore the data to find correlations or clusters of related inputs.

The historic data is by convention split 80/20 into training data and validation data.

Lifecyle of a machine learning model


In the above illustration, the application is the “new” data fed into the machine learning model. In supervised learning, this corresponds to unlabelled datasets unlike the labelled training and validation sets. In unsupervised learning, the data will be similar to the training set, but the model will be able to classify this new data into labelled categories that it previously generated through training.

Languages and Implementation

Which language to implement a machine learning model in depends a lot on the intended application. Python is by far the most popular language overall in machine learning, but in different areas C#/C++ or Java are more commonly used.

Libraries

When developing a machine learning model much of the work has already been done on the backend, making a machine learning problem more about data preparing and processing rather than implementing mathematical theory.

General Libraries

The most popular libraries used in machine learning or data science projects on Github (in python) are:


  • Numpy: very useful for creating and manipulating vectors and matrices. It is used as a base level framework for the code or pre-processing data into a form that fits your chosen algorithm.


  • Pandas : pandas makes table manipulations (merge, join, etc) easier than it would be in numpy, as well as offering more data processing methods and time series functionality among other user friendly tools.


  • Scipy: Holds mathematical and physical constants as well as supporting matrix manipulation and image processing. It is recommended to have an understanding of numpy and pandas to fully understand the potential of scipy.


  • Scikit-learn: Has functions for directly applying machine learning methods to your model. Using the LinearRegression function for example will fit your linear model and predict targets based on the linear approximation of the data.


  • TensorFlow: Tensorflow was originally developed by Google’s research team. Tensorflow supports Python, Java, C++, JavaScript, Go, and Swift programming languages. There are also some community open source projects available for C#, Haskell, Julia, Ruby, Rust, and Scala. Keras (used within Tensorflow as tf.keras) is a model designed for easy manipulation and training.


These libraries make it very easy to implement machine learning. With these at your disposal, the complex part of machine learning is boiled down to preparing your data appropriately and selecting the correct method with appropriate hyperparameters.

Specific Libraries