My First Machine learning program
In This Blog , I will explain for you how to write your first classifier in machine learning
Before we start , let’s explain what is really machine learning , types of machine learning and famous uses cases of it
What is machine learning ?
Machine learning is type of artificial intelligence (AI) that allows software programs to become more accurate in predicting outcomes without being explicitly programmed
Machine learning is the science of creating algorithms and program which learn on their own , they do not need human to become better
This image explain the Process of Machine learning program
Types of Machine learning :
There are two types of machine learning :
Supervised learning :
Supervised learning is the process to learn by examples , uses known data called “Training data set” , to make predictions , after training our model , we will generate a function that maps the input to desired output
There is 3 steps for Creating Supervised Learning Model :
- Build the Model
- Train the Model
- Test the Model
And there is 2 Types of Supervised learning :
. “Classification” : we train our model how to classify something into some class
This is the List of famous algorithms used for classification :
- Support vector machines (SVM)
- Naïve Bayes classifier.
- Decision trees
- Nearest neighbors (KNN)
- Neural Networks
- ……
“Regression” : we use regression when we need to deal with data that the output value is real value such as “Age” , “Weight” , “House Price “ etc …
There are many famous algorithms used for Regression :
- Linear regression
- Nonlinear regression
- Generalized linear models
- Support Vector Regression (SVR)
- Back-Propagation Neural Network (BPNN)
- Partial Least Squares (PLS)
- Multiple Linear Regression (MLR)
Unsupervised Learning :
Unsupervised learning is the process to discover hidden patterns in data ,
It differed from supervised learning the labels are not given , our machine should learn through observation
Unsupervised leaning problems can be divided into clustering and associations
Clustering : is type of unsupervised learning that refers to segmentation and learning about characteristics in the data through algorithms
There are many algorithms used for Clustering :
- K-Means Clustering
- Hierarchical Clustering
- Density based Clustering
Association : “is the process to train our machine to discover rules that describe large points of data “
Use Cases of Machine learning :
There are many useful uses cases of Machine learning Now Days , some of them are :
- Spam Filters
- Recommendation System
- Chatbots
- fraud detection
- Self-Drive Cars
- Self-Drive Drone
- Image Recognition
- Speech Recognition
- Object Detection
- Cancer Detection
- and many other …..
This BuzzWord “Machine learning “touch every aspect of our lives , we deal with it without being consciously about it .
We don’t ask ourselves how the Youtube Recommendation videos work .
How Facebook friends suggestion find us ,
Or how we find related answers in Quora ,
Part2:
In this part , I will explain for you how to write your first Ml classifier with python and sickit-learn
Before we start , you should have python 3.x or 2.x installed in your Computer
check by taping python in terminal
python
What is Sickit-learn ?
sickit-learn is a machine leaning library for the python programming language , it was initially developed by “David Cournapeau” as a Google summer of code project in 2007.
We need to install Sickit-learn and required modules by following this commands :
sudo apt-get update
sudo apt-get install --no-install-recommends python2.7-minimal python2.7
sudo apt-get install python-numpy python-scipypip install -U scikit-learn
Now After installing the necessary packages and libraries , let’s start creating our first classifier :
we will create a program that can predict an image which digit it represents
Loading our Dataset
#import our datasest from sklearn
from sklearn import datasets
# Load in the `digits` data
digits = datasets.load_digits()
# Print the `digits` data
print(digits.data)
What is dataset ?
“ dataset is a dictionary-like object that holds all the data and some metadata about the data”
Learning and Predicting
#import our Classifier avalaible
from sklearn.svm import SVC
# Create a classifier: a support vector classifier
classifier = SVC(gamma=0.001)
for predicting we will use the SUPPORT VECTOR MACHINE algorithm
# turn the data in a (samples, feature) matrix:
n_samples = len(digits.images)
data = digits.images.reshape((n_samples, -1))
Train our Model with the “fit method”,
# We train our model with the first half of data
classifier.fit(data[:n_samples // 2], digits.target[:n_samples // 2])
Now we will test our classifier by predicting the second half of our data
expected = digits.target[n_samples // 2:]
predicted = classifier.predict(data[n_samples // 2:])
Now let’s Evaluate our model
print("Classification report for classifier %s:\n%s\n"
% (classifier, metrics.classification_report(expected, predicted)))
print("Confusion matrix:\n%s" % metrics.confusion_matrix(expected, predicted))
I hope that was helpful ! you can find the full code here and you can Follow me in Twitter to check updates about code