Summer Training Report
Summer Training Report
ON
“machine learning”
Submitted By-
RAJIV SINGH
Enrollment Number:- 01614807321
I hereby declare that the Training Report is an authentic record of my own work as
requirements of 6 weeks Training during the period from 8 August 2022 to 19 September
2022 for the award of degree of B.Tech. (Electronics and Communication Engineering),
GGSIPU.
RAJIV SINGH
ENROLL. NO:- 01614807321
DATE: 28/09/2022
Certified that the above statement made by the student is correct to the best of our
knowledge and belief.
Signature
Examined by:
(Faculty Coordinator)
Head of Department
(Signature and Seal)
ACKNOWLEDGEMENT
The successful accomplishment of any project requires the guidance and efforts of many
people. I would like to express my sincere thanks of gratitude of all the people who gave their
valuable contributions in the completion of this project.
I am grateful to Internshala for providing me the opportunity to do the training and project. I
am extremely thankful to my mentors, for formulating the course curriculum in a very
simplified and efficient way.
Without their expertise, support and guidance, the project would not have been a success.
I would also like to acknowledge the efforts of Mr. R.K. Choudhary, Faculty Coordinator for a
constant motivation and valuable suggestions.
Although it is not possible to name individually, I shall ever remain indebted to the faculty
members of MAHARAJA AGRASEN INSTITUTE OF TECHNOLOGY, NEW DELHI for their
persistent support and cooperation extended during this work.
This acknowledgement will remain incomplete if I fail to express my deep sense of obligation
to my parents and God for their consistent blessings and encouragement.
RAJIV SINGH
ECE- 01614807321
MAIT, ROHINI
1
Introduction
Machine Learning is the science of getting computers to learn without being explicitly
programmed. It is closely related to computational statistics, which focuses on making
prediction using computer. In its application across business problems, machine learning is
also referred as predictive analysis. Machine Learning is closely related to computational
statistics. Machine Learning focuses on the development of computer programs that can access
data and use it to learn themselves. The process of learning begins with observations or data,
such as examples, direct experience, or instruction, in order to look for patterns in data and
make better decisions in the future based on the examples that we provide. The primary aim is
to allow the computers learn automatically without human intervention or assistance and adjust
actions accordingly.
The name machine learning was coined in 1959 by Arthur Samuel. Tom M. Mitchell provided
a widely quoted, more formal definition of the algorithms studied in the machine learning
field: "A computer program is said to learn from experience E with respect to some class of
tasks T and performance measure P if its performance at tasks in T, as measured by P,
improves with experience E." This follows Alan Turing's proposal in his paper "Computing
Machinery and Intelligence", in which the question "Can machines think?" is replaced with
the question "Can machines do what we (as thinking entities) can do?". In Turing’s proposal
the characteristics that could be possessed by a thinking machine and the various implications
in constructing one are exposed.
The types of machine learning algorithms differ in their approach, the type of data they input
and output, and the type of task or problem that they are intended to solve. Broadly Machine
Learning can be categorized into four categories.
2
I. Supervised Learning
II. Unsupervised Learning
III. Reinforcement Learning
IV. Semi-supervised Learning
Machine learning enables analysis of massive quantities of data. While it generally delivers
faster, more accurate results in order to identify profitable opportunities or dangerous risks, it
may also require additional time and resources to train it properly.
3
Supervised Learning
Supervised Learning is a type of learning in which we are given a data set and we already know
what are correct output should look like, having the idea that there is a relationship between the
input and output. Basically, it is learning task of learning a function that maps an input to an
output based on example input- output pairs. It infers a function from labeled training data
consisting of a set of training examples. Supervised learning problems are categorized.
Unsupervised Learning
Unsupervised Learning is a type of learning that allows us to approach problems with little or
no idea what our problem should look like. We can derive the structure by clustering the data
based on a relationship among the variables in data. With unsupervised learning there is no
feedback based on prediction result. Basically, it is a type of self-organized learning that helps
in finding previously unknown patterns in data set without pre-existing label.
Reinforcement Learning
Reinforcement learning is a learning method that interacts with its environment by producing
actions and discovers errors or rewards. Trial and error search and delayed reward are the most
relevant characteristics of reinforcement learning. This method allows machines and software
agents to automatically determine the ideal behavior within a specific context in order to
maximize its performance. Simple reward feedback is required for the agent to learn which
action is best.
Semi-Supervised Learning
Semi-supervised learning fall somewhere in between supervised and unsupervised learning,
since they use both labeled and unlabeled data for training – typically a small amount of labeled
data and a large amount of unlabeled data. The systems that use this method are able to
considerably improve learning accuracy. Usually, semi-supervised learning is chosen when the
acquired labeled data requires skilled and relevant resources in order to train it / learn from it.
Otherwise, acquiring unlabeled data generally doesn’t require additional resources.
4
Literature Survey
Theory:-
A core objective of a learner is to generalize from its experience. The computational analysis
of machine learning algorithms and their performance is a branch of theoretical computer
science known as computational learning theory. Because training sets are finite and the future
is uncertain, learning theory usually does not yield guarantees of the performance of
algorithms. Instead, probabilistic bounds on the performance are quite common. The bias–
variance decomposition is one way to quantify generalization error.
For the best performance in the context of generalization, the complexity of the hypothesis
should match the complexity of the function underlying the data. If the hypothesis is less
complex than the function, then the model has underfit the data. If the complexity of the model
is increased in response, then the training error decreases. But if the hypothesis is too complex,
then the model is subject to overfitting and generalization will be poorer.
In addition to performance bounds, learning theorists study the time complexity and
feasibility of learning. In computational learning theory, a computation is considered feasible
if it can be done in polynomial time. There are two kinds of time complexity results. Positive
results show that a certain class of functions can be learned in polynomial time. Negative
results show that certain classes cannot be learned in polynomial time.
While there has been much progress in machine learning, there are also challenges. For
example, the mainstream machine learning technologies are black-box approaches, making us
concerned about their potential risks. To tackle this challenge, we may want to make machine
learning more explainable and controllable. As another example, the computational complexity
of machine learning algorithms is usually very high and we may want to invent lightweight
algorithms or implementations. Furthermore, in many domains such as physics, chemistry,
biology, and social sciences, people usually seek elegantly simple equations (e.g., the
5
Schrödinger equation) to uncover the underlying laws behind various phenomena. Machine
learning takes much more time. You have to gather and prepare data, then train the algorithm.
There are much more uncertainties. That is why, while in traditional website or application
development an experienced team can estimate the time quite precisely, a machine learning
project used for example to provide product recommendations can take much less or much
more time than expected. Why? Because even the best machine learning engineers don’t know
how the deep learning networks will behave when analyzing different sets of data. It also
means that the machine learning engineers and data scientists cannot guarantee that the training
process of a model can be replicated.
6
Applications of Machine Learning
Machine learning is one of the most exciting technologies that one would have ever come
across. As it is evident from the name, it gives the computer that which makes it more similar
to humans: The ability to learn. Machine learning is actively being used today, perhaps in many
more places than one would expect. We probably use a learning algorithm dozen of time
without even knowing it. Applications of Machine Learning include:
Web Search Engine: One of the reasons why search engines like google, bing, etc. work
so well is because the system has learnt how to rank pages through a complex learning
algorithm.
Photo tagging Applications: Be it facebook or any other photo tagging application, the
ability to tag friends makes it even more happening. It is all possible because of a face
recognition algorithm that runs behind the application.
Spam Detector: Our mail agent like Gmail or Hotmail does a lot of hard work for us in
classifying the mails and moving the spam mails to spam folder. This is again achieved by
a spam classifier running in the back end of mail application.
Future Scope
Future of Machine Learning is as vast as the limits of human mind. We can always keep
learning, and teaching the computers how to learn. And at the same time, wondering how some
of the most complex machine learning algorithms have been running in the back of our own
mind so effortlessly all the time. There is a bright future for machine learning. Companies like
Google, Quora, and Facebook hire people with machine learning. There is intense research in
machine learning at the top universities in the world. The global machine learning as a service
market is rising expeditiously mainly due to the Internet revolution. The process of connecting
the world virtually has generated vast amount of data which is boosting the adoption of
machine learning solutions. Considering all these applications and dramatic improvements that
ML has brought us, it doesn't take a genius to realize that in coming future we will definitely
see more advanced applications of ML, applications that will stretch the capabilities of
machine learning to an unimaginable level.
7
Organization of Training Workshop
Company Profile
DreamUny Education was created with a mission to create skilled software engineers for our
country and the world. It aims to bridge the gap between the quality of skills demanded by
industry and the quality of skills imparted by conventional institutes. With assessments,
learning paths and courses authored by industry experts, DreamUny helps businesses and
individuals benchmark expertise across roles, speed up release cycles and build reliable, secure
products.
Objectives
Main objectives of training were to
learn:
Methodologies:
There were several facilitation techniques used by the trainer which included question and
answer, brainstorming, group discussions, case study discussions and practical implementation
of some of the topics by trainees on flip charts and paper sheets. The multitude of training
methodologies was utilized in order to make sure all the participants get the whole concepts
and they practice what they learn, because only listening to the trainers can be forgotten, but
what the trainees do by themselves they will never forget. After the post-tests were
administered and the final course evaluation forms were filled in by the participants, the trainer
8
expressed his closing remarks and reiterated the importance of the training for the trainees in
their daily activities and their readiness for applying the learnt concepts in their assigned tasks.
Certificates of completion were distributed among the participants at the end.
9
10
Python is a widely used general-purpose, high level programming language. It was
initially designed by Guido van Rossum in 1991 and developed by Python Software
Foundation. It was mainly developed for an emphasis on code readability, and its syntax
allows programmers to express concepts in fewer lines of code. Python is dynamically typed
and garbage-collected. It supports multiple programming paradigms, including procedural,
object-oriented, and functional programming. Python is often described as a "batteries
included" language due to its comprehensive standard library.
Interpreted
In Python there is no separate compilation and execution steps like C/C++. It directly run the program
from the source code. Internally, Python converts the source code into an intermediate form called
bytecodes which is then translated into native language of specific computer to run it.
Platform Independent
Python programs can be developed and executed on the multiple operating system platform. Python can
be used on Linux, Windows, Macintosh, Solaris and many more.
Multi- Paradigm
Python is a multi-paradigm programming language. Object-oriented programming and structured
programming are fully supported, and many of its features support functional programming and aspect-
oriented programming .
Rich Library Support
Python standard library is very vast. It can help to do various things involving regular expressions,
documentation generation, unit testing, threading, databases, web browsers, CGI, email, XML, HTML,
WAV files, cryptography, GUI and many more.
Free and Open Source
Firstly, Python is freely available. Secondly, it is open-source. This means that its source code is available
to the public. We can download it, change it, use it, and distribute it. This is called FLOSS (Free/Libre and
Open Source Software). As the Python community, we’re all headed toward one goal- anever-bettering
Python.
11
Why Python Is a Perfect Language for Machine Learning?
12
3. Flexibility-
Python for machine learning is a great choice, as this language is very flexible:
It offers an option to choose either to use OOPs or scripting.
There’s also no need to recompile the source code, developers can implement any
changes and quickly see the results.
Programmers can combine Python and other languages to reach their goals.
5. Community Support-
It’s always very helpful when there’s strong community support built around the programming
language. Python is an open-source language which means that there’s a bunch of resources open for
programmers starting from beginners and ending with pros. A lot of Python documentation isavailable
online as well as in Python communities and forums, where programmers and machine learning
developers discuss errors, solve problems, and help each other out. Python programming language is
absolutely free as is the variety of useful libraries and tools.
6. Growing Popularity-
As a result of the advantages discussed above, Python is becoming more and more popular among data
scientists. According to Stack Overflow, the popularity of Python is predicted to grow until 2020, at
least. This means it’s easier to search for developers and replace team players if required. Also, thecost
of their work maybe not as high as when using a less popular programming language.
13
Machine Learning algorithms don’t work so well with processing raw data. Before we can
feed such data to an ML algorithm, we must preprocess it. We must apply some
transformations on it. With data preprocessing, we convert raw data into a clean data set.
To perform data this, there are 7 techniques -
1. Rescaling Data -
For data with attributes of varying scales, we can rescale attributes to possess the same
scale. We rescale attributes into the range 0 to 1 and call it normalization. We use the Min-
Max Scaler class from scikit- learn. This gives us values between 0 and 1.
2. Standardizing Data -
With standardizing, we can take attributes with a Gaussian distribution and different means
and standard deviations and transform them into a standard Gaussian distribution with a
mean of 0 and a standard deviation of 1.
3. Normalizing Data -
In this task, we rescale each observation to a length of 1 (a unit norm). For this, we use the
Normalizer class.
4. Binarizing Data -
Using a binary threshold, it is possible to transform our data by marking the values above
it 1 and those equal to or below it, 0. For this purpose, we use the Binarizer class.
5. Mean Removal-
We can remove the mean from each feature to center it on zero.
14
6. One Hot Encoding -
When dealing with few and scattered numerical values, we may not need to store these.
Then, we can perform One Hot Encoding. For k distinct values, we can transform the
feature into a k-dimensional vector with one value of 1 and 0 as the rest values.
7. Label Encoding -
Some labels can be words or numbers. Usually, training data is labelled with words to make
it readable. Label encoding converts word labels into numbers to let algorithms work on
them.
15
There are many types of Machine Learning Algorithms specific to different use cases. As we
work with datasets, a machine learning algorithm works in two stages. We usually split the
data around 20%-80% between testing and training stages. Under supervised learning, we split
a dataset into a training data and test data in Python ML. Followings are the Algorithms of
Python Machine Learning -
1. Linear Regression-
Linear regression is one of the supervised Machine learning algorithms in Python that observes
continuous features and predicts an outcome. Depending on whether it runs on a single variable
or on many features, we can call it simple linear regression or multiple linear regression.
This is one of the most popular Python ML algorithms and often under-appreciated. It assigns
optimal weights to variables to create a line ax+b to predict the output. We often use linear
regression to estimate real values like a number of calls and costs of houses based on
continuous variables. The regression line is the best line that fits Y=a*X+b to denote a
relationship between independent and dependent variables.
16
2. Logistic Regression -
17
3. Decision Tree -
A decision tree falls under supervised Machine Learning Algorithms in Python and comes of
use for both classification and regression- although mostly for classification. This model takes
an instance, traverses the tree, and compares important features with a determined conditional
statement. Whether it descends to the left child branch or the right depends on the result.
Usually, more important features are closer to the root.
Decision Tree, a Machine Learning algorithm in Python can work on both categorical and
continuous dependent variables. Here, we split a population into two or more homogeneous
sets. Tree models where the target variable can take a discrete set of values are called
classification trees; in these tree structures, leaves represent class labels and branches represent
conjunctions of features that lead to those class labels. Decision trees where the target variable
can take continuous values (typically real numbers) are called regression trees.
18
5. Naïve Bayes Algorithm -
Naive Bayes is a classification method which is based on Bayes’ theorem. This assumes
independence between predictors. A Naive Bayes classifier will assume that a feature in a class
is unrelated to any other. Consider a fruit. This is an apple if it is round, red, and 2.5 inches in
diameter. A Naive Bayes classifier will say these characteristics independently contribute to
the probability of the fruit being an apple. This is even if features depend on each other. For
very large data sets, it is easy to build a Naive Bayesian model. Not only is this model very
simple, it performs better than many highly sophisticated classification methods. Naïve Bayes
classifiers are highly scalable, requiring a number of parameters linear in the number of
variables (features/predictors) in a learning problem. Maximum-likelihood training can be
done by evaluating a closed-form expression, which takes linear time, rather than by expensive
iterative approximation as used for many other types of classifiers.
19
6. kNN Algorithm -
This is a Python Machine Learning algorithm for classification and regression- mostly for
classification. This is a supervised learning algorithm that considers different centroids and
uses a usually Euclidean function to compare distance. Then, it analyzes the results and
classifies each point to the group to optimize it to place with all closest points to it. It classifies
new cases using a majority vote of k of its neighbors. The case it assigns to a class is the one
most common among its K nearest neighbors. For this, it uses a distance function. k-NN is a
type of instance-based learning, or lazy learning, where the function is only approximated
locally and all computation is deferred until classification. k-NN is a special case of a variable-
bandwidth, kernel density "balloon" estimator with a uniform kernel.
20
7. K-Means Algorithm -
k-Means is an unsupervised algorithm that solves the problem of clustering. It classifies data
using a number of clusters. The data points inside a class are homogeneous and heterogeneous
to peer groups. k-means clustering is a method of vector quantization, originally from signal
processing, that is popular for cluster analysis in data mining. k-means clustering aims to
partition n observations into k clusters in which each observation belongs to the cluster with
the nearest mean, serving as a prototype of the cluster. k-means clustering is rather easy to
apply to even large data sets, particularly when using heuristics such as Lloyd's algorithm. It
often is used as a preprocessing step for other algorithms, for example to find a starting
configuration. The problem is computationally difficult (NP-hard). k-means originates from
signal processing, and still finds use in this domain. In cluster analysis, the k-means algorithm
can be used to partition the input data set into k partitions (clusters). k-means clustering has
been used as a feature learning (or dictionary learning) step, in either (semi-)supervised
learning or unsupervised learning.
21
8. Random Forest -
A random forest is an ensemble of decision trees. In order to classify every new object based
on its attributes, trees vote for class- each tree provides a classification. The classification with
the most votes wins in the forest. Random forests or random decision forests are an ensemble
learning method for classification, regression and other tasks that operates by constructing a
multitude of decision trees at training time and outputting the class that is the mode of the
classes (classification) or mean prediction (regression) of the individual trees.
22
23
RESULT
This training has introduced us to Machine Learning. Now, we know that Machine Learning
is a technique of training machines to perform the activities a human brain can do, albeit bit
faster and better than an average human-being. Today we have seen that the machines can beat
human champions in games such as Chess, Mahjong, which are considered very complex. We
have seen that machines can be trained to perform human activities in several areas and can
aid humans in living better lives. Machine learning is quickly growing field in computer
science. It has applications in nearly every other field of study and is already being
implemented commercially because machine learning can solve problems too difficult or time
consuming for humans to solve. To describe machine learning in general terms, a variety
models are used to learn patterns in data and make accurate predictions based on the patterns
it observes.
Finally, when it comes to the development of machine learning models of our own, we looked
at the choices of various development languages, IDEs and Platforms. Next thing that we need
to do is start learning and practicing each machine learning technique.
2324
The subject is vast, it means that there is width, but if we consider the depth, each topic can be
learned in a few hours. Each topic is independent of each other. We need to take into
consideration one topic at a time, learn it, practice it and implement the algorithm/s in it using
a language choice of yours. This is the best way to start studying Machine Learning. Practicing
one topic at a time, very soon we can acquire the width that is eventually required of a Machine
Learning expert.
25
23
26
23
Advantages of Machine Learning
Every coin has two faces, each face has its own property and features. It’s time to uncover the
faces of ML.
A very powerful tool that holds the potential to revolutionize the way things work.
3. Continuous Improvement -
As ML algorithms gain experience, they keep improving in accuracy and efficiency. This lets
them make better decisions. Say we need to make a weather forecast model. As the amount of
data, we have keeps growing, our algorithms learn to make more accurate predictions faster.
27
5. Wide Applications -
We could be an e-seller or a healthcare provider and make ML work for us. Where it does
apply, it holds the capability to help deliver a much more personal experience to customers
while also targeting the right customers.
2728
Disadvantages of Machine Learning
With all those advantages to its powerfulness and popularity, Machine Learning
isn’t perfect. The following factors serve to limit it-
1. Data Acquisition -
Machine Learning requires massive data sets to train on, and these should be
inclusive/unbiased, and of good quality. There can also be times where they
must wait for new data to be generated.
3. Interpretation of Results -
Another major challenge is the ability to accurately interpret results generated
by the algorithms. We must also carefully choose the algorithms for your
purpose.
4. High error-susceptibility -
Machine Learning is autonomous but highly susceptible to errors. Suppose you
train an algorithm with data sets small enough to not be inclusive. You end up
with biased predictions coming from a biased training set. This leads to
irrelevant advertisements being displayed to customers. In the case of ML, such
blunders can set off a chain of errors that can go undetected for long periods
of time. And when they do get noticed, it takes quite some time to recognize
the source of the issue, and even longer to correct it.
29
36
Applications of Machine
Learning
Applications of Machine Learning include:
Web Search Engine: One of the reasons why search engines like
google, bing etc work so well is because the system has learnt how to
rank pages through a complex learning algorithm.
Spam Detector: Our mail agent like Gmail or Hotmail does a lot of
hard work for us in classifying the mails and moving the spam mails
to spam folder. This is again achieved by a spam classifier running in
the back end of mail application.
3630
Understanding Human Learning: This is the closest we have
understood and mimicked the human brain. It is the start of a new
revolution, The real AI. Now, after a brief insight lets come to a more
formal definition of Machine Learning.
36
31
https://expertsystem.com/
https://www.geeksforgeeks.org/
https://www.wikipedia.org/
https://www.coursera.org/learn/machine-learning
https://machinelearningmastery.com/
https://towardsdatascience.com/machine-learning/home
36
32