Introduction to Machine Learning with Python
Day 16 in #100DaysOfCode
Today, more than learning how to code, I will be focusing more on understanding the concept as machine learning with Python is my primary goal.
Machine learning has always intrigued me as a subject. Partially because I am very interested in robotics, I knew that I had to learn about Machine Learning. I will talk about my journey a little bit before jumping into the subject.
I have always been interested in how to build robots. Since I am studying Materials Engineering, I had to get into robotics in a self-taught way at first. I began to code in Arduino and build different simple robots. Then, I got into a program that was offered by Samsun University in Turkey, which enabled me to become a certified robotics teacher.
Before starting to talk about machine learning with Python I would like to add my course link here for anyone who is interested in Arduino for robotics:
Machine Learning
Machine learning algorithms, inspired by the human learning process, iteratively learn from data and allow computers to find hidden insights. These models help us in many tasks such as object recognition, estimation, summarization, and so on.
There are some major machine learning techniques:
Regression / Estimation
This is used for predicting a continuous value.
Sequence Mining
This is used for predicting the next events.
Classification
This technic is used for determining the category of a case.
Clustering
Clustering is used to group similar cases together. It is a summarization.
Dimension Reduction
This technic is used for reducing the size of data (PCA)
Associations
Association technics are used for finding items or events that co-occur
Anomaly Detection
This is used for detecting unusual cases
Recommendation Systems
And, finally, recommendation systems are used for recommending items.
Artificial Intelligence, Machine Learning, Deep Learning
As these are very popular terms in today's world. These concepts can get confused with each other. Let's explain them in order to get rid of any confusion that may occur. First of all, Artificial Intelligence is a general field with a broad scope including; computer vision, language processing, creativity, and summarization.
Machine Learning is a sub-category of Artificial Intelligence that covers the statistical part of artificial intelligence. It will teach computers to solve problems by looking at hundreds of examples.
Deep learning, on the other hand, is a subset of machine learning that is essentially a three-layer neural network. These neural networks aim to imitate the activity of the human brain by enabling it to "learn" from enormous quantities of data, albeit they fall well short of its capabilities.
Machine Learning with Python
Python's simplicity and consistency, flexibility, access to sophisticated AI and machine learning (ML) modules and frameworks, platform freedom, and vast communities make it the ideal choice for machine learning and AI-driven applications. These factors also contribute to the language's popularity.
Let us introduce the packages that are used in Machine Learning in Python;
NumPy
This is a math library to work with n-dimensional arrays. It allows you to do computations quickly and effectively. Because of its incredible capabilities, it is superior to normal Python. Numpy, for example, is required for dealing with arrays, dictionaries, functions, data types, and pictures.
SciPi
Signal processing, optimization, statistics, and many more domains are covered by SciPy's numerical methods and domain-specific toolboxes. SciPy is a useful package for doing scientific and high-performance computations.
Matplotlib
Matplotlib is a widely used plotting software that supports both 2D and 3D charting.
Pandas
Pandas is a high-level Python library that provides high-performance data structures that are simple to use. It provides a lot of data import, manipulation, and analysis tools. It includes data structures and methods for manipulating numerical tables and time series, in particular.
Scikit-learn
Scikit-learn is a set of machine learning algorithms and tools.