
Italian: 
 Ciao a tutti, sono Zulaikha di Edureka, 
 e vi do il benvenuto a questa sessione 
 sull'intelligenza artificiale corso completo. 
 In questo video, coprirò 
 tutti i domini e i concetti 
 coinvolto sotto l'ombrello dell'intelligenza artificiale, 
 e ti mostrerò anche un paio di casi d'uso 
 e implementazioni pratiche utilizzando Python. 
 Quindi c'è molto da trattare in questa sessione, 
 e lascia che ti guidi rapidamente attraverso l'agenda di oggi. 
 Quindi inizieremo la sessione 
 comprendendo la storia dell'intelligenza artificiale 
 e come è nato. 
 Lo seguiremo guardando 
 perché adesso parliamo di intelligenza artificiale, 
 perché è diventato così famoso in questo momento. 
 Quindi vedremo cos'è esattamente l'intelligenza artificiale. 
 Discuteremo le applicazioni dell'intelligenza artificiale, 
 dopodiché discuteremo le basi dell'IA 
 dove capiremo 

English: 
Hi everyone,
this is Zulaikha from Edureka,
and I welcome you to this session
on Artificial Intelligence full course.
In this video, I'll be covering
all the domains and the concepts
involved under the umbrella
of artificial intelligence,
and I will also be showing
you a couple of use cases
and practical implementations
by using Python.
So there's a lot to cover in this session,
and let me quickly run you
through today's agenda.
So we're gonna begin the session
by understanding the history
of artificial intelligence
and how it cam into existence.
We'll follow this by looking at
why we're talking about
artificial intelligence now,
why has it gotten so famous right now.
Then we'll look at what exactly
is artificial intelligence.
We'll discuss the applications
of artificial intelligence,
after which we'll discuss the basics of AI
where in we'll understand

English: 
the different types of
artificial intelligence.
We'll follow this by understanding
the different programming languages
that can be used to study AI.
And we'll understand why
we're gonna choose Python.
Alright, I'll introduce you to Python.
And then we'll move on and
discuss machine learning.
Here we'll discuss the different
types of machine learning,
the different algorithms
involved in machine learning,
which include classification algorithms,
regression algorithms, clustering,
and association algorithms.
To make you understand
machine learning better,
we'll run a couple of demos
wherein we'll see how
machine learning algorithms
are used to solve real world problems.
After that, we'll discuss
the limitations of machine learning
and why deep learning is needed.
I'll introduce you to the
deep learning concept,
what are neurons, perceptrons,
multiple layer perceptrons and so on.
We'll discuss the different
types of neural networks,
and we'll also look at what
exactly back propagation is.
Apart from this, we'll be running a demo
to understand deep learning in more depth.
And finally we'll move
onto the next module,
which is natural language processing.
On the natural language processing,

Italian: 
 i diversi tipi di intelligenza artificiale. 
 Lo seguiremo comprendendo 
 i diversi linguaggi di programmazione 
 che può essere utilizzato per studiare l'IA. 
 E capiremo perché sceglieremo Python. 
 Va bene, ti presenterò Python. 
 E poi andremo avanti e discuteremo dell'apprendimento automatico. 
 Qui discuteremo i diversi tipi di machine learning, 
 i diversi algoritmi coinvolti nell'apprendimento automatico, 
 che includono algoritmi di classificazione, 
 algoritmi di regressione, clustering, 
 e algoritmi di associazione. 
 Per farti capire meglio l'apprendimento automatico, 
 eseguiremo un paio di demo 
 in cui vedremo come algoritmi di apprendimento automatico 
 vengono utilizzati per risolvere problemi del mondo reale. 
 Dopo di che, discuteremo 
 i limiti dell'apprendimento automatico 
 e perché è necessario il deep learning. 
 Ti presenterò il concetto di deep learning, 
 cosa sono i neuroni, i percettroni, 
 perceptrons a più strati e così via. 
 Discuteremo i diversi tipi di reti neurali, 
 e vedremo anche cos'è esattamente la propagazione all'indietro. 
 Oltre a questo, eseguiremo una demo 
 per comprendere il deep learning in modo più approfondito. 
 E finalmente passeremo al modulo successivo, 
 che è l'elaborazione del linguaggio naturale. 
 Sull'elaborazione del linguaggio naturale, 

English: 
we'll try to understand
what is text mining,
the difference between text mining in NLP,
what are the different
terminologies in NLP,
and we'll end the session by looking at
the practical implementation
of NLP using Python, alright.
So guys, there's a lot to
cover in today's session.
Also, if you want to stay updated
about the recent technologies,
and would like to learn more
about the training technology,
make sure you subscribe
to our YouTube channel
to never miss out on such sessions.
So let's move ahead and take
a look at our first topic
which is history of
artificial intelligence.
So guys, the concept of
artificial intelligence
goes back to the classical ages.
Under Greek mythology,
the concept of machines and mechanical men
were well thought of.
So, an example of this is Talos.
I don't know how many of
you have heard of this.
Talos was a giant animated bronze warrior
who was programmed to
guard the island of Crete.
Now these are just ideas.
Nobody knows if this was
actually implemented,
but machine learning and AI
were thought of long ago.

Italian: 
 proveremo a capire cos'è il text mining, 
 la differenza tra il text mining in NLP, 
 quali sono le diverse terminologie in PNL, 
 e finiremo la sessione guardando 
 l'implementazione pratica della PNL usando Python, va bene. 
 Quindi ragazzi, c'è molto da coprire nella sessione di oggi. 
 Inoltre, se vuoi rimanere aggiornato 
 sulle recenti tecnologie, 
 e vorrei saperne di più sulla tecnologia di formazione, 
 assicurati di iscriverti al nostro canale YouTube 
 per non perdere mai queste sessioni. 
 Quindi andiamo avanti e diamo un'occhiata al nostro primo argomento 
 che è la storia dell'intelligenza artificiale. 
 Quindi ragazzi, il concetto di intelligenza artificiale 
 risale all'età classica. 
 Sotto la mitologia greca, 
 il concetto di macchine e uomini meccanici 
 erano ben pensati. 
 Quindi, un esempio di questo è Talos. 
 Non so quanti di voi ne abbiano sentito parlare. 
 Talos era un gigantesco guerriero di bronzo animato 
 che è stato programmato per proteggere l'isola di Creta. 
 Queste sono solo idee. 
 Nessuno sa se questo è stato effettivamente implementato, 
 ma l'apprendimento automatico e l'intelligenza artificiale sono stati pensati molto tempo fa. 

English: 
Now let's get back to the 19th century.
Now 1950 was speculated to be
one of the most important years
for the introduction of
artificial intelligence.
In 1950, Alan Turing published a paper
in which he speculated
about the possibility
of creating machines that think.
So he created what is
known as the Turing test.
This test is basically used to determine
whether or not a computer
can think intelligently
like a human being.
He noted that thinking
is difficult to define
and devised his famous Turing test.
So, basically, if a machine
can carry out a conversation
that was indistinguishable
from a conversation with a human being,
it was reasonable to say
that the machine is thinking,
meaning that the machine
will pass the Turing test.
Now, unfortunately, up to this date,
we haven't found a machine
that has fully cleared
the Turing test.
So, the Turing test was actually
the first serious proposal
in the philosophy of
artificial intelligence.

Italian: 
 Ora torniamo al XIX secolo. 
 Ora si ipotizzava che il 1950 fosse 
 uno degli anni più importanti 
 per l'introduzione dell'intelligenza artificiale. 
 Nel 1950 Alan Turing pubblicò un articolo 
 in cui ha speculato sulla possibilità 
 di creare macchine che pensano. 
 Così ha creato quello che è noto come il test di Turing. 
 Questo test è fondamentalmente utilizzato per determinare 
 se un computer può pensare in modo intelligente o meno 
 come un essere umano. 
 Ha notato che il pensiero è difficile da definire 
 e ha ideato il suo famoso test di Turing. 
 Quindi, fondamentalmente, se una macchina può effettuare una conversazione 
 quello era indistinguibile 
 da una conversazione con un essere umano, 
 era ragionevole dire che la macchina sta pensando, 
 il che significa che la macchina supererà il test di Turing. 
 Ora, sfortunatamente, fino a questa data, 
 non abbiamo trovato una macchina che sia completamente azzerata 
 il test di Turing. 
 Quindi, il test di Turing è stata in realtà la prima proposta seria 
 nella filosofia dell'intelligenza artificiale. 

English: 
Followed by this was the era of 1951.
This was also known as the game AI.
So in 1951, by using the
Ferranti Mark 1 machine
of the University of Manchester,
a computer scientist known
as Christopher Strachey
wrote a checkers program.
And at the same time,
a program was written for chess as well.
Now, these programs were
later improved and redone,
but this was the first attempt
at creating programs that could play chess
or that would compete with
humans in playing chess.
This is followed by the year 1956.
Now, this is probably
the most important year
in the invention of AI.
Because in 1956, for the firs time,
the term artificial
intelligence was coined.
Alright.
So the term artificial intelligence
was coined by John McCarthy
at the Dartmouth Conference in 1956.
Coming to the year 1959,
the first AI laboratory was established.
This period marked the
research era for AI.
So the first AI lab where
research was performed
is the MIT lab,

Italian: 
 Seguì l'era del 1951. 
 Questo è stato anche conosciuto come il gioco AI. 
 Così nel 1951, utilizzando la macchina Ferranti Mark 1 
 dell'Università di Manchester, 
 uno scienziato informatico noto come Christopher Strachey 
 ha scritto un programma di dama. 
 E allo stesso tempo, 
 è stato scritto anche un programma per gli scacchi. 
 Ora, questi programmi sono stati successivamente migliorati e rifatti, 
 ma questo è stato il primo tentativo 
 a creare programmi che potessero giocare a scacchi 
 o che competerebbe con gli umani nel giocare a scacchi. 
 Segue l'anno 1956. 
 Questo è probabilmente l'anno più importante 
 nell'invenzione dell'IA. 
 Perché nel 1956, per la prima volta, 
 è stato coniato il termine intelligenza artificiale. 
 Tutto a posto. 
 Quindi il termine intelligenza artificiale 
 è stato coniato da John McCarthy 
 alla Conferenza di Dartmouth nel 1956. 
 Venendo all'anno 1959, 
 è stato istituito il primo laboratorio di intelligenza artificiale. 
 Questo periodo ha segnato l'era della ricerca per l'IA. 
 Quindi il primo laboratorio di intelligenza artificiale in cui è stata eseguita la ricerca 
 è il laboratorio del MIT, 

Italian: 
 che è ancora in corso fino alla data. 
 Nel 1960 fu introdotto il primo robot 
 alla catena di montaggio della General Motors. 
 Nel 1961 fu inventato il primo chatbot. 
 Ora abbiamo Siri, abbiamo Alexa. 
 Ma nel 1961, 
 c'era un chatbot noto come Eliza, 
 che è stato introdotto. 
 Questo è seguito dal famoso IBM Deep Blue. 
 Nel 1997 si diffuse la notizia 
 che Deep Blue di IBM batte il campione del mondo, 
 Garry Kasparov, nel gioco degli scacchi. 
 Quindi questo è stato il primo risultato dell'IA. 
 È stato in grado di battere il campione del mondo a scacchi. 
 Quindi nel 2005, quando si tenne la DARPA Grand Challenge, 
 un'auto robotica di nome Stanley, 
 che è stato costruito dal team corse di Stanford, 
 ha vinto la DARPA Grand Challenge. 
 Questo è stato un altro grande risultato dell'IA. 
 Nel 2011, il sistema di risposta alle domande di IBM, Watson, 
 sconfitto i due più grandi campioni di Jeopardy, 
 Brad Rutter e Ken Jennings. 

English: 
which is still running til date.
In 1960, the first robot was introduced
to the General Motors assembly line.
In 1961, the first chatbot was invented.
Now we have Siri, we have Alexa.
But in 1961,
there was a chatbot known as Eliza,
which was introduced.
This is followed by the
famous IBM Deep Blue.
In 1997, the news broke down
that IBM's Deep Blue
beats the world champion,
Garry Kasparov, in the game of chess.
So this was kind of the
first accomplishment of AI.
It was able to beat the
world champion at chess.
So in 2005, when the DARPA
Grand Challenge was held,
a robotic car named Stanley,
which was built by Stanford's racing team,
won the DARPA Grand Challenge.
That was another big accomplish of AI.
In 2011, IBM's question
answering system, Watson,
defeated the two greatest
Jeopardy champions,
Brad Rutter and Ken Jennings.

Italian: 
 Quindi ragazzi, è così che si è evoluta l'IA. 
 È iniziato come una situazione ipotetica. 
 In questo momento è la tecnologia più importante 
 nel mondo di oggi. 
 Se ti guardi intorno ovunque, 
 tutto ciò che ci circonda è gestito attraverso il deep learning dell'IA 
 o machine learning. 
 Quindi, dall'emergere dell'IA negli anni '50, 
 abbiamo effettivamente assistito a una crescita esponenziale 
 e il suo potenziale. 
 Quindi l'IA copre domini come il machine learning, 
 apprendimento profondo, reti neurali, 
 elaborazione del linguaggio naturale, 
 sistemi esperti, basati sulla conoscenza e così via. 
 È anche entrato nella visione artificiale 
 e l'elaborazione delle immagini. 
 La domanda qui è se l'IA è stata qui 
 da oltre mezzo secolo, 
 perché improvvisamente ha guadagnato così tanta importanza? 
 Perché adesso parliamo di intelligenza artificiale? 
 Lascia che ti dica le ragioni principali della richiesta di AI. 
 Il primo motivo è quello che abbiamo 
 più potenza di calcolo ora. 
 Quindi, l'intelligenza artificiale richiede 
 molta potenza di calcolo. 
 Di recente sono stati fatti molti progressi 

English: 
So guys, this was how AI evolved.
It started off as a
hypothetical situation.
Right now it's the most
important technology
in today's world.
If you look around every where,
everything around us is run
through AI deep learning
or machine learning.
So since the emergence of AI in the 1950s,
we have actually seen
an exponential growth
and its potential.
So AI covers domains
such as machine learning,
deep learning, neural networks,
natural language processing,
knowledge based, expert systems and so on.
It is also made its way
into computer vision
and image processing.
Now the question here
is if AI has been here
for over half a century,
why has it suddenly
gain so much importance?
Why are we talking about
artificial intelligence now?
Let me tell you the main
reasons for the demand of AI.
The first reason is what we have
more computation power now.
So, artificial intelligence requires
a lot of computing power.
Recently, many advances have been made

Italian: 
 e vengono implementati modelli di deep learning complessi. 
 E una delle più grandi tecnologie 
 che lo hanno reso possibile sono le GPU. 
 Dato che ora abbiamo più potenza di calcolo, 
 è possibile per noi implementare l'AI 
 nei nostri aspetti quotidiani. 
 La seconda ragione più importante è quella 
 al momento disponiamo di molti dati. 
 Stiamo generando dati a un ritmo incommensurabile. 
 Stiamo generando dati attraverso i social media, 
 tramite dispositivi IoT. 
 In ogni modo possibile, ci sono molti dati. 
 Quindi dobbiamo trovare un metodo o una soluzione 
 che può aiutarci a elaborare così tanti dati, 
 e aiutaci a ricavare informazioni utili, 
 in modo da poter far crescere il business con l'aiuto dei dati. 
 Va bene, quindi, quel processo 
 è fondamentalmente intelligenza artificiale. 
 Quindi, per avere un utile agente AI 
 per prendere decisioni intelligenti 
 come dire quale articolo consigliare 
 il prossimo quando fai acquisti online, 
 o come classificare un oggetto da un'immagine. 
 L'intelligenza artificiale è addestrata su grandi set di dati, 
 e i big data ci consentono di farlo in modo più efficiente. 

English: 
and complex deep learning
models are deployed.
And one of the greatest technology
that made this possible are GPUs.
Since we have more
computational power now,
it is possible for us to implement AI
in our daily aspects.
Second most important reason is that
we have a lot of data at present.
We're generating data
at an immeasurable pace.
We are generating data
through social media,
through IoT devices.
Every possible way, there's a lot of data.
So we need to find a method or a solution
that can help us process this much data,
and help us derive useful insight,
so that we can grow business
with the help of data.
Alright, so, that process
is basically artificial intelligence.
So, in order to have a useful AI agent
to make smart decisions
like telling which item to recommend
next when you shop online,
or how to classify an
object from an image.
AI are trained on large data sets,
and big data enables us to
do this more efficiently.

Italian: 
 Il motivo successivo è che ora abbiamo algoritmi migliori. 
 In questo momento abbiamo algoritmi molto efficaci 
 che si basano sull'idea di reti neurali. 
 Le reti neurali non sono altro che 
 il concetto alla base del deep learning. 
 Poiché abbiamo algoritmi migliori 
 che può fare calcoli migliori 
 e calcoli più rapidi con maggiore precisione, 
 la domanda di AI è aumentata. 
 Un altro motivo è che università, governi, 
 startup e giganti della tecnologia stanno tutti investendo nell'intelligenza artificiale. 
 Ok, quindi aziende come Google, Amazon, 
 Facebook, Microsoft, 
 tutte queste società hanno investito molto 
 nell'intelligenza artificiale 
 perché credono che l'IA sia il futuro. 
 Quindi l'IA è in rapida crescita sia come campo di studio 
 e anche come economia. 
 Quindi, in realtà, questo è il momento giusto 
 per farti capire cos'è l'IA e come funziona. 
 Quindi andiamo avanti e capiamo 
 cos'è esattamente l'intelligenza artificiale. 
 Il termine intelligenza artificiale 
 è stato coniato per la prima volta nel 1956 da John McCarthy 
 alla conferenza di Dartmouth. 
 Ne ho già parlato prima. 

English: 
Next reason is now we
have better algorithms.
Right now we have very
effective algorithms
which are based on the
idea of neural networks.
Neural networks is nothing but
the concept behind deep learning.
Since we have better algorithms
which can do better computations
and quicker computations
with more accuracy,
the demand for AI has increased.
Another reason is that
universities, governments,
startup, and tech giants
are all investing in AI.
Okay, so companies like Google, Amazon,
Facebook, Microsoft,
all of these companies
have heavily invested
in artificial intelligence
because they believe
that AI is the future.
So AI is rapidly growing
both as a field of study
and also as an economy.
So, actually, this is the right time
for you to understand what
is AI and how it works.
So let's move on and understand
what exactly artificial intelligence is.
The term artificial intelligence
was first coined in the
year 1956 by John McCarthy
at the Dartmouth Conference.
I already mentioned this before.

Italian: 
 Era la nascita dell'IA nel 1956. 
 Ora, come ha definito l'intelligenza artificiale? 
 John McCarthy ha definito l'IA come scienza e ingegneria 
 di realizzare macchine intelligenti. 
 In altre parole, intelligenza artificiale 
 è la teoria e lo sviluppo dei sistemi informatici 
 in grado di eseguire attività 
 che normalmente richiedono intelligenza umana, 
 come la percezione visiva, il riconoscimento vocale, 
 processo decisionale e traduzione tra le lingue. 
 Quindi ragazzi, in un certo senso, l'IA è una tecnica per ottenere macchine 
 lavorare e comportarsi come esseri umani. 
 Nel resto del passato, l'intelligenza artificiale 
 è stato in grado di farlo 
 creando macchine e robot 
 che sono stati utilizzati in un'ampia gamma di campi, 
 inclusi sanità, robotica, marketing, 
 analisi aziendali e molti altri. 
 Con questo in testa, 
 parliamo di un paio di applicazioni dell'IA nel mondo reale, 
 in modo da capire quanto sia importante l'intelligenza artificiale 
 è nel mondo di oggi. 
 Ora, una delle applicazioni più famose 
 dell'intelligenza artificiale 

English: 
It was the birth of AI in the 1956.
Now, how did he define
artificial intelligence?
John McCarthy defined AI as
the science and engineering
of making intelligent machines.
In other words, artificial intelligence
is the theory and development
of computer systems
able to perform task
that normally require human intelligence,
such as visual perception,
speech recognition,
decision making, and
translation between languages.
So guys, in a sense, AI is a
technique of getting machines
to work and behave like humans.
In the rest past, artificial intelligence
has been able to accomplish this
by creating machines and robots
that have been used in
wide range of fields,
including healthcare, robotics, marketing,
business analytics, and many more.
With this in mind,
let's discuss a couple of
real world application of AI,
so that you understand how
important artificial intelligence
is in today's world.
Now, one of the most famous applications
of artificial intelligence

Italian: 
 è il motore di ricerca predittivo di Google. 
 Quando inizi a digitare un termine di ricerca 
 e Google ti offre consigli tra cui scegliere, 
 questa è l'intelligenza artificiale in azione. 
 Quindi le ricerche predittive si basano sui dati 
 che Google raccoglie su di te, 
 come la cronologia del browser, la posizione, 
 la tua età e altri dati personali. 
 Quindi, usando l'intelligenza artificiale, 
 Google tenta di indovinare cosa potresti cercare di trovare. 
 Adesso dietro a questo 
 c'è molta elaborazione del linguaggio naturale, 
 deep learning e machine learning coinvolti. 
 Discuteremo tutti questi concetti 
 nelle ulteriori diapositive. 
 Non è molto semplice creare un motore di ricerca, 
 ma la logica alla base del motore di ricerca di Google 
 è l'intelligenza artificiale. 
 Andando avanti, nel settore finanziario, 
 Piattaforma di intelligence sui contratti di JP Morgan Chase 
 utilizza l'apprendimento automatico, l'intelligenza artificiale, 
 e software di riconoscimento delle immagini 
 per analizzare documenti legali. 
 Ora lascia che ti dica che rivedere manualmente 
 circa 12.000 accordi hanno richiesto oltre 36.000 ore. 

English: 
is the Google predictive search engine.
When you begin typing a search term
and Google makes recommendations
for you to choose from,
that is artificial intelligence in action.
So predictive searches are based on data
that Google collects about you,
such as your browser
history, your location,
your age, and other personal details.
So by using artificial intelligence,
Google attempts to guess what
you might be trying to find.
Now behind this,
there's a lot of natural
language processing,
deep learning, and
machine learning involved.
We'll be discussing all of those concepts
in the further slides.
It's not very simple to
create a search engine,
but the logic behind Google search engine
is artificial intelligence.
Moving on, in the finance sector,
JP Morgan Chase's Contract
Intelligence Platform
uses machine learning,
artificial intelligence,
and image recognition software
to analyze legal documents.
Now let me tell you
that manually reviewing
around 12,000 agreements
took over 36,000 hours.

Italian: 
 È un sacco di tempo. 
 Ma non appena questa attività è stata sostituita dalla macchina AI, 
 è stato in grado di farlo in pochi secondi. 
 Quindi questa è la differenza tra l'intelligenza artificiale 
 e lavoro manuale o umano. 
 Anche se l'IA non può pensare e ragionare come gli umani, 
 ma la loro potenza di calcolo è molto forte 
 rispetto agli umani, 
 perché l'algoritmo di machine learning, 
 concetti di deep learning e elaborazione del linguaggio naturale, 
 L'intelligenza artificiale ha raggiunto uno stadio in cui può calcolare 
 il più complesso dei problemi complessi 
 in pochi secondi. 
 Venendo alla sanità, IBM è uno dei pionieri 
 che ha sviluppato software AI, 
 specificamente per la medicina. 
 Lasciate che vi dica che più di 230 organizzazioni sanitarie 
 utilizzare la tecnologia IBM AI, 
 che è fondamentalmente IBM Watson. 
 Nel 2016, la tecnologia IBM Watson è stata in grado di incrociare i riferimenti 
 20 milioni di registrazioni oncologiche rapidamente 
 e diagnosticare correttamente una leucemia rara 
 condizione in un paziente. 
 Quindi, in pratica ha superato 20 milioni di record, 

English: 
That's a lot of time.
But as soon as this task
was replaced by AI machine,
it was able to do this
in a matter of seconds.
So that's the difference
between artificial intelligence
and manual or human work.
Even though AI cannot think
and reason like humans,
but their computational
power is very strong
compared to humans,
because the machine learning algorithm,
deep learning concepts, and
natural language processing,
AI has reach a stage
wherein it can compute
the most complex of complex problems
in a matter of seconds.
Coming to healthcare, IBM
is one of the pioneers
that has developed AI software,
specifically for medicine.
Let me tell you that more than
230 healthcare organizations
use IBM AI technology,
which is basically IBM Watson.
In 2016, IBM Watson technology
was able to cross reference
20 million oncology records quickly
and correctly diagnose a rare leukemia
condition in a patient.
So, it basically went
through 20 million records,

English: 
which it probably did in a
matter of second or minutes,
max to max.
And then it correctly diagnosed a patient
with a rare leukemia.
Knowing that machines are now used
in medical fields as well,
it shows how important AI has become.
It has reached every domains of our lives.
Let me give you another example.
The Google's AI Eye Doctor
is another initiative,
which is taken by Google,
where they're working with
an Indian eye care chain
to develop artificial intelligence system
which can examine retinal scans
and identify a condition called
diabetic retinopathy
which can cause blindness.
Now in social media
platforms like Facebook,
artificial intelligence is
used for face verification
wherein you make use of machine learning
and deep learning concept
in order to detect facial
features and tag your friends.
All the auto tagging feature
that you see in Facebook,
behind that there's machine learning,
deep learning, neural networks.
There's only AI behind it.
So we're actually unaware

Italian: 
 cosa che probabilmente ha fatto in pochi secondi o minuti, 
 da max a max. 
 E poi ha diagnosticato correttamente un paziente 
 con una leucemia rara. 
 Sapendo che le macchine ora sono usate 
 anche in campo medico, 
 mostra quanto sia diventata importante l'IA. 
 Ha raggiunto tutti i domini della nostra vita. 
 Lascia che ti faccia un altro esempio. 
 L'intelligenza artificiale di Google Eye Doctor 
 è un'altra iniziativa, presa da Google, 
 dove stanno lavorando con una catena indiana di prodotti per la cura degli occhi 
 sviluppare un sistema di intelligenza artificiale 
 che può esaminare le scansioni retiniche 
 e identificare una condizione chiamata 
 retinopatia diabetica che può causare cecità. 
 Ora nelle piattaforme di social media come Facebook, 
 l'intelligenza artificiale viene utilizzata per la verifica del viso 
 in cui utilizzi l'apprendimento automatico 
 e il concetto di apprendimento profondo 
 per rilevare le caratteristiche del viso e taggare i tuoi amici. 
 Tutta la funzione di codifica automatica che vedi su Facebook, 
 dietro a ciò c'è l'apprendimento automatico, 
 apprendimento profondo, reti neurali. 
 C'è solo l'intelligenza artificiale dietro. 
 Quindi in realtà non ne siamo consapevoli 

Italian: 
 che usiamo l'intelligenza artificiale molto regolarmente nella nostra vita. 
 Tutte le piattaforme di social media 
 come Instagram, Facebook, Twitter, 
 fanno molto affidamento sull'intelligenza artificiale. 
 Un altro esempio è l'IA di Twitter 
 che viene utilizzato per identificare qualsiasi tipo di incitamento all'odio 
 e linguaggi terroristici nei tweet. 
 Quindi, ancora una volta, utilizza la macchina inclinata, 
 apprendimento profondo, elaborazione del linguaggio naturale 
 per filtrare qualsiasi offensiva 
 o qualsiasi contenuto segnalabile. 
 Ora di recente, l'azienda ha scoperto 
 circa 300.000 account di collegamento terroristico 
 e il 95% di questi sono stati trovati da non umani 
 macchine artificialmente intelligenti. 
 Venendo agli assistenti virtuali, 
 abbiamo assistenti virtuali come Siri e Alexa in questo momento. 
 Lascia che ti parli di un altro appena rilasciato 
 L'assistente virtuale di Google chiamato Google Duplex, 
 che ha stupito milioni di persone in tutto il mondo. 
 Non solo può rispondere alle chiamate 
 e prenota appuntamenti per te, 
 aggiunge anche un tocco umano. 

English: 
that we use AI very regularly in our life.
All the social media platforms
like Instagram, Facebook, Twitter,
they heavily rely on
artificial intelligence.
Another such example is Twitter's AI
which is being used to identify
any sort of hate speech
and terroristic languages in tweets.
So again, it makes use of machine leaning,
deep learning, natural language processing
in order to filter out any offensive
or any reportable content.
Now recently, the company discovered
around 300,000 terroristic link accounts
and 95% of these were found by non-human
artificially intelligent machines.
Coming to virtual assistants,
we have virtual assistants
like Siri and Alexa right now.
Let me tell you about
another newly released
Google's virtual assistant
called the Google Duplex,
which has astonished millions
of people around the world.
Not only can it respond to calls
and book appointments for you,
it also adds a human touch.

Italian: 
 Quindi aggiunge filtri umani e tutto il resto. 
 Lo fa sembrare molto realistico. 
 In realtà è molto difficile distinguere tra 
 umano e l'intelligenza artificiale che parlano al telefono. 
 Un'altra famosa applicazione è l'AI per le auto a guida autonoma. 
 Quindi, l'intelligenza artificiale implementa la visione artificiale, 
 rilevamento di immagini, deep learning, 
 per costruire automobili 
 in grado di rilevare automaticamente qualsiasi oggetto o qualsiasi ostacolo 
 e andare in giro senza l'intervento umano. 
 Quindi queste sono auto a guida autonoma completamente automatizzate. 
 Inoltre, Elon Musk parla molto di come viene implementata l'IA 
 nelle auto a guida autonoma di Tesla. 
 Ha citato che Tesla avrà auto completamente a guida autonoma 
 pronto entro la fine dell'anno, 
 e la versione robo taxi che può traghettare i passeggeri 
 senza nessuno al volante. 
 Quindi, se lo guardi, l'IA viene effettivamente utilizzata 
 dai giganti della tecnologia. 
 Molte aziende giganti della tecnologia come Google, Tesla, Facebook, 
 tutte queste società basate sui dati. 
 In effetti, Netflix utilizza anche l'AI ,. 
 Quindi, venendo a Netflix. 

English: 
So it adds human filters and all of that.
It makes it sound very realistic.
It's actually very hard
to distinguish between
human and the AI speaking over the phone.
Another famous application
is AI is self-driving cars.
So, artificial intelligence
implements computer vision,
image detection, deep learning,
in order to build cars
that can automatically detect
any objects or any obstacles
and drive around without
human intervention.
So these are fully
automated self-driving cars.
Also, Elon Musk talks a lot
about how AI is implemented
in Tesla's self-driving cars.
He quoted that Tesla will
have fully self-driving cars
ready by the end of the year,
and robo taxi version
that can ferry passengers
without anyone behind the wheel.
So if you look at it, AI is actually used
by the tech giants.
A lot of tech giant companies
like Google, Tesla, Facebook,
all of these data-driven companies.
In fact, Netflix also makes use of AI,.
So, coming to Netflix.

English: 
So with the help of
artificial intelligence
and machine learning,
Netflix has developed a
personalized movie recommendation
for each of its users.
So if each of you opened up Netflix
and if you look at the type of movies
that are recommended to
you, they are different.
This is because Netflix studies
each user's personal details,
and tries to understand what
each user is interested in
and what sort of movie
patterns each user has,
and then it recommends movies to them.
So Netflix uses the watching
history of other users
with similar taste to recommend
what you may be most
interested in watching next,
so that you can stay engaged
and continue your monthly subscription.
Also, there's a known fact
that over 75% of what you watch
is recommended by Netflix.
So their recommendation
engine is brilliant.
And the logic behind their
recommendation engine
is machine learning and
artificial intelligence.
Apart from Netflix, Gmail also
uses AI on a everyday basis.

Italian: 
 Quindi con l'aiuto dell'intelligenza artificiale 
 e machine learning, 
 Netflix ha sviluppato una raccomandazione sui film personalizzata 
 per ciascuno dei suoi utenti. 
 Quindi se ognuno di voi aprisse Netflix 
 e se guardi il tipo di film 
 che ti sono consigliati, sono diversi. 
 Questo perché Netflix studia 
 i dati personali di ogni utente, 
 e cerca di capire a cosa è interessato ogni utente 
 e che tipo di pattern cinematografici ha ogni utente, 
 e poi consiglia loro i film. 
 Quindi Netflix utilizza la cronologia delle visualizzazioni di altri utenti 
 con un gusto simile da consigliare 
 quello che potresti essere più interessato a guardare dopo, 
 in modo che tu possa rimanere fidanzato 
 e continua il tuo abbonamento mensile. 
 Inoltre, è noto che oltre il 75% di ciò che guardi 
 è consigliato da Netflix. 
 Quindi il loro motore di raccomandazione è brillante. 
 E la logica alla base del loro motore di raccomandazione 
 è l'apprendimento automatico e l'intelligenza artificiale. 
 Oltre a Netflix, Gmail utilizza anche l'AI ogni giorno. 

English: 
If you open up your inbox right now,
you will notice that there
are separate sections.
For example, we have primary section,
social section, and all of that.
Gmail has a separate section
called the spam mails also.
So, what Gmail does is it makes use of
concepts of artificial intelligence
and machine learning algorithms
to classify emails as spam and non-spam.
Many times certain words or phrases
are frequently used in spam emails.
If notice your spam emails,
they have words like
lottery, earn, full refund.
All of this denotes that the email
is more likely to be a spam one.
So such words and
correlations are understood
by using machine learning and
natural language processing
and a few other aspects of
artificial intelligence.
So, guys, these were
the common applications
of artificial intelligence.
Now let's discuss the
different types of AI.
So, AI is divided into three
different evolutionary stages,
or you can say that there are three stages

Italian: 
 Se apri la tua casella di posta in questo momento, 
 noterai che ci sono sezioni separate. 
 Ad esempio, abbiamo la sezione principale, 
 sezione sociale e tutto il resto. 
 Gmail ha una sezione separata chiamata anche i messaggi di spam. 
 Quindi, ciò che fa Gmail è che utilizza 
 concetti di intelligenza artificiale 
 e algoritmi di apprendimento automatico 
 classificare le e-mail come spam e non spam. 
 Molte volte certe parole o frasi 
 vengono spesso utilizzati nelle e-mail di spam. 
 Se noti le tue email di spam, 
 hanno parole come lotteria, guadagna, rimborso completo. 
 Tutto ciò denota che l'email 
 è più probabile che sia uno spam. 
 Quindi tali parole e correlazioni sono comprese 
 utilizzando l'apprendimento automatico e l'elaborazione del linguaggio naturale 
 e pochi altri aspetti dell'intelligenza artificiale. 
 Quindi, ragazzi, queste erano le applicazioni comuni 
 dell'intelligenza artificiale. 
 Ora parliamo dei diversi tipi di AI. 
 Quindi, l'IA è divisa in tre diverse fasi evolutive, 
 oppure puoi dire che ci sono tre fasi 

English: 
of artificial intelligence.
Of course, we have artificial
narrow intelligence
followed by artificial
general intelligence,
and that is followed by
artificial super intelligence.
Artificial narrow intelligence,
which is also known as weak AI,
it involves applying
artificial intelligence
only to specific task.
So, many currently existing systems
that claim to use artificial intelligence
are actually operating as weak AI
focused on a narrowly
defined specific problem
Let me give you an example
of artificial narrow intelligence.
Alexa is a very good example of weak AI.
It operates within unlimited
pre-defined range of functions.
There's no genuine intelligence
or there is no self awareness,
despite being a sophisticated
example of weak AI.
The Google search engine,
Sophia the humanoid,
self-driving cars, and
even the famous AlphaGo
fall under the category of weak AI.
So guys, right now we're at the stage

Italian: 
 dell'intelligenza artificiale. 
 Ovviamente abbiamo un'intelligenza artificiale ristretta 
 seguito da intelligenza artificiale generale, 
 e questo è seguito dalla super intelligenza artificiale. 
 Intelligenza artificiale ristretta, 
 noto anche come IA debole, 
 implica l'applicazione dell'intelligenza artificiale 
 solo per compiti specifici. 
 Quindi, molti sistemi attualmente esistenti 
 che pretendono di usare l'intelligenza artificiale 
 stanno effettivamente operando come IA debole 
 focalizzato su un problema specifico strettamente definito 
 Lasciate che vi faccia un esempio 
 dell'intelligenza artificiale ristretta. 
 Alexa è un ottimo esempio di IA debole. 
 Funziona all'interno di una gamma di funzioni predefinita illimitata. 
 Non c'è vera intelligenza 
 o non c'è consapevolezza di sé, 
 nonostante sia un sofisticato esempio di IA debole. 
 Il motore di ricerca di Google, Sophia l'umanoide, 
 auto a guida autonoma e persino il famoso AlphaGo 
 rientrano nella categoria dell'IA debole. 
 Quindi ragazzi, in questo momento siamo sul palco 

Italian: 
 di intelligenza artificiale ristretta o IA debole. 
 In realtà non abbiamo raggiunto l'intelligenza artificiale generale 
 o super intelligenza artificiale, 
 ma diamo un'occhiata a come sarebbe esattamente 
 se raggiungiamo l'intelligenza generale artificiale. 
 Ora intelligenza generale artificiale 
 noto anche come IA forte, 
 coinvolge macchine che possiedono l'abilità 
 per eseguire qualsiasi compito intelligente che un essere umano possa fare. 
 Ora questo è effettivamente qualcosa 
 che molte persone non si rendono conto. 
 Le macchine non possiedono capacità simili a quelle umane. 
 Hanno un'unità di elaborazione molto forte 
 in grado di eseguire calcoli di alto livello, 
 ma non sono ancora in grado di fare il semplice 
 e le cose più ragionevoli che un essere umano può fare. 
 Se dici a una macchina di elaborare come un milione di documenti, 
 probabilmente lo farà nel giro di 10 secondi, 
 o un minuto, o anche 10 minuti. 
 Ma se chiedi a una macchina di salire in soggiorno 
 e accendi la TV, 
 una macchina impiegherà un'eternità per impararlo, 
 perché le macchine non hanno il modo ragionevole di pensare. 

English: 
of artificial narrow
intelligence or weak AI.
We actually haven't reached
artificial general intelligence
or artificial super intelligence,
but let's look at what
exactly it would be like
if we reach artificial
general intelligence.
Now artificial general intelligence
which is also known as strong AI,
it involves machines
that posses the ability
to perform any intelligent
task that a human being can.
Now this is actually something
that a lot of people don't realize.
Machines don't posses
human-like abilities.
They have a very strong processing unit
that can perform high-level computations,
but they're not yet
capable of doing the simple
and the most reasonable
things that a human being can.
If you tell a machine to process
like a million documents,
it'll probably do that in
a matter of 10 seconds,
or a minute, or even 10 minutes.
But if you ask a machine to
walk up to your living room
and switch on the TV,
a machine will take forever to learn that,
because machines don't have
the reasonable way of thinking.

Italian: 
 Hanno un'unità di elaborazione molto forte, 
 ma non sono ancora capaci 
 di pensare e ragionare come un essere umano. 
 Quindi è esattamente per questo che siamo ancora bloccati 
 sull'intelligenza artificiale ristretta. 
 Finora non abbiamo sviluppato nessuna macchina 
 che può essere definita completamente IA forte, 
 anche se ci sono esempi di AlphaGo Zero 
 che ha sconfitto AlphaGo nel gioco di Go. 
 AlphaGo Zero ha sostanzialmente imparato in un arco di quattro mesi. 
 Ha imparato da solo senza alcun intervento umano. 
 Ma anche allora, non era classificato 
 come un'intelligenza artificiale completamente forte, 
 perché non può ragionare come un essere umano. 
 Passando alla super intelligenza artificiale. 
 Ora questo è un termine che si riferisce al tempo 
 quando le capacità di un computer 
 supererà quella di un essere umano. 
 In realtà, ci metterò un po 'di tempo 
 per ottenere una super intelligenza artificiale. 
 Al momento, è vista come una situazione ipotetica 
 come raffigurato nei film e in tutti i libri di fantascienza 
 dove le macchine hanno conquistato il mondo, 

English: 
They have a very strong processing unit,
but they're not yet capable
of thinking and reasoning
like a human being.
So that's exactly why we're still stuck
on artificial narrow intelligence.
So far we haven't developed any machine
that can fully be called strong AI,
even though there are
examples of AlphaGo Zero
which defeated AlphaGo in the game of Go.
AlphaGo Zero basically learned
in a span of four months.
It learned on its own without
any human intervention.
But even then, it was not classified
as a fully strong artificial intelligence,
because it cannot reason
like a human being.
Moving onto artificial super intelligence.
Now this is a term referring to the time
when the capabilities of a computer
will surpass that of a human being.
In all actuality, I'll take a while for us
to achieve artificial super intelligence.
Presently, it's seen as
a hypothetical situation
as depicted in movies and
any science fiction books
wherein machines have
taken over the world,

English: 
movies like Terminator and all of that
depict artificial super intelligence.
These don't exist yet,
which we should be thankful for,
but there are a lot of people
who speculate that
artificial super intelligence
will take over the world by the year 2040.
So guys, these were the different types
or different stages of
artificial intelligence.
To summarize everything,
like I said before,
narrow intelligence is the
only thing that exist for now.
We have only weak AI or weak
artificial intelligence.
All the major AI technologies that you see
are artificial narrow intelligence.
We don't have any machines
which are capable of thinking
like human beings or
reasoning like a human being.
Now let's move on and discuss
the different programming language for AI.
So there are actually N number of language
that can be used for
artificial intelligence.
I'm gonna mention a few of them.
So, first, we have Python.
Python is probably the
most famous language
for artificial intelligence.

Italian: 
 film come Terminator e tutto il resto 
 rappresentare la super intelligenza artificiale. 
 Questi non esistono ancora 
 di cui dovremmo essere grati, 
 ma ci sono molte persone 
 che ipotizzano quella super intelligenza artificiale 
 conquisterà il mondo entro il 2040. 
 Quindi ragazzi, questi erano i diversi tipi 
 o diverse fasi dell'intelligenza artificiale. 
 Per riassumere tutto, come ho detto prima, 
 l'intelligenza ristretta è l'unica cosa che esiste per ora. 
 Abbiamo solo un'IA debole o un'intelligenza artificiale debole. 
 Tutte le principali tecnologie di intelligenza artificiale che vedi 
 sono intelligenza artificiale ristretta. 
 Non abbiamo macchine in grado di pensare 
 come gli esseri umani o ragionare come un essere umano. 
 Ora andiamo avanti e discutiamo 
 il diverso linguaggio di programmazione per AI. 
 Quindi ci sono effettivamente N numero di lingue 
 che può essere utilizzato per l'intelligenza artificiale. 
 Ne citerò alcuni. 
 Quindi, per prima cosa, abbiamo Python. 
 Python è probabilmente il linguaggio più famoso 
 per l'intelligenza artificiale. 

English: 
It's also known as the most
effective language for AI,
because a lot of developers
prefer to use Python.
And a lot of scientists
are also comfortable
with the Python language.
This is partly because the syntaxes
which belong to Python are very simple
and they can be learned very easily.
It's considered to be one of the most
easiest language to learn.
And also many other AI algorithms
and machine learning algorithms
can be easily implemented in Python,
because there are a lot of libraries
which are predefined functions
for these algorithms.
So all you have to do is you
have to call that function.
You don't actually have
to call your algorithm.
So, Python is considered the best choice
for artificial intelligence.
With Python stands R,
which is a statistical
programming language.
Now R is one of the
most effective language
and environment for analyzing
and manipulating the data
for statistical purpose.
It is a statistical programming language.
So using R we can easily produce
well designed publication quality plots,

Italian: 
 È anche noto come il linguaggio più efficace per l'IA, 
 perché molti sviluppatori preferiscono usare Python. 
 E anche molti scienziati sono a loro agio 
 con il linguaggio Python. 
 Ciò è in parte dovuto al fatto che le sintassi 
 che appartengono a Python sono molto semplici 
 e possono essere appresi molto facilmente. 
 È considerato uno dei più 
 lingua più facile da imparare. 
 E anche molti altri algoritmi di intelligenza artificiale 
 e algoritmi di apprendimento automatico 
 può essere facilmente implementato in Python, 
 perché ci sono molte biblioteche 
 che sono funzioni predefinite per questi algoritmi. 
 Quindi tutto quello che devi fare è chiamare quella funzione. 
 In realtà non devi chiamare il tuo algoritmo. 
 Quindi, Python è considerato la scelta migliore 
 per l'intelligenza artificiale. 
 Con Python sta R, 
 che è un linguaggio di programmazione statistica. 
 Ora R è uno dei linguaggi più efficaci 
 e l'ambiente per analizzare e manipolare i dati 
 a fini statistici. 
 È un linguaggio di programmazione statistica. 
 Quindi usando R possiamo facilmente produrre 
 grafici di qualità della pubblicazione ben progettati, 

English: 
including mathematical symbol
and formula, wherever needed.
If you ask me, I think
R is also one of the
easiest programming language to learn.
The syntax is very similar
to English language,
and it also has N number of libraries
that support statistics, data science,
AI, machine learning, and so on.
It also has predefined functions
for machine learning algorithms,
natural language processing, and so on.
So R is also a very good choice
if you want to get started
with programming languages
for machine learning or AI.
Apart from this, we have Java.
Now Java can also be
considered as a good choice
for AI development.
Artificial intelligence has a lot to do
with search algorithms,
artificial neural networks,
and genetic programming,
and Java provides many benefits.
It's easy to use.
Debugging is very easy, package services.
There is simplified work
with large scale projects.
There's a good user interaction,
and graphical representation of data.
It has something known as
the standard widget toolkit,

Italian: 
 inclusi simboli e formule matematiche, laddove necessario. 
 Se me lo chiedi, penso che R sia anche uno dei file 
 linguaggio di programmazione più semplice da imparare. 
 La sintassi è molto simile alla lingua inglese, 
 e ha anche un numero N di librerie 
 che supportano statistiche, scienza dei dati, 
 AI, machine learning e così via. 
 Ha anche funzioni predefinite 
 per algoritmi di apprendimento automatico, 
 elaborazione del linguaggio naturale e così via. 
 Quindi R è anche un'ottima scelta 
 se vuoi iniziare con i linguaggi di programmazione 
 per l'apprendimento automatico o l'intelligenza artificiale. 
 Oltre a questo, abbiamo Java. 
 Ora anche Java può essere considerato una buona scelta 
 per lo sviluppo dell'IA. 
 L'intelligenza artificiale ha molto da fare 
 con algoritmi di ricerca, 
 reti neurali artificiali e programmazione genetica, 
 e Java offre molti vantaggi. 
 È facile da usare. 
 Il debug è molto semplice, servizi a pacchetto. 
 C'è un lavoro semplificato con progetti su larga scala. 
 C'è una buona interazione con l'utente, 
 e rappresentazione grafica dei dati. 
 Ha qualcosa noto come il toolkit widget standard, 

English: 
which can be used for making
graphs and interfaces.
So, graphic virtualization is actually
a very important part of AI,
or data science, or machine
learning for that matter.
Let me list out a few more languages.
We also have something known as Lisp.
Now shockingly, a lot
of people have not heard
of this language.
This is actually the oldest
and the most suited language
for the development of
artificial intelligence.
It is considered to be a language
which is very suited for the development
of artificial intelligence.
Now let me tell you that this language
was invented by John McCarthy
who's also known as the father
of artificial intelligence.
He was the person who coined the term
artificial intelligence.
It has the capability of
processing symbolic information.
It has excellent prototyping capabilities.
It is easy,
and it creates dynamic
objects with a lot of ease.
There's automatic garbage
collection in all of that.
But over the years,
because of advancements,
many of these features

Italian: 
 che può essere utilizzato per creare grafici e interfacce. 
 Quindi, la virtualizzazione grafica è in realtà 
 una parte molto importante dell'IA, 
 o scienza dei dati o apprendimento automatico per quella materia. 
 Vorrei elencare qualche altra lingua. 
 Abbiamo anche qualcosa noto come Lisp. 
 Ora, sorprendentemente, molte persone non hanno sentito 
 di questa lingua. 
 Questa è in realtà la lingua più antica e più adatta 
 per lo sviluppo dell'intelligenza artificiale. 
 È considerato una lingua 
 che è molto adatto per lo sviluppo 
 dell'intelligenza artificiale. 
 Ora lascia che ti dica che questa lingua 
 è stato inventato da John McCarthy 
 conosciuto anche come il padre dell'intelligenza artificiale. 
 Era la persona che ha coniato il termine 
 intelligenza artificiale. 
 Ha la capacità di elaborare informazioni simboliche. 
 Ha eccellenti capacità di prototipazione. 
 È facile, 
 e crea oggetti dinamici con molta facilità. 
 C'è la raccolta automatica dei rifiuti in tutto questo. 
 Ma nel corso degli anni, a causa dei progressi, 
 molte di queste caratteristiche 

English: 
have migrated into many other languages.
And that's why a lot of
people don't go for Lisp.
There are a lot of new languages
which have more effective features
or which have better packages you can see.
Another language I like
to talk about is Prolog.
Prolog is frequently
used in knowledge base
and expert systems.
The features provided by Prolog
include pattern matching,
freebase data structuring,
automatic back tracking and so on.
All of these features provide
a very powerful and flexible
programming framework.
Prolog is actually widely
used in medical projects
and also for designing expert AI systems.
Apart from this, we also have C++,
we have SaaS, we have JavaScript
which can also be used for AI.
We have MATLAB, we have Julia.
All of these languages
are actually considered
pretty good languages for
artificial intelligence.
But for now, if you ask me
which programming
language should I go for,
I would say Python.
Python has all the possible packages,

Italian: 
 sono migrati in molte altre lingue. 
 Ed è per questo che molte persone non scelgono Lisp. 
 Ci sono molte nuove lingue 
 che hanno caratteristiche più efficaci 
 o che hanno pacchetti migliori che puoi vedere. 
 Un'altra lingua di cui mi piace parlare è il prologo. 
 Prolog è spesso utilizzato nella knowledge base 
 e sistemi esperti. 
 Le funzionalità fornite da Prolog 
 includere il pattern matching, la strutturazione dei dati freebase, 
 tracciamento automatico indietro e così via. 
 Tutte queste funzionalità forniscono 
 un framework di programmazione molto potente e flessibile. 
 Prolog è attualmente ampiamente utilizzato nei progetti medici 
 e anche per la progettazione di sistemi di intelligenza artificiale esperti. 
 Oltre a questo, abbiamo anche C ++, 
 abbiamo SaaS, abbiamo JavaScript 
 che può essere utilizzato anche per l'IA. 
 Abbiamo MATLAB, abbiamo Julia. 
 Tutte queste lingue vengono effettivamente prese in considerazione 
 lingue piuttosto buone per l'intelligenza artificiale. 
 Ma per ora, se me lo chiedi 
 quale linguaggio di programmazione dovrei scegliere, 
 Direi Python. 
 Python ha tutti i pacchetti possibili, 

Italian: 
 ed è molto facile da capire e facile da imparare. 
 Quindi diamo un'occhiata a un paio di funzionalità di Python. 
 Possiamo capire perché dovremmo scegliere Python. 
 Prima di tutto, è stato creato Python 
 nell'anno 1989. 
 In realtà è un linguaggio di programmazione molto semplice. 
 Questo è uno dei motivi per cui 
 molte persone preferiscono Python. 
 È molto facile da capire. 
 È molto facile capire questo linguaggio. 
 Quindi Python è un interpretato, orientato agli oggetti, 
 linguaggio di programmazione di alto livello, 
 e può essere implementato molto facilmente. 
 Ora lascia che ti dica alcune caratteristiche di Python. 
 È molto semplice e facile da imparare. 
 Come ho detto, 
 è uno dei linguaggi di programmazione più semplici, 
 ed è anche gratuito e open source. 
 A parte questo, è un linguaggio di alto livello. 
 Non devi preoccuparti 
 qualcosa come l'allocazione della memoria. 
 È portatile, 
 il che significa che puoi usarlo su qualsiasi piattaforma 
 come Linux, Windows, Macintosh, Solaris e così via. 
 Supporta diversi paradigmi di programmazione 
 come la programmazione orientata agli oggetti e orientata alla procedura, 
 ed è estensibile, 

English: 
and it is very easy to
understand and easy to learn.
So let's look at a couple
of features of Python.
We can see why we should go for Python.
First of all, Python was created
in the year 1989.
It is actually a very
easy programming language.
That's one of the reasons why
a lot of people prefer Python.
It's very easy to understand.
It's very easy to grasp this language.
So Python is an interpreted,
object-oriented,
high-level programming language,
and it can be very easily implemented.
Now let me tell you a
few features of Python.
It's very simple and easy to learn.
Like I mentioned,
it is one of the easiest
programming language,
and it also free and open source.
Apart from that, it is
a high-level language.
You don't have to worry about
anything like memory allocation.
It is portable,
meaning that you can
use it on any platform
like Linux, Windows,
Macintosh, Solaris, and so on.
It support different programming paradigms
like object-oriented and
procedure oriented programming,
and it is extensible,

Italian: 
 il che significa che può richiamare le librerie C e C ++. 
 A parte questo, lascia che ti dica che Python 
 sta effettivamente guadagnando un incredibile slancio enorme nell'IA. 
 Il linguaggio viene utilizzato per sviluppare algoritmi di scienza dei dati, 
 algoritmi di machine learning e progetti IoT. 
 Anche gli altri vantaggi di Python, 
 il fatto che non devi programmare molto 
 quando si tratta di Python per AI o machine learning. 
 Questo perché ci sono pacchetti già pronti. 
 Ci sono pacchetti predefiniti 
 che hanno tutte le funzioni e l'algoritmo memorizzati. 
 Ad esempio, c'è qualcosa noto come PiBrain, 
 che può essere utilizzato per l'apprendimento automatico, 
 NumPy che può essere utilizzato per il calcolo scientifico, 
 Panda e così via. 
 Ci sono un numero N di librerie in Python. 
 Quindi ragazzi, ora vado più in profondità di Python. 
 Ora ti spiegherò Python, 
 poiché questa sessione riguarda l'intelligenza artificiale. 
 Quindi, quelli di voi che non sanno molto di Python 
 o chi è nuovo in Python, 
 Lascio un paio di link nella casella della descrizione. 
 Potete iniziare tutti a programmare 

English: 
meaning that it can invoke
C and C++ libraries.
Apart from this, let
me tell you that Python
is actually gaining unbelievable
huge momentum in AI.
The language is used to develop
data science algorithms,
machine learning algorithms,
and IoT projects.
The other advantages to Python also,
the fact that you don't have to code much
when it comes to Python
for AI or machine learning.
This is because there
are ready-made packages.
There are predefined packages
that have all the function
and algorithm stored.
For example, there is
something known as PiBrain,
which can be used for machine learning,
NumPy which can be used
for scientific computation,
Pandas and so on.
There are N number of libraries in Python.
So guys, I'm now going to
go into depth of Python.
I'm now going to explain Python to you,
since this session is about
artificial intelligence.
So, those of you who don't
know much about Python
or who are new to Python,
I will leave a couple of
links in the description box.
You all can get started with programming

English: 
and any other concepts or any other doubts
that you have on Python.
We have a lot of content
around programming with Python
or Python for machine learning and so on.
Now let's move on and talk about
one of the most important aspects
of artificial intelligence,
which is machine learning.
Now a lot of people always
ask me this question.
Is machine learning and
artificial intelligence
the same thing?
Well, both of them are not the same thing.
The difference between
AI and machine learning
is that machine learning is
used in artificial intelligence.
Machine learning is a method
through which you can feed
a lot of data to a machine
and make it learn.
Now AI is a vast of field.
Under AI, we have machine
learning, we have NLP,
we have expert systems,
we have image recognition,
object detection, and so on.
We have deep learning also.
So, AI is sort of a process
or it's a methodology
in which you make machines
mimic the behavior of human beings.
Machine learning is a way
in which you feed a lot
of data to a machine,

Italian: 
 e qualsiasi altro concetto o qualsiasi altro dubbio 
 che hai su Python. 
 Abbiamo molti contenuti sulla programmazione con Python 
 o Python per l'apprendimento automatico e così via. 
 Adesso andiamo avanti e ne parliamo 
 uno degli aspetti più importanti 
 dell'intelligenza artificiale, 
 che è l'apprendimento automatico. 
 Ora molte persone mi fanno sempre questa domanda. 
 È l'apprendimento automatico e l'intelligenza artificiale 
 la stessa cosa? 
 Bene, entrambi non sono la stessa cosa. 
 La differenza tra AI e machine learning 
 è che l'apprendimento automatico viene utilizzato nell'intelligenza artificiale. 
 L'apprendimento automatico è un metodo 
 attraverso il quale puoi fornire molti dati a una macchina 
 e fallo imparare. 
 Ora l'IA è un vasto campo. 
 Sotto AI, abbiamo l'apprendimento automatico, abbiamo la PNL, 
 abbiamo sistemi esperti, abbiamo il riconoscimento delle immagini, 
 rilevamento di oggetti e così via. 
 Abbiamo anche un apprendimento profondo. 
 Quindi, l'IA è una sorta di processo o è una metodologia 
 in cui fai le macchine 
 imitano il comportamento degli esseri umani. 
 L'apprendimento automatico è un modo 
 in cui fornisci molti dati a una macchina, 

Italian: 
 in modo che possa prendere le proprie decisioni. 
 Entriamo in profondità sull'apprendimento automatico. 
 Quindi, per prima cosa, capiremo la necessità dell'apprendimento automatico 
 o perché il machine learning è nato. 
 Ora la necessità del machine learning 
 inizia dalla rivoluzione tecnica stessa. 
 Quindi, ragazzi, da quando la tecnologia è diventata il centro di tutto, 
 abbiamo generato una quantità incommensurabile di dati. 
 Come da ricerca, generiamo in giro 
 2,5 quintilioni di byte di dati ogni singolo dato 
 ogni singolo giorno. 
 E si stima che entro quest'anno, 2020, 
 Ogni secondo verranno creati 1,7 MB di dati 
 per ogni persona sulla terra. 
 Quindi mentre ti sto parlando proprio ora, 
 Sto generando molti dati. 
 Ora stai guardando questo video su YouTube 
 tiene conto anche della generazione dei dati. 
 Quindi ci sono dati ovunque. 
 Quindi, con la disponibilità di così tanti dati, 
 è finalmente possibile costruire modelli predittivi 
 in grado di studiare e analizzare dati complessi 
 per trovare informazioni utili e fornire risultati più accurati. 

English: 
so that it can make it's own decisions.
Let's get into depth
about machine learning.
So first, we'll understand
the need for machine learning
or why machine learning
came into existence.
Now the need for machine learning
begins since the technical
revolution itself.
So, guys, since technology
became the center of everything,
we've been generating an
immeasurable amount of data.
As per research, we generate around
2.5 quintillion bytes of
data every single data
every single day.
And it is estimated
that by this year, 2020,
1.7 mb of data will be
created every second
for every person on earth.
So as I'm speaking to you right now,
I'm generating a lot of data.
Now your watching this video on YouTube
also accounts for data generation.
So there's data everywhere.
So with the availability of so much data,
it is finally possible to
build predictive models
that can study and analyze complex data
to find useful insights and
deliver more accurate results.

Italian: 
 Quindi, aziende di alto livello come Netflix e Amazon 
 costruire tali modelli di machine learning 
 utilizzando tonnellate di dati 
 al fine di identificare eventuali opportunità redditizie 
 ed evitare qualsiasi rischio indesiderato. 
 Quindi ragazzi, una cosa che dovete sapere tutti è questa 
 la cosa più importante per l'intelligenza artificiale 
 sono dati. 
 Per l'intelligenza artificiale 
 o che si tratti di machine learning o deep learning, 
 sono sempre dati. 
 E ora che abbiamo molti dati, 
 possiamo trovare un modo per analizzare, elaborare, 
 e trarre utili informazioni da questi dati 
 per aiutarci a far crescere le imprese 
 o per trovare soluzioni ad alcuni problemi. 
 I dati sono la soluzione. 
 Dobbiamo solo sapere come gestire i dati. 
 E il modo in cui gestire i dati 
 è attraverso il machine learning, il deep learning, 
 e intelligenza artificiale. 
 Alcuni motivi per cui l'apprendimento automatico è così importante 
 è, il numero uno, dovuto all'aumento della generazione di dati. 
 Quindi, a causa dell'eccessiva produzione di dati, 
 dobbiamo trovare un metodo che possa essere utilizzato 
 per strutturare, analizzare e trarre informazioni utili dai dati, 

English: 
So, top tier companies
like Netflix and Amazon
build such machine learning models
by using tons of data
in order to identify any
profitable opportunity
and avoid any unwanted risk.
So guys, one thing you
all need to know is that
the most important thing
for artificial intelligence
is data.
For artificial intelligence
or whether it's machine
learning or deep learning,
it's always data.
And now that we have a lot of data,
we can find a way to analyze, process,
and draw useful insights from this data
in order to help us grow businesses
or to find solutions to some problems.
Data is the solution.
We just need to know
how to handle the data.
And the way to handle data
is through machine
learning, deep learning,
and artificial intelligence.
A few reasons why machine
learning is so important
is, number one, due to
increase in data generation.
So due to excessive production of data,
we need to find a method that can be used
to structure, analyze, and
draw useful insights from data,

English: 
this is where machine learning comes in.
It is used to solve
problems and find solutions
through the most complex
task faced by organizations.
Apart form this, we also needed
to improve decision making.
So by making use of various algorithms,
machine learning can be used to make
better business decisions.
For example, machine learning
is used to focus sales.
It is used to predict any
downfalls n the stock market
or identify any sort
of risk and anomalies.
Other reasons include that
machine learning helps us
uncover patterns and trends in data.
So finding hidden patterns
and extracting key insights fro data
is the most important
part of machine learning.
So by building predictive models
and using statistical techniques,
machine learning allows you
to dig beneath the surface
and explode the data at a minute scale.
Understanding data and
extracting patterns manually
takes a lot of time.
It'll take several days for us

Italian: 
 è qui che entra in gioco il machine learning. 
 Viene utilizzato per risolvere problemi e trovare soluzioni 
 attraverso il compito più complesso affrontato dalle organizzazioni. 
 Oltre a questo, dovevamo anche migliorare il processo decisionale. 
 Quindi, utilizzando vari algoritmi, 
 l'apprendimento automatico può essere utilizzato per creare file 
 migliori decisioni aziendali. 
 Ad esempio, l'apprendimento automatico viene utilizzato per concentrare le vendite. 
 Viene utilizzato per prevedere eventuali cadute nel mercato azionario 
 o identificare qualsiasi tipo di rischio e anomalia. 
 Altri motivi includono il fatto che l'apprendimento automatico ci aiuta 
 scoprire modelli e tendenze nei dati. 
 Quindi trovare schemi nascosti 
 ed estrarre informazioni chiave dai dati 
 è la parte più importante dell'apprendimento automatico. 
 Quindi costruendo modelli predittivi 
 e utilizzando tecniche statistiche, 
 l'apprendimento automatico ti consente di scavare sotto la superficie 
 ed esplodere i dati su scala minuto. 
 Comprensione dei dati ed estrazione manuale dei modelli 
 richiede molto tempo. 
 Ci vorranno diversi giorni 

English: 
to extract any useful
information from data.
But if you use machine
learning algorithms,
you can perform similar
computations in less than a second.
Another reason is we need
to solve complex problems.
So from detecting the genes
linked to the deadly ALS disease,
to building self-driving cars,
machine learning can be used
to solve the most complex problems.
At present, we also
found a way to spot stars
which are 2,400 light
years away from our planet.
Okay, all of this is possible through AI,
machine learning, deep
learning, and these techniques.
So to sum it up,
machine learning is very
important at present
because we're facing a
lot of issues with data.
We're generating a lot of data,
and we have to handle this data
in such a way that in benefits us.
So that's why machine learning comes in.
Moving on, what exactly
is machine learning?
So let me give you a short
history of machine learning.
So machine learning was
first coined by Arthur Samuel
in the year 1959,

Italian: 
 per estrarre qualsiasi informazione utile dai dati. 
 Ma se utilizzi algoritmi di apprendimento automatico, 
 puoi eseguire calcoli simili in meno di un secondo. 
 Un altro motivo è che dobbiamo risolvere problemi complessi. 
 Quindi dalla rilevazione dei geni 
 legata alla mortale malattia della SLA, 
 alla costruzione di auto a guida autonoma, 
 può essere utilizzato l'apprendimento automatico 
 per risolvere i problemi più complessi. 
 Al momento abbiamo anche trovato un modo per individuare le stelle 
 che distano 2.400 anni luce dal nostro pianeta. 
 Ok, tutto questo è possibile tramite l'IA, 
 machine learning, deep learning e queste tecniche. 
 Quindi, per riassumere, 
 l'apprendimento automatico è molto importante al momento 
 perché stiamo affrontando molti problemi con i dati. 
 Stiamo generando molti dati, 
 e dobbiamo gestire questi dati 
 in modo tale da avvantaggiarci. 
 Ecco perché entra in gioco l'apprendimento automatico. 
 Andando avanti, cos'è esattamente l'apprendimento automatico? 
 Quindi lascia che ti dia una breve storia dell'apprendimento automatico. 
 Quindi l'apprendimento automatico è stato coniato per la prima volta da Arthur Samuel 
 nell'anno 1959, 

English: 
which is just three years from
when artificial intelligence was coined.
So, looking back, that year was probably
the most significant in terms
of technological advancement,
because most of the technologies today
are based on the concept
of machine learning.
Most of the AI technologies itself
are based on the concept of
machine learning and deep learning.
Don't get confused about
machine learning and deep learning.
We'll discuss about deep
learning in the further slides,
where we'll also see the difference
between AI, machine
learning, and deep learning.
So coming back to what
exactly machine learning is,
if we browse through the internet,
you'll find a lot of definitions about
what exactly machine learning is.
One of the definitions I found was
a computer program is said
to learn from experience E
with respect to some class of task T
and performance measure P if
its performance at task in T,
as measured by P, improves
with experience E.
That's very confusing, so let
me just narrow it down to you.

Italian: 
 che è a soli tre anni da 
 quando è stata coniata l'intelligenza artificiale. 
 Quindi, guardando indietro, quell'anno era probabilmente 
 il più significativo in termini di progresso tecnologico, 
 perché la maggior parte delle tecnologie oggi 
 si basano sul concetto di machine learning. 
 La maggior parte delle tecnologie AI stesse 
 si basano sul concetto di 
 machine learning e deep learning. 
 Non ti confondere 
 machine learning e deep learning. 
 Discuteremo dell'apprendimento profondo nelle ulteriori diapositive, 
 dove vedremo anche la differenza 
 tra AI, machine learning e deep learning. 
 Quindi, tornando a quello che è esattamente il machine learning, 
 se navighiamo su Internet, 
 troverai molte definizioni su 
 cos'è esattamente l'apprendimento automatico. 
 Una delle definizioni che ho trovato è stata 
 si dice che un programma per computer impari dall'esperienza E. 
 rispetto a una classe di compiti T 
 e misura di prestazione P se la sua prestazione al compito in T, 
 come misurato da P, migliora con l'esperienza E. 
 Questo è molto confuso, quindi lascia che lo restringa a te. 

English: 
In simple terms, machine
learning is a subset
of artificial intelligence
which provides machines the ability
to learn automatically and
improve with experience
without being explicitly
programmed to do so.
In the sense, it is the practice
of getting machines to solve problems
by gaining the ability to think.
But now you might be thinking
how can a machine think or make decisions.
Now machines are very similar to humans.
Okay, if you feed a machine
a good amount of data,
it will learn how to interpret, process,
and analyze this data by using
machine learning algorithms,
and it will help you solve world problems.
So what happens here is a lot of data
is fed to the machine.
The machine will train on this data
and it'll build a predictive model
with the help of machine
learning algorithms
in order to predict some outcome
or in order to find some
solution to a problem.
So it involves data.
You're gonna train the machine
and build a model by using
machine learning algorithms
in order to predict some outcome

Italian: 
 In termini semplici, l'apprendimento automatico è un sottoinsieme 
 dell'intelligenza artificiale 
 che fornisce alle macchine l'abilità 
 per imparare automaticamente e migliorare con l'esperienza 
 senza essere esplicitamente programmato per farlo. 
 Nel senso, è la pratica 
 di ottenere macchine per risolvere i problemi 
 acquisendo la capacità di pensare. 
 Ma ora potresti pensare 
 come può una macchina pensare o prendere decisioni. 
 Ora le macchine sono molto simili agli umani. 
 Va bene, se fornisci a una macchina una buona quantità di dati, 
 imparerà a interpretare, elaborare, 
 e analizza questi dati utilizzando algoritmi di apprendimento automatico, 
 e ti aiuterà a risolvere i problemi del mondo. 
 Quindi quello che succede qui sono molti dati 
 viene alimentato alla macchina. 
 La macchina si addestrerà su questi dati 
 e costruirà un modello predittivo 
 con l'aiuto di algoritmi di apprendimento automatico 
 per prevedere un risultato 
 o per trovare una soluzione a un problema. 
 Quindi coinvolge i dati. 
 Addestrerai la macchina 
 e crea un modello utilizzando algoritmi di apprendimento automatico 
 per prevedere un risultato 

English: 
or to find a solution to a problem.
So that is a simple way of understanding
what exactly machine learning is.
I'll be going into more
depth about machine learning,
so don't worry if you have
understood anything as of now.
Now let's discuss a couple terms
which are frequently
used in machine learning.
So, the first definition that
we come across very often
is an algorithm.
So, basically, a machine
learning algorithm
is a set of rules and
statistical techniques
that is used to learn patterns from data
and draw significant information from it.
Okay.
So, guys, the logic behind
a machine learning model
is basically the machine
learning algorithm.
Okay, an example of a
machine learning algorithm
is linear regression, or decision
tree, or a random forest.
All of these are machine
learning algorithms.
We'll define the logic behind
a machine learning model.
Now what is a machine learning model?
A model is actually the main component
of a machine learning process.
Okay, so a model is trained by using

Italian: 
 o per trovare una soluzione a un problema. 
 Quindi questo è un modo semplice di capire 
 cos'è esattamente l'apprendimento automatico. 
 Approfondirò l'apprendimento automatico, 
 quindi non preoccuparti se hai capito qualcosa fin d'ora. 
 Ora discutiamo un paio di termini 
 che vengono spesso utilizzati nell'apprendimento automatico. 
 Quindi, la prima definizione che incontriamo molto spesso 
 è un algoritmo. 
 Quindi, fondamentalmente, un algoritmo di apprendimento automatico 
 è un insieme di regole e tecniche statistiche 
 che viene utilizzato per apprendere modelli dai dati 
 e trarne informazioni significative. 
 Va bene. 
 Quindi, ragazzi, la logica dietro un modello di apprendimento automatico 
 è fondamentalmente l'algoritmo di apprendimento automatico. 
 Ok, un esempio di algoritmo di apprendimento automatico 
 è la regressione lineare, o albero decisionale, o una foresta casuale. 
 Tutti questi sono algoritmi di apprendimento automatico. 
 Definiremo la logica dietro 
 un modello di machine learning. 
 Cos'è un modello di machine learning? 
 Un modello è in realtà il componente principale 
 di un processo di apprendimento automatico. 
 Va bene, quindi un modello viene addestrato utilizzando 

Italian: 
 l'algoritmo di apprendimento automatico. 
 La differenza tra un algoritmo e un modello è questa 
 un algoritmo mappa tutte le decisioni 
 che un modello dovrebbe prendere 
 in base all'input fornito 
 per ottenere l'output corretto. 
 Quindi il modello utilizzerà 
 l'algoritmo di apprendimento automatico 
 al fine di trarre utili spunti dagli input 
 e darti un risultato molto preciso. 
 Questo è il modello di apprendimento automatico. 
 La prossima definizione che abbiamo è la variabile predittore. 
 Ora una variabile predittiva è qualsiasi caratteristica dei dati 
 che può essere utilizzato per prevedere l'output. 
 Va bene, lascia che ti faccia un esempio 
 per farti capire cos'è una variabile predittiva. 
 Diciamo che stai cercando di prevedere l'altezza di una persona, 
 a seconda del suo peso. 
 Quindi qui la tua variabile predittiva diventa il tuo peso, 
 perché stai usando il peso di una persona 
 per prevedere l'altezza della persona. 
 Quindi la tua variabile predittiva diventa il tuo peso. 
 La definizione successiva è variabile di risposta. 
 Ora nello stesso esempio, 

English: 
the machine learning algorithm.
The difference between an
algorithm and a model is that
an algorithm maps all the decisions
that a model is supposed to take
based on the given input
in order to get the correct output.
So the model will use
the machine learning algorithm
in order to draw useful
insights from the input
and give you an outcome
that is very precise.
That's the machine learning model.
The next definition we
have is predictor variable.
Now a predictor variable
is any feature of the data
that can be used to predict the output.
Okay, let me give you an example
to make you understand what
a predictor variable is.
Let's say you're trying to
predict the height of a person,
depending on his weight.
So here your predictor
variable becomes your weight,
because you're using
the weight of a person
to predict the person's height.
So your predictor variable
becomes your weight.
The next definition is response variable.
Now in the same example,

English: 
height would be the response variable.
Response variable is also known as
the target variable or
the output variable.
This is the variable that
you're trying to predict
by using the predictor variables.
So a response variable is the feature
or the output variable
that needs to be predicted
by using the predictor variables.
Next, we have something
known as training data.
Now training and testing
data are terminologies
that you'll come across very often
in a machine learning process.
So training data is basically
the data that I used
to create the machine learning model.
So, basically in a
machine learning process,
when you feed data into the machine,
it'll be divided into two parts.
So splitting the data into two parts
is also known as data splicing.
So you'll take your input data,
you'll divide it into two sections.
One you'll call the training data,
and the other you'll
call the testing data.
So then you have something
known as the testing data.
The training data is basically used
to create the machine learning model.
The training data helps
the model to identify

Italian: 
 l'altezza sarebbe la variabile di risposta. 
 La variabile di risposta è anche nota come 
 la variabile di destinazione o la variabile di output. 
 Questa è la variabile che stai cercando di prevedere 
 utilizzando le variabili predittore. 
 Quindi una variabile di risposta è la caratteristica 
 o la variabile di output che deve essere prevista 
 utilizzando le variabili predittore. 
 Successivamente, abbiamo qualcosa noto come dati di addestramento. 
 Ora i dati di addestramento e test sono terminologie 
 che incontrerai molto spesso 
 in un processo di apprendimento automatico. 
 Quindi i dati di allenamento sono fondamentalmente i dati che ho usato 
 per creare il modello di machine learning. 
 Quindi, fondamentalmente in un processo di apprendimento automatico, 
 quando inserisci i dati nella macchina, 
 sarà diviso in due parti. 
 Quindi dividendo i dati in due parti 
 è anche noto come data splicing. 
 Quindi prenderai i tuoi dati di input, 
 lo dividerai in due sezioni. 
 Uno che chiamerai i dati di allenamento, 
 e l'altro chiamerai i dati di test. 
 Quindi hai qualcosa noto come i dati di test. 
 Fondamentalmente vengono utilizzati i dati di allenamento 
 per creare il modello di machine learning. 
 I dati di addestramento aiutano il modello a identificare 

English: 
key trends and patterns
which are essential to predict the output.
Now the testing data is,
after the model is trained,
it must be tested in order
to evaluate how accurately
it can predict an outcome.
Now this is done by
using the testing data.
So, basically, the training
data is used to train the model.
The testing data is used to test
the efficiency of the model.
Now let's move on and get our next topic,
which is machine learning process.
So what is the machine learning process?
Now the machine learning process
involves building a predictive model
that can be used to find a solution
for a problem statement.
Now in order to solve any
problem in machine learning,
there are a couple of steps
that you need to follow.
Let's look at the steps.
The first step is you define
the objective of your problem.
And the second step is data gathering,
which is followed by preparing your data,
data exploration, building a model,
model evaluation, and
finally making predictions.

Italian: 
 tendenze e modelli chiave 
 essenziali per prevedere l'output. 
 Ora i dati di test sono, dopo che il modello è stato addestrato, 
 deve essere testato per valutarne la precisione 
 può prevedere un risultato. 
 Ora questo viene fatto utilizzando i dati di test. 
 Quindi, fondamentalmente, i dati di addestramento vengono utilizzati per addestrare il modello. 
 I dati di test vengono utilizzati per eseguire il test 
 l'efficienza del modello. 
 Ora andiamo avanti e passiamo al nostro prossimo argomento, 
 che è il processo di apprendimento automatico. 
 Allora qual è il processo di apprendimento automatico? 
 Ora il processo di apprendimento automatico 
 implica la costruzione di un modello predittivo 
 che può essere utilizzato per trovare una soluzione 
 per una dichiarazione del problema. 
 Ora, per risolvere qualsiasi problema nell'apprendimento automatico, 
 ci sono un paio di passaggi che devi seguire. 
 Diamo un'occhiata ai passaggi. 
 Il primo passo è definire l'obiettivo del tuo problema. 
 E il secondo passaggio è la raccolta dei dati, 
 seguito dalla preparazione dei dati, 
 esplorazione dei dati, creazione di un modello, 
 valutazione del modello e infine fare previsioni. 

English: 
Now, in order to understand
the machine learning process,
let's assume that you've
been given a problem
that needs to be solved
by using machine learning.
So the problem that you need to solve is
we need to predict the occurrence of rain
in your local area by
using machine learning.
So, basically, you need to predict
the possibility of rain by
studying the weather conditions.
So what we did here is we
basically looked at step number one,
which is define the
objective of the problem.
Now here you need to
answer questions such as
what are we trying to predict.
Is that output going to
be a continuous variable,
or is it going to be a discreet variable?
These are the kinds of questions
that you need to answer
in the first page,
which is defining the objective
of the problem, right?
So yeah, exactly what
are the target feature.
So here you need to understand
which is your target variable
and what are the different
predictor variables
that you need in order
to predict this outcome.
So here our target
variable will be basically
a variable that can tell us
whether it's going to rain or not.

Italian: 
 Ora, per comprendere il processo di apprendimento automatico, 
 supponiamo che ti sia stato dato un problema 
 che deve essere risolto utilizzando l'apprendimento automatico. 
 Quindi il problema che devi risolvere è 
 dobbiamo prevedere il verificarsi della pioggia 
 nella tua area locale utilizzando l'apprendimento automatico. 
 Quindi, fondamentalmente, devi prevedere 
 la possibilità di pioggia studiando le condizioni meteorologiche. 
 Quindi quello che abbiamo fatto qui siamo noi 
 fondamentalmente guardato al passaggio numero uno, 
 che è definire l'obiettivo del problema. 
 Ora qui devi rispondere a domande come 
 cosa stiamo cercando di prevedere. 
 Quell'output sarà una variabile continua, 
 o sarà una variabile discreta? 
 Questi sono i tipi di domande a cui devi rispondere 
 nella prima pagina, 
 che definisce l'obiettivo del problema, giusto? 
 Quindi sì, esattamente quali sono le funzionalità di destinazione. 
 Quindi qui devi capire 
 che è la tua variabile di destinazione 
 e quali sono le diverse variabili predittive 
 di cui hai bisogno per prevedere questo risultato. 
 Quindi qui la nostra variabile di destinazione sarà fondamentalmente 
 una variabile che può dirci 
 se pioverà o no. 

Italian: 
 I dati di input sono che avremo bisogno di dati come forse 
 la temperatura in un giorno particolare 
 o il livello di umidità, le precipitazioni e così via. 
 Quindi è necessario definire l'obiettivo in questa fase. 
 Quindi, fondamentalmente, devi farti un'idea del problema 
 in questo deposito. 
 Un'altra domanda che devi porci 
 è che tipo di problema stai risolvendo. 
 È un problema di classificazione binaria, 
 o è un problema di raggruppamento 
 o è un problema di regressione? 
 Ora, qualcuno di voi potrebbe non essere familiare 
 con i termini classificazione raggruppamento 
 e regressione in termini di machine learning. 
 Non preoccuparti, ti spiego tutti questi termini 
 nelle prossime diapositive. 
 Tutto quello che devi capire nella fase uno 
 è necessario definire come risolvere il problema. 
 Devi capire che tipo di dati 
 devi risolvere il problema, 
 come affronterai il problema, 
 cosa stai cercando di prevedere, 
 di quali variabili avrai bisogno per prevedere il risultato, 
 e così via. 
 Andiamo avanti e guardiamo al passaggio numero due, 

English: 
Input data is we'll
need data such as maybe
the temperature on a particular day
or the humidity level, the
precipitation, and so on.
So you need to define the
objective at this stage.
So basically, you have to
form an idea of the problem
at this storage.
Another question that
you need to ask yourself
is what kind of problem are you solving.
Is this a binary classification problem,
or is this a clustering problem,
or is this a regression problem?
Now, a lo of you might not be familiar
with the terms classification clustering
and regression in terms
of machine learning.
Don't worry, I'll explain
all of these terms
in the upcoming slides.
All you need to understand at step one
is you need to define how you're
going to solve the problem.
You need to understand what sort of data
you need to solve the problem,
how you're going to approach the problem,
what are you trying to predict,
what variables you'll need in
order to predict the outcome,
and so on.
Let's move on and look at step number two,

English: 
which is data gather.
Now in this stage, you must
be asking questions such as,
what kind of data is needed
to solve this problem?
And is this data available?
And if it is available, from
where can I get this data
and how can I get the data?
Data gathering is one of
the most time-consuming
steps in machine learning process.
If you have to go manually
and collect the data,
it's going to take a lot of time.
But lucky for us, there are
a lot of resources online,
which were wide data sets.
All you need to do is web scraping
where you just have to go
ahead and download data.
One of the websites I can
tell you all about is Cargill.
So if you're a beginner
in machine learning,
don't worry about data
gathering and all of that.
All you have to do is go
to websites such as cargill
and just download the data set.
So coming back to the problem
that we are discussing,
which is predicting the weather,
the data needed for weather forecasting
includes measures like humidity level,
the temperature, the
pressure, the locality,

Italian: 
 che è raccolta di dati. 
 In questa fase, devi porre domande come, 
 che tipo di dati sono necessari per risolvere questo problema? 
 E questi dati sono disponibili? 
 E se è disponibile, da dove posso ottenere questi dati 
 e come posso ottenere i dati? 
 La raccolta dei dati è una delle più dispendiose in termini di tempo 
 passaggi nel processo di apprendimento automatico. 
 Se devi andare manualmente e raccogliere i dati, 
 ci vorrà molto tempo. 
 Ma fortunatamente per noi, ci sono molte risorse online, 
 che erano ampi set di dati. 
 Tutto quello che devi fare è il web scraping 
 dove devi solo andare avanti e scaricare i dati. 
 Uno dei siti web di cui posso parlarvi è Cargill. 
 Quindi, se sei un principiante nell'apprendimento automatico, 
 non preoccuparti per la raccolta dei dati e tutto il resto. 
 Tutto quello che devi fare è andare su siti web come cargill 
 e scarica il set di dati. 
 Quindi, tornando al problema di cui stiamo discutendo, 
 che predice il tempo, 
 i dati necessari per le previsioni meteorologiche 
 include misure come il livello di umidità, 
 la temperatura, la pressione, la località, 

English: 
whether or not you live in a hill station,
such data has to be collected
or stored for analysis.
So all the data is collected
during the data gathering stage.
This step is followed by data preparation,
or also known as data cleaning.
So if you're going around collecting data,
it's almost never in the right format.
And eve if you are taking data
from online resources from any website,
even then, the data will require
cleaning and preparation.
The data is never in the right format.
You have to do some sort of preparation
and some sort of cleaning
in order to make the
data ready for analysis.
So what you'll encounter
while cleaning data
is you'll encounter a
lot of inconsistencies
in the data set,
like you'll encounter som missing values,
redundant variables, duplicate
values, and all of that.
So removing such inconsistencies
is very important,
because they might lead to any wrongful
computations and predictions.
Okay, so at this stage
you can scan the data set
for any inconsistencies,

Italian: 
 che tu viva o meno in una stazione di collina, 
 tali dati devono essere raccolti o archiviati per l'analisi. 
 Quindi tutti i dati vengono raccolti 
 durante la fase di raccolta dei dati. 
 Questo passaggio è seguito dalla preparazione dei dati, 
 o anche noto come pulizia dei dati. 
 Quindi, se stai raccogliendo dati, 
 non è quasi mai nel formato giusto. 
 E vigilia se prendi dati 
 da risorse online da qualsiasi sito web, 
 anche allora, i dati richiederanno pulizia e preparazione. 
 I dati non sono mai nel formato corretto. 
 Devi fare una sorta di preparazione 
 e una sorta di pulizia 
 per rendere i dati pronti per l'analisi. 
 Quindi cosa incontrerai durante la pulizia dei dati 
 è che incontrerai molte incongruenze 
 nel set di dati, 
 come se dovessi incontrare alcuni valori mancanti, 
 variabili ridondanti, valori duplicati e tutto il resto. 
 Quindi rimuovere tali incongruenze è molto importante, 
 perché potrebbero portare a qualsiasi illecito 
 calcoli e previsioni. 
 Ok, quindi in questa fase puoi scansionare il set di dati 
 per eventuali incongruenze, 

Italian: 
 e puoi aggiustarli lì e lì. 
 Ora lascia che ti dica un piccolo fatto sulla pulizia dei dati. 
 Quindi c'è stato un sondaggio che è stato condotto lo scorso anno circa. 
 Non ne sono sicuro. 
 E è stato chiesto a molti data scientist 
 quale passaggio è stato il più difficile o il più 
 fastidioso e richiede tempo di tutti. 
 E ha detto l'80% del data scientist 
 era la pulizia dei dati. 
 La pulizia dei dati richiede l'80% del tempo. 
 Quindi non è molto facile sbarazzarsi dei valori mancanti 
 e dati danneggiati. 
 E anche se elimini i valori mancanti, 
 a volte il tuo set di dati potrebbe essere influenzato. 
 Potrebbe essere di parte perché forse una variabile 
 ha troppi valori mancanti, 
 e questo influenzerà il tuo risultato. 
 Quindi dovrai risolvere questo problema, 
 dovremo occuparci di tutti questi dati mancanti 
 e dati danneggiati. 
 Quindi la pulizia dei dati è in realtà uno dei passaggi più difficili 
 nel processo di apprendimento automatico. 
 Ok, ora andiamo avanti e guardiamo al nostro prossimo passaggio, 
 che è l'analisi esplorativa dei dati. 
 Quindi qui quello che fai è fondamentalmente diventare 
 un detective sul palco. 

English: 
and you can fix them then and there.
Now let me give you a small
fact about data cleaning.
So there was a survey that
was ran last year or so.
I'm not sure.
And a lot of data scientists were asked
which step was the most
difficult or the most
annoying and time-consuming of all.
And 80% of the data scientist said
it was data cleaning.
Data cleaning takes up 80% of their time.
So it's not very easy to
get rid of missing values
and corrupted data.
And even if you get rid of missing values,
sometimes your data
set might get affected.
It might get biased
because maybe one variable
has too many missing values,
and this will affect your outcome.
So you'll have to fix such issue,
we'll have to deal with
all of this missing data
and corrupted data.
So data cleaning is actually
one of the hardest steps
in machine learning process.
Okay, now let's move on
and look at our next step,
which is exploratory data analysis.
So here what you do is basically become
a detective in the stage.

English: 
So this stage, which is EDA
or exploratory data analysis,
is like the brainstorming
stage of machine learning.
Data exploration involves
understanding the patterns
and the trends in your data.
So at this stage, all the
useful insights are drawn
and any correlations between
the various variables
are understood.
What do I mean by trends and
patterns and correlations?
Now let's consider our example
which is we have to predict the rainfall
on a particular day.
So we know that there is a
strong possibility of rain
if the temperature has fallen law.
So we know that our output will depend on
variables such as temperature,
humidity, and so on.
Now to what level it
depends on these variables,
we'll have to find out that.
We'll have to find out the patterns,
and we'll find out the correlations
between such variables.
So such patterns and trends
have to be understood
and mapped at this stage.
So this is what exploratory
data analysis is about.
It's the most important
part of machine learning.
This is where you'll understand

Italian: 
 Quindi questa fase, che è EDA o analisi esplorativa dei dati, 
 è come la fase di brainstorming dell'apprendimento automatico. 
 L'esplorazione dei dati implica la comprensione dei modelli 
 e le tendenze nei tuoi dati. 
 Quindi, in questa fase, vengono tratte tutte le intuizioni utili 
 ed eventuali correlazioni tra le varie variabili 
 sono compresi. 
 Cosa intendo per tendenze, modelli e correlazioni? 
 Consideriamo ora il nostro esempio 
 cioè dobbiamo prevedere le precipitazioni 
 in un giorno particolare. 
 Quindi sappiamo che c'è una forte possibilità di pioggia 
 se la temperatura è caduta legge. 
 Quindi sappiamo che il nostro output dipenderà da 
 variabili come temperatura, umidità e così via. 
 Ora a quale livello dipende da queste variabili, 
 dovremo scoprirlo. 
 Dovremo scoprire gli schemi, 
 e scopriremo le correlazioni 
 tra tali variabili. 
 Quindi tali modelli e tendenze devono essere compresi 
 e mappato in questa fase. 
 Quindi questo è lo scopo dell'analisi esplorativa dei dati. 
 È la parte più importante dell'apprendimento automatico. 
 Qui è dove capirai 

Italian: 
 quali sono esattamente i tuoi dati 
 e come puoi formare la soluzione al tuo problema. 
 Il passaggio successivo in un processo di apprendimento automatico 
 sta creando un modulo di machine learning. 
 Quindi tutte le intuizioni e gli schemi 
 che si ricava durante l'esplorazione dei dati 
 vengono utilizzati per creare un modello di machine learning. 
 Quindi questa fase inizia sempre dividendo il set di dati 
 in due parti, che sono dati di addestramento e dati di test. 
 Ne ho già discusso con te 
 che i dati che hai utilizzato in un processo di apprendimento automatico 
 è sempre diviso in due parti. 
 Abbiamo i dati di allenamento e abbiamo i dati di test. 
 Ora, quando costruisci un modello, 
 usi sempre i dati di allenamento. 
 Quindi fai sempre uso dei dati di allenamento 
 per costruire il modello. 
 Molti di voi potrebbero chiedersi cosa sono i dati di addestramento. 
 È diverso dai dati di input 
 che stai alimentando con la macchina 
 o è diverso dai dati di test? 
 Ora i dati di addestramento sono gli stessi dati di input 
 che stai alimentando alla macchina. 
 L'unica differenza è che tu sei 
 suddividendo il set di dati in due. 

English: 
what exactly your data is
and how you can form the
solution to your problem.
The next step in a
machine learning process
is building a machine learning module.
So all the insights and the patterns
that you derive during
the data exploration
are used to build a
machine learning model.
So this stage always begins
by splitting the data set
into two parts, which is
training data and testing data.
I've already discussed with you
that the data that you used
in a machine learning process
is always split into two parts.
We have the training data
and we have the testing data.
Now when you're building a model,
you always use the training data.
So you always make use
of the training data
in order to build the model.
Now a lot of you might be
asking what is training data.
Is it different from the input data
that you're feeding with the machine
or is it different from the testing data?
Now training data is the same input data
that you're feeding to the machine.
The only difference is that you're
splitting the data set into two.

Italian: 
 Stai scegliendo in modo casuale l'80% dei tuoi dati 
 e stai assegnando a scopo di formazione. 
 E il restante 20%, probabilmente, 
 lo assegnerai a scopo di test. 
 Quindi ragazzi, ricordate sempre un'altra cosa 
 i dati di allenamento sono sempre molto di più 
 dei tuoi dati di test, 
 ovviamente perché devi addestrare la tua macchina. 
 E più dati inserisci nella macchina 
 durante la fase di formazione, 
 meglio sarà durante la fase di test. 
 Ovviamente predice risultati migliori 
 se viene addestrato su più dati. 
 Corretta? 
 Quindi il modello sta fondamentalmente usando 
 l'algoritmo di apprendimento automatico che prevede l'output 
 utilizzando i dati forniti ad esso. 
 Ora, nel caso della previsione delle precipitazioni, 
 l'output sarà una variabile categoriale, 
 perché faremo previsioni 
 se pioverà o no. 
 Ok, quindi diciamo di avere una variabile di output chiamata rain. 
 I due possibili valori che questa variabile può assumere 
 sì, pioverà e no non pioverà. 
 Esatto, quindi è venuto fuori. 
 Il nostro risultato è una classificazione o una variabile categoriale. 

English: 
You're randomly picking 80% of your data
and you're assigning for training purpose.
And the rest 20%, probably,
you'll assign it for testing purpose.
So guys, always remember
another thing that
the training data is always much more
than your testing data,
obviously because you need
to train your machine.
And the more data you feed the machine
during the training phase,
the better it will be
during the testing phase.
Obviously, it'll predict better outcomes
if it is being trained on more data.
Correct?
So the model is basically using
the machine learning algorithm
that predicts the output
by using the data fed to it.
Now in the case of predicting rainfall,
the output will be a categorical variable,
because we'll be predicting
whether it's going to rain or not.
Okay, so let's say we have an
output variable called rain.
The two possible values
that this variable can take
is yes it's going to rain
and no it won't rain.
Correct, so that is out come.
Our outcome is a classification
or a categorical variable.

Italian: 
 Quindi per questi casi in cui il tuo risultato 
 è una variabile categoriale, 
 utilizzerai algoritmi di classificazione. 
 Ancora una volta, esempio di algoritmo di classificazione 
 è la regressione logistica 
 oppure puoi anche supportare macchine vettoriali, 
 puoi usare K vicino più vicino, 
 e puoi anche usare Bayes ingenuo e così via. 
 Ora non preoccuparti di questi termini, 
 Discuterò con te di tutti questi algoritmi. 
 Ma ricordalo mentre stai costruendo 
 un modello di machine learning, 
 farai uso dei dati di addestramento. 
 Addestrerai il modello utilizzando i dati di addestramento 
 e l'algoritmo di apprendimento automatico. 
 Come ho detto, scegliendo l'algoritmo di apprendimento automatico, 
 dipende dall'affermazione del problema 
 che stai cercando di risolvere 
 a causa del numero N di algoritmi di apprendimento automatico. 
 Dovremo scegliere l'algoritmo 
 questo è il più adatto per la tua dichiarazione del problema. 
 Quindi il passaggio numero sei è la valutazione del modello 
 e ottimizzazione. 
 Ora dopo aver finito di costruire un modello 
 utilizzando il set di dati di addestramento, 
 è finalmente giunto il momento di mettere alla prova il modello su strada. 
 Il set di dati di test viene utilizzato per il controllo 
 l'efficienza del modello 

English: 
So for such cases where your outcome
is a categorical variable,
you'll be using classification algorithms.
Again, example of a
classification algorithm
is logistic regression
or you can also support vector machines,
you can use K nearest neighbor,
and you can also use
naive Bayes, and so on.
Now don't worry about these terms,
I'll be discussing all
these algorithms with you.
But just remember that
while you're building
a machine learning model,
you'll make use of the training data.
You'll train the model by
using the training data
and the machine learning algorithm.
Now like I said, choosing the
machine learning algorithm,
depends on the problem statement
that you're trying to solve
because of N number of
machine learning algorithms.
We'll have to choose the algorithm
that is the most suitable
for your problem statement.
So step number six is model evaluation
and optimization.
Now after you've done building a model
by using the training data set,
it is finally time to
put the model road test.
The testing data set is used to check
the efficiency of the model

English: 
and how accurately it
can predict the outcome.
So once the accuracy is calculated,
any further improvements in the model
can be implemented during this stage.
The various methods that can help you
improve the performance of the model,
like you can use parameter tuning
and cross validation methods
in order to improve the
performance of the model.
Now the main things you need to remember
during model evaluation and optimization
is that model evaluation is nothing but
you're testing how well your
model can predict the outcome.
So at this stage, you will be
using the testing data set.
In the previous stage,
which is building a model,
you'll be using the training data set.
But in the model evaluation stage,
you'll be using the testing data set.
Now once you've tested your model,
you need to calculate the accuracy.
You need to calculate how accurately
your model is predicting the outcome.
After that, if you find that you need to
improve your model in
some way or the other,
because the accuracy is not very good,
then you'll use methods
such as parameter tuning.

Italian: 
 e quanto accuratamente può prevedere il risultato. 
 Quindi, una volta calcolata la precisione, 
 eventuali ulteriori miglioramenti nel modello 
 può essere implementato durante questa fase. 
 I vari metodi che possono aiutarti 
 migliorare le prestazioni del modello, 
 come puoi usare la regolazione dei parametri 
 e metodi di convalida incrociata 
 al fine di migliorare le prestazioni del modello. 
 Ora le cose principali che devi ricordare 
 durante la valutazione e l'ottimizzazione del modello 
 è che la valutazione del modello non è altro che 
 stai testando la capacità del tuo modello di prevedere il risultato. 
 Quindi, in questa fase, utilizzerai il set di dati di test. 
 Nella fase precedente, che consiste nella costruzione di un modello, 
 utilizzerai il set di dati di addestramento. 
 Ma nella fase di valutazione del modello, 
 utilizzerai il set di dati di test. 
 Ora, una volta che hai testato il tuo modello, 
 è necessario calcolare la precisione. 
 Devi calcolare quanto accuratamente 
 il tuo modello prevede il risultato. 
 Dopodiché, se trovi che è necessario 
 migliorare il tuo modello in un modo o nell'altro, 
 perché la precisione non è molto buona, 
 quindi utilizzerai metodi come l'ottimizzazione dei parametri. 

English: 
Don't worry about these terms,
I'll discuss all of this with you,
but I'm just trying to make sure
that you're understanding the concept
behind each of the phases
and machine learning.
It's very important you
understand each step.
Okay, now let's move on and look at
the last stage of machine
learning, which is predictions.
Now, once a model is evaluated
and once you've improved it,
it is finally used to make predictions.
The final output can either
be a categorical variable
or a continuous variable.
Now all of this depends
on your problem statement.
Don't get confused about
continuous variables,
categorical variables.
I'll be discussing all of this.
Now in our case, because we're predicting
the occurrence of rainfall,
the output will be categorical variable.
It's obvious because we're predicting
whether it's going to rain or not.
The result, we understand
that this is a classification problem
because we have a categorical variable.
So that was the entire
machine learning process.
Now it's time to learn
about the different ways
in which machines can learn.
So let's move ahead

Italian: 
 Non preoccuparti di questi termini, 
 Discuterò di tutto questo con te, 
 ma sto solo cercando di essere sicuro 
 che stai comprendendo il concetto 
 dietro ciascuna delle fasi e l'apprendimento automatico. 
 È molto importante che tu comprenda ogni passaggio. 
 Ok, ora andiamo avanti e guardiamo 
 l'ultima fase dell'apprendimento automatico, ovvero le previsioni. 
 Ora, una volta che un modello viene valutato 
 e una volta migliorato, 
 viene infine utilizzato per fare previsioni. 
 L'output finale può essere una variabile categoriale 
 o una variabile continua. 
 Ora tutto questo dipende dalla tua dichiarazione del problema. 
 Non ti confondere sulle variabili continue, 
 variabili categoriali. 
 Discuterò di tutto questo. 
 Ora nel nostro caso, perché stiamo prevedendo 
 il verificarsi di precipitazioni, 
 l'output sarà una variabile categoriale. 
 È ovvio perché stiamo prevedendo 
 se pioverà o no. 
 Il risultato, lo capiamo 
 che questo è un problema di classificazione 
 perché abbiamo una variabile categoriale. 
 Quindi questo era l'intero processo di apprendimento automatico. 
 Ora è il momento di conoscere i diversi modi 
 in cui le macchine possono imparare. 
 Quindi andiamo avanti 

English: 
and look at the types of machine learning.
Now this is one of the most
interesting concepts in machine learning,
the three different ways
in which machines learn.
There is something known
as supervised learning,
unsupervised learning, and
reinforcement learning.
So we'll go through this one by one.
We'll understand what
supervised learning is first,
and then we'll look at
the other two types.
So defined supervised learning,
it is basically a
technique in which we teach
or train the machine by using the data,
which is well labeled.
Now, in order to understand
supervised learning,
let's consider a small example.
So, as kids, we all needed
guidance to solve math problems.
A lot of us had trouble
solving math problems.
So our teachers always help
us understand what addition is
an dhow it is done.
Similarly, you can think
of supervised learning
as a type of machine learning
that involves a guide.
The label data set is a teacher

Italian: 
 e guarda i tipi di machine learning. 
 Ora questo è uno dei più 
 concetti interessanti nell'apprendimento automatico, 
 i tre diversi modi in cui le macchine apprendono. 
 C'è qualcosa noto come apprendimento supervisionato, 
 apprendimento non supervisionato e apprendimento per rinforzo. 
 Quindi esamineremo questo uno per uno. 
 Capiremo innanzitutto cos'è l'apprendimento supervisionato, 
 e poi esamineremo gli altri due tipi. 
 Apprendimento supervisionato così definito, 
 è fondamentalmente una tecnica in cui insegniamo 
 o addestrare la macchina utilizzando i dati, 
 che è ben etichettato. 
 Ora, per comprendere l'apprendimento supervisionato, 
 consideriamo un piccolo esempio. 
 Quindi, da bambini, avevamo tutti bisogno di una guida per risolvere i problemi di matematica. 
 Molti di noi hanno avuto problemi a risolvere problemi di matematica. 
 Quindi i nostri insegnanti ci aiutano sempre a capire cos'è l'aggiunta 
 un dhow è fatto. 
 Allo stesso modo, puoi pensare all'apprendimento supervisionato 
 come un tipo di apprendimento automatico 
 che coinvolge una guida. 
 Il set di dati dell'etichetta è un insegnante 

Italian: 
 che ti insegnerà a comprendere gli schemi nei dati. 
 Quindi il set di dati dell'etichetta non è altro che il set di dati di addestramento. 
 Spiegherò di più su questo tra un po '. 
 Quindi, per comprendere meglio l'apprendimento supervisionato, 
 guardiamo la figura sullo schermo. 
 Proprio qui stiamo alimentando la macchina 
 immagine di Tom e Jerry, 
 e l'obiettivo è che la macchina identifichi 
 e classificare le immagini in due classi. 
 Uno conterrà immagini di Tom 
 e l'altra conterrà immagini di Jerry. 
 Ora la cosa principale che devi notare 
 nell'apprendimento supervisionato è un insieme di dati di formazione. 
 Il set di dati di addestramento sarà etichettato molto bene. 
 Ora cosa intendo quando dico questo 
 il set di dati di addestramento è etichettato. 
 Fondamentalmente, quello che stiamo facendo è dire alla macchina 
 questo è l'aspetto di Tom e questo è l'aspetto di Jerry. 
 In questo modo, stai addestrando la macchina 
 utilizzando i dati dell'etichetta. 
 Quindi la cosa principale che stai facendo è etichettare 
 ogni dato di input che fornisci al modello. 
 Quindi, in pratica, l'intero set di dati di allenamento è etichettato. 
 Ogni volta che dai un'immagine di Tom, 
 ci sarà un'etichetta che dice che questo è Tom. 

English: 
that will train you to understand
the patterns in the data.
So the label data set is nothing
but the training data set.
I'll explain more about this in a while.
So, to understand
supervised learning better,
let's look at the figure on the screen.
Right here we're feeding the machine
image of Tom and Jerry,
and the goal is for
the machine to identify
and classify the images into two classes.
One will contain images of Tom
and the the other will
contain images of Jerry.
Now the main thing that you need to note
in supervised learning
is a training data set.
The training data set is
going to be very well labeled.
Now what do I mean when I say that
training data set is labeled.
Basically, what we're doing
is we're telling the machine
this how Tom looks and
this is how Jerry looks.
By doing this, you're training the machine
by using label data.
So the main thing that you're
doing is you're labeling
every input data that
you're feeding to the model.
So, basically, you're entire
training data set is labeled.
Whenever you're giving an image of Tom,
there's gonna be a label
there saying this is Tom.

English: 
And when you're giving an image of Jerry,
you're saying that this
is how Jerry looks.
So, basically, you're guiding the machine
and you're telling that,
"Listen, this is how Tom looks,
"this is how Jerry looks,
"and now you need to classify them
"into two different classes."
That's how supervised learning works.
Apart from that, it's
the same old process.
After getting the input data,
you're gonna perform data cleaning.
Then there's exploratory data analysis,
followed by creating the model
by using the machine learning algorithm,
and then this is followed
by model evaluation,
and finally, your predictions.
Now, one more thing to note here is that
the output that you get by
using supervised learning
is also labeled output.
So, basically, you'll
get two different classes
of name Tom and one of name Jerry,
and you'll get them labeled.
That is how supervised learning works.
The most important thing
in supervised learning
is that you're training the model by using
labeled data set.
Now let's move on and look
at unsupervised learning.

Italian: 
 E quando dai un'immagine di Jerry, 
 stai dicendo che questo è l'aspetto di Jerry. 
 Quindi, fondamentalmente, stai guidando la macchina 
 e lo dici: "Ascolta, questo è l'aspetto di Tom, 
 "questo è l'aspetto di Jerry, 
 "e ora devi classificarli 
 "in due classi differenti." 
 Ecco come funziona l'apprendimento supervisionato. 
 A parte questo, è lo stesso vecchio processo. 
 Dopo aver ottenuto i dati di input, 
 eseguirai la pulizia dei dati. 
 Poi c'è l'analisi esplorativa dei dati, 
 seguito dalla creazione del modello 
 utilizzando l'algoritmo di apprendimento automatico, 
 e poi questo è seguito dalla valutazione del modello, 
 e infine le tue previsioni. 
 Ora, un'altra cosa da notare qui è che 
 l'output che si ottiene utilizzando l'apprendimento supervisionato 
 è anche etichettato come output. 
 Quindi, fondamentalmente, otterrai due classi diverse 
 di nome Tom e uno di nome Jerry, 
 e li farai etichettare. 
 Ecco come funziona l'apprendimento supervisionato. 
 La cosa più importante nell'apprendimento supervisionato 
 è che stai addestrando il modello utilizzando 
 insieme di dati etichettato. 
 Ora andiamo avanti e guardiamo all'apprendimento senza supervisione. 

Italian: 
 Guardiamo lo stesso esempio e capiamo 
 come funziona l'apprendimento senza supervisione. 
 Allora, cos'è esattamente l'apprendimento senza supervisione? 
 Ora questo implica l'addestramento utilizzando dati senza etichetta 
 e consentire al modello di agire in base a tali informazioni 
 senza alcuna guida. 
 Tutto a posto. 
 Come suggerisce il nome stesso, 
 non c'è supervisione qui. 
 È apprendimento senza supervisione. 
 Quindi pensa all'apprendimento senza supervisione come un bambino intelligente 
 che impara senza alcuna guida. 
 OK, in questo tipo di apprendimento automatico 
 il modello non è alimentato con alcun dato di etichetta, 
 come nel modello non ha idea che questo sia 
 l'immagine di Tom e questo è Jerry. 
 Calcola schemi 
 e la differenza tra Tom e Jerry da sola 
 prendendo tonnellate e tonnellate di dati. 
 Ora come pensi che la macchina identifichi questo come Tom, 
 e poi finalmente ci dà l'output come 
 sì, questo è Tom, questo è Jerry. 
 Ad esempio, identifica le caratteristiche importanti di Tom, 
 come orecchie a punta, di dimensioni maggiori e così via, 

English: 
We look at the same example and understand
how unsupervised learning works.
So what exactly is unsupervised learning?
Now this involves training
by using unlabeled data
and allowing the model to
act on that information
without any guidance.
Alright.
Like the name suggest itself,
there is no supervision here.
It's unsupervised learning.
So think of unsupervised
learning as a smart kid
that learns without any guidance.
Okay, in this type of machine learning,
the model is not fed with any label data,
as in the model has no clue that this is
the image of Tom and this is Jerry.
It figures out patterns
and the difference between
Tom and Jerry on its own
by taking in tons and tons of data.
Now how do you think the
machine identifies this as Tom,
and then finally gives us the output like
yes this is Tom, this is Jerry.
For example, it identifies
prominent features of Tom,
such as pointy ears,
bigger in size, and so on,

English: 
to understand that this
image is of type one.
Similarly, it finds out features in Jerry,
and knows that this image is of type two,
meaning that the first image
is different from the second image.
So what the unsupervised
learning algorithm
or the model does is it'll
form two different clusters.
It'll form one cluster
which are very similar,
and the other cluster
which is very different
from the first cluster.
That's how unsupervised learning works.
So the important things
that you need to know
in unsupervised learning
is that you're gonna feed
the machine unlabeled data.
The machine has to understand the patterns
and discover the output on its own.
And finally, the machine
will form clusters
based on feature similarity.
Now let's move on and locate
the last type of machine learning,
which is reinforcement learning.
Reinforcement learning is quite different
when compared to supervised
and unsupervised learning.
What exactly is reinforcement learning?
It is a part of machine
learning where an agent

Italian: 
 per capire che questa immagine è di tipo uno. 
 Allo stesso modo, scopre le caratteristiche di Jerry, 
 e sa che questa immagine è di tipo due, 
 il che significa che la prima immagine 
 è diverso dalla seconda immagine. 
 Allora, qual è l'algoritmo di apprendimento senza supervisione 
 o il modello fa è che formerà due diversi cluster. 
 Formerà un cluster molto simile, 
 e l'altro cluster che è molto diverso 
 dal primo ammasso. 
 È così che funziona l'apprendimento senza supervisione. 
 Quindi le cose importanti che devi sapere 
 nell'apprendimento senza supervisione 
 è che fornirai dati senza etichetta alla macchina. 
 La macchina deve capire gli schemi 
 e scopri l'output da solo. 
 Infine, la macchina formerà dei cluster 
 basato sulla somiglianza delle caratteristiche. 
 Ora andiamo avanti e individuiamo 
 l'ultimo tipo di machine learning, 
 che è l'apprendimento per rinforzo. 
 L'apprendimento per rinforzo è molto diverso 
 rispetto all'apprendimento supervisionato e non supervisionato. 
 Cos'è esattamente l'apprendimento per rinforzo? 
 È una parte dell'apprendimento automatico in cui un agente 

English: 
is put in an environment,
and he learns to behave
in this environment
by performing certain actions,
and observing the rewards which
is gets from those actions.
To understand what
reinforcement learning is,
imagine that you were dropped
off at an isolate island.
What would you do?
Now panic.
Yes, of course, initially,
we'll all panic.
But as time passes by, you will learn
how to live on the island.
You will explode the environment,
you will understand
the climate conditions,
the type of food that grows there,
the dangers of the island so on.
This is exactly how
reinforcement learning works.
It basically involves an agent,
which is you stuck on the island,
that is put in an unknown
environment, which is the island,
where he must learn by
observing and performing
actions that result in rewards.
So reinforcement learning is mainly used
in advanced machine learning areas
such as self-driving cars and AlphaGo.
I'm sure a lot of you
have heard of AlphaGo.

Italian: 
 è messo in un ambiente, 
 e impara a comportarsi in questo ambiente 
 eseguendo determinate azioni, 
 e osservare le ricompense che si ottengono da quelle azioni. 
 Per capire cos'è l'apprendimento per rinforzo, 
 immagina di essere stato portato su un'isola isolata. 
 Cosa faresti? 
 Adesso panico. 
 Sì, certo, inizialmente, saremo tutti presi dal panico. 
 Ma col passare del tempo, imparerai 
 come vivere sull'isola. 
 Farai esplodere l'ambiente, 
 capirai le condizioni climatiche, 
 il tipo di cibo che cresce lì, 
 i pericoli dell'isola così via. 
 Questo è esattamente il modo in cui funziona l'apprendimento per rinforzo. 
 Fondamentalmente coinvolge un agente, 
 che sei bloccato sull'isola, 
 che si trova in un ambiente sconosciuto, quale è l'isola, 
 dove deve imparare osservando ed eseguendo 
 azioni che si traducono in ricompense. 
 Quindi l'apprendimento per rinforzo viene utilizzato principalmente 
 in aree avanzate di machine learning 
 come auto a guida autonoma e AlphaGo. 
 Sono sicuro che molti di voi hanno sentito parlare di AlphaGo. 

Italian: 
 Quindi, la logica dietro AlphaGo 
 non è altro che apprendimento per rinforzo e apprendimento profondo. 
 E nell'apprendimento per rinforzo, 
 non ci sono realmente dati di input forniti all'agente. 
 Tutto quello che deve fare è esplorare 
 tutto da zero 
 è come un neonato senza informazioni su nulla. 
 Deve andare in giro ad esplorare l'ambiente, 
 e ottenere ricompense ed eseguire alcune azioni 
 che si traduce in entrambi i premi 
 o in una sorta di punizione. 
 Va bene. 
 Quindi questo riassume i tipi di apprendimento automatico. 
 Prima di andare avanti 
 Vorrei discutere la differenza 
 tra i tre tipi di machine learning, 
 solo per rendere chiaro il concetto a tutti voi. 
 Quindi iniziamo guardando le definizioni di ciascuno. 
 Nell'apprendimento supervisionato, 
 la macchina apprenderà utilizzando i dati dell'etichetta. 
 Nell'apprendimento non supervisionato, saranno dati senza etichetta, 
 e la macchina deve imparare senza alcuna supervisione. 
 Nell'apprendimento per rinforzo, ci sarà un agente 
 che interagisce con l'ambiente 
 producendo azioni e scoprendo errori o ricompense 
 basato sulle sue azioni. 
 Ora quali sono i tipi di problemi 

English: 
So, the logic behind AlphaGo
is nothing but reinforcement
learning and deep learning.
And in reinforcement learning,
there is not really any input
data given to the agent.
All he has to do is he has to explore
everything from scratch
it's like a newborn baby with
no information about anything.
He has to go around
exploring the environment,
and getting rewards, and
performing some actions
which results in either rewards
or in some sort of punishment.
Okay.
So that sums up the types
of machine learning.
Before we move ahead,
I'd like to discuss the difference
between the three types
of machine learning,
just to make the concept clear to you all.
So let's start by looking
at the definitions of each.
In supervised learning,
the machine will learn
by using the label data.
In unsupervised learning,
they'll be unlabeled data,
and the machine has to learn
without any supervision.
In reinforcement learning,
there'll be an agent
which interacts with the environment
by producing actions and
discover errors or rewards
based on his actions.
Now what are the type of problems

Italian: 
 che può essere risolto utilizzando supervisionato, non supervisionato, 
 e apprendimento per rinforzo. 
 Quando si tratta di apprendimento supervisionato, 
 i due principali tipi di problemi che vengono risolti 
 è problemi di regressione e problemi di classificazione. 
 Quando si tratta di apprendimento senza supervisione, 
 sono problemi di associazione e raggruppamento. 
 Quando si tratta di apprendimento per rinforzo, 
 sono problemi basati sulla ricompensa. 
 Discuterò di regressione, classificazione, 
 clustering e tutto questo nelle prossime diapositive, 
 quindi non preoccuparti se non lo capisci. 
 Ora il tipo di dati che viene utilizzato nell'apprendimento supervisionato 
 è etichettato come dati. 
 Nell'apprendimento senza supervisione, è senza etichetta. 
 E nell'apprendimento per rinforzo, 
 non abbiamo un set di dati predefinito. 
 L'agente deve fare tutto da zero. 
 Ora il tipo di formazione coinvolto 
 in ciascuno di questi apprendimenti. 
 Nell'apprendimento supervisionato, c'è una supervisione esterna, 
 come in c'è il set di dati etichettato 
 che funge da guida per l'apprendimento della macchina. 
 Nell'apprendimento senza supervisione, non c'è supervisione. 
 Ancora una volta, nell'apprendimento per rinforzo, 
 non c'è affatto supervisione. 
 Qual è l'approccio per risolvere i problemi 

English: 
that can be solved by using
supervised, unsupervised,
and reinforcement learning.
When it comes to supervised learning,
the two main types of
problems that are solved
is regression problems and
classification problems.
When it comes to unsupervised learning,
it is association and clustering problems.
When it comes to reinforcement learning,
it's reward-based problems.
I'll be discussing
regression, classification,
clustering, and all of this
in the upcoming slides,
so don't worry if you
don't understand this.
Now the type of data which is
used in supervised learning
is labeled data.
In unsupervised learning, it unlabeled.
And in reinforcement learning,
we have no predefined data set.
The agent has to do
everything from scratch.
Now the type of training involved
in each of these learnings.
In supervised learning, there
is external supervision,
as in there is the labeled data set
which acts as a guide
for the machine to learn.
In unsupervised learning,
there's no supervision.
Again, in reinforcement learning,
there's no supervision at all.
Now what is the approach to solve problems

Italian: 
 utilizzando supervisionato, non supervisionato, 
 e apprendimento per rinforzo? 
 Nell'apprendimento supervisionato, è semplice. 
 È necessario trasferire l'input etichettato all'output noto. 
 La macchina sa come appare l'output. 
 Quindi stai solo etichettando l'input sull'output. 
 Nell'apprendimento senza supervisione, 
 capirai gli schemi 
 e scopri l'output. 
 Qui non hai idea di quale sia l'input. 
 Non è etichettato. 
 Devi solo capire gli schemi 
 e dovrai formare cluster e scoprire l'output. 
 Nell'apprendimento per rinforzo, non c'è alcun indizio. 
 Dovrai seguire il metodo per tentativi ed errori. 
 Dovrai girare intorno al tuo ambiente. 
 Dovrai esplorare l'ambiente, 
 e dovrai provare alcune azioni. 
 E solo una volta eseguite quelle azioni, 
 lo saprai se questa è un'azione basata su una ricompensa 
 o se questa è un'azione basata sulla punizione. 
 Quindi, l'apprendimento per rinforzo è totalmente basato 
 sul concetto di tentativi ed errori. 
 Va bene. 
 Un popolare algoritmo sull'apprendimento supervisionato include 
 regressione lineare, regressioni logistiche, 

English: 
by using supervised, unsupervised,
and reinforcement learning?
In supervised learning, it is simple.
You have to mal the labeled
input to the known output.
The machine knows what
the output looks like.
So you're just labeling
the input to the output.
In unsupervised learning,
you're going to understand the patterns
and discover the output.
Here you have no clue
about what the input is.
It's not labeled.
You just have to understand the patterns
and you'll have to form clusters
and discover the output.
In reinforcement learning,
there is no clue at all.
You'll have to follow the
trial and error method.
You'll have to go around your environment.
You'll have to explore the environment,
and you'll have to try some actions.
And only once you perform those actions,
you'll know that whether
this is a reward-based action
or whether this is a
punishment-based action.
So, reinforcement
learning is totally based
on the concept of trial and error.
Okay.
A popular algorithm on the
supervised learning include
linear regression, logistic regressions,

English: 
support vector machines
K nearest neighbor,
naive Bayes, and so on.
Under unsupervised learning,
we have the famous K-means
clustering method, C-means
and all of that.
Under reinforcement learning,
we have the famous learning
Q-learning algorithm.
I'll be discussing these
algorithms in the upcoming slides.
So let's move on and
look at the next topic,
which is the types of problems solved
using machine learning.
Now this is what we were
talking about earlier
when I said regression, classification,
and clustering problems.
Okay, so let's discuss what
exactly I mean by that.
In machine learning,
all the problems can be
classified into three types.
Every problem that is
approached in machine learning
can be put interest one
of these three categories.
Okay, so the first type
is known as a regression,
then we have classification
and clustering.
So, first, let's look at
regression type of problems.
So in this type problem,
the output is always
a continuous quantity.

Italian: 
 supporta macchine vettoriali K vicino più vicino, 
 ingenuo Bayes, e così via. 
 Sotto apprendimento senza supervisione, 
 abbiamo il famoso metodo di clustering K-means, C-means 
 e tutto questo. 
 Sotto l'apprendimento per rinforzo, 
 abbiamo il famoso algoritmo di apprendimento Q-learning. 
 Discuterò di questi algoritmi nelle prossime diapositive. 
 Quindi andiamo avanti e guardiamo al prossimo argomento, 
 quali sono i tipi di problemi risolti 
 utilizzando l'apprendimento automatico. 
 Questo è ciò di cui stavamo parlando prima 
 quando ho detto regressione, classificazione, 
 e problemi di clustering. 
 Ok, quindi discutiamo di cosa intendo esattamente. 
 Nell'apprendimento automatico, tutti i problemi possono essere 
 classificato in tre tipologie. 
 Ogni problema affrontato nell'apprendimento automatico 
 può interessare una di queste tre categorie. 
 Ok, quindi il primo tipo è noto come regressione, 
 poi abbiamo la classificazione e il raggruppamento. 
 Quindi, per prima cosa, diamo un'occhiata al tipo di problemi di regressione. 
 Quindi in questo tipo di problema, 
 l'uscita è sempre una quantità continua. 

English: 
For example, if you want to predict
the speed of a car, given the distance,
it is a regression problem.
Now a lot of you might not be very aware
of what exactly a continuous quantity is.
A continuous quantity is
any quantity that can have
an infinite range of values.
For example, The weight of a person,
it is a continuous quantity,
because our weight can be 50, 50.1,
50.001,
5.0021,
50.0321 and so on.
It can have an infinite
range of values, correct?
So the type of problem
that you have to predict
a continuous quantity to make
use of regression algorithms.
So, regression problems can be solved
by using supervised learning algorithms
like linear regression.
Next, we have classification.
Now in this type of problem,
the output is always a categorical value.
Now when I say categorical value,
it can be value such as

Italian: 
 Ad esempio, se vuoi prevedere 
 la velocità di una macchina, data la distanza, 
 è un problema di regressione. 
 Ora molti di voi potrebbero non essere molto consapevoli 
 di cosa sia esattamente una quantità continua. 
 Una quantità continua è qualsiasi quantità che può avere 
 una gamma infinita di valori. 
 Ad esempio, il peso di una persona, 
 è una quantità continua, 
 perché il nostro peso può essere 50, 50,1, 
 50.001, 
 5.0021, 
 50.0321 e così via. 
 Può avere una gamma infinita di valori, corretto? 
 Quindi il tipo di problema che devi prevedere 
 una quantità continua per utilizzare algoritmi di regressione. 
 Quindi, i problemi di regressione possono essere risolti 
 utilizzando algoritmi di apprendimento supervisionato 
 come la regressione lineare. 
 Successivamente, abbiamo la classificazione. 
 Ora in questo tipo di problema, 
 l'output è sempre un valore categoriale. 
 Quando dico valore categorico, 
 può essere un valore come 

Italian: 
 il genere di una persona è un valore categorico. 
 Ora classificando le email in due due classi 
 come spam e non spam è un problema di classificazione 
 che può essere risolto utilizzando 
 algoritmi di classificazione dell'apprendimento supervisionato, 
 come macchine a vettore di supporto, Bayes ingenuo, 
 regressione logistica, K vicino più prossimo e così via. 
 Quindi, ancora una volta, l'obiettivo principale della classificazione 
 è calcolare la categoria dei dati. 
 Venendo ai problemi di clustering. 
 Questo tipo di problema comporta 
 input assegnato a due o più cluster 
 basato sulla somiglianza delle caratteristiche. 
 Così quando ho letto questa frase, 
 dovresti capire che questo è apprendimento senza supervisione, 
 perché non disponi di dati sufficienti sul tuo input, 
 e l'unica opzione che hai è formare cluster 
 Le categorie si formano solo quando lo sai 
 i tuoi dati sono di due tipi. 
 I tuoi dati di input sono etichettati ed è di due tipi, 
 quindi sarà un problema di classificazione. 
 Ma quando si verifica un problema di clustering, 
 quando non hai molte informazioni sul tuo input, 
 tutto quello che devi fare è trovare schemi 

English: 
the gender of a person
is a categorical value.
Now classifying emails
into two two classes
like spam and non-spam is
a classification problem
that can be solved by using
supervised learning
classification algorithms,
like support vector machines, naive Bayes,
logistic regression, K
nearest neighbor, and so on.
So, again, the main aim in classification
is to compute the category of the data.
Coming to clustering problems.
This type of problem involves
assigned input into two or more clusters
based on feature similarity.
Thus when I read this sentence,
you should understand that
this is unsupervised learning,
because you don't have
enough data about your input,
and the only option that
you have is to form clusters
Categories are formed
only when you know that
your data is of two type.
Your input data is labeled
and it's of two types,
so it's gonna be a classification problem.
But when a clustering problem happens,
when you don't have much
information about your input,
all you have to do is
you have to find patterns

Italian: 
 e devi capirlo 
 punti dati simili 
 sono raggruppati in un gruppo, 
 e punti dati diversi dal primo gruppo 
 sono raggruppati in un altro gruppo. 
 Questo è il clustering. 
 Un esempio è in Netflix quello che succede è 
 Netflix raggruppa i propri utenti in gruppi simili 
 in base al loro interesse, in base alla loro età, 
 geografia e così via. 
 Questo può essere fatto utilizzando algoritmi di apprendimento non supervisionati 
 come K-significa. 
 Va bene. 
 Quindi ragazzi, c'erano le tre categorie di problemi 
 che può essere risolto utilizzando l'apprendimento automatico. 
 Quindi, in pratica, quello che sto cercando di dire 
 è che tutti i problemi ricadranno in una di queste categorie. 
 Quindi qualsiasi problema che dai a un modello di machine learning, 
 cadrà in una di queste categorie. 
 Va bene. 
 Ora per rendere le cose un po 'più interessanti, 
 Ho raccolto set di dati del mondo reale 
 da risorse online. 
 E quello che faremo è provare a capire 
 se questo è un problema di regressione, 

English: 
and you have to understand that
data points which are similar
are clustered into one group,
and data points which are
different from the first group
are clustered into another group.
That's what clustering is.
An example is in Netflix what happens is
Netflix clusters their
users into similar groups
based on their interest,
based on their age,
geography, and so on.
This can be done by using
unsupervised learning algorithms
like K-means.
Okay.
So guys, there were the
three categories of problems
that can be solved by
using machine learning.
So, basically, what I'm trying to say
is all the problems will fall
into one of these categories.
So any problem that you give
to a machine learning model,
it'll fall into one of these categories.
Okay.
Now to make things a
little more interesting,
I have collected real world data sets
from online resources.
And what we're gonna do is we're
going to try and understand
if this is a regression problem,

English: 
or a clustering problem, or
a classification problem.
Okay.
Now the problem statement in here
is to study the house sales data set,
and build a machine learning model
that predicts the house pricing index.
Now the most important
thing you need to understand
when you read a problem statement
is you need to understand
what is your target variable,
what are the possible predictor
variable that you'll need.
The first thing you should
look at is your targe variable.
If you want to understand
if this a classification,
regression, or clustering problem,
look at your target variable
or your output variable
that you're supposed to predict.
Here you're supposed to predict
the house pricing index.
Our house pricing index is obviously
a continuous quantity.
So as soon as you understand that,
you'll know that this
is a regression problem.
So for this, you can make use of
the linear regression algorithm,
and you can predict the
house pricing index.
Linear regression is the
regression algorithm.
It is a supervised learning algorithm.
We'll discuss more about
it in the further slides.

Italian: 
 o un problema di raggruppamento o un problema di classificazione. 
 Va bene. 
 Ora la dichiarazione del problema qui 
 è studiare il set di dati sulle vendite di case, 
 e crea un modello di machine learning 
 che predice l'indice dei prezzi delle case. 
 Ora la cosa più importante che devi capire 
 quando leggi una dichiarazione problematica 
 hai bisogno di capire qual è la tua variabile target, 
 quali sono le possibili variabili predittive di cui avrai bisogno. 
 La prima cosa che dovresti guardare è la tua variabile targe. 
 Se vuoi capire se questa è una classificazione, 
 regressione o problema di clustering, 
 guarda la tua variabile di destinazione o la tua variabile di output 
 che dovresti prevedere. 
 Qui dovresti prevedere l'indice dei prezzi delle case. 
 Il nostro indice dei prezzi delle case è ovviamente 
 una quantità continua. 
 Quindi non appena lo capisci, 
 saprai che questo è un problema di regressione. 
 Quindi per questo, puoi utilizzare 
 l'algoritmo di regressione lineare, 
 e puoi prevedere l'indice dei prezzi delle case. 
 La regressione lineare è l'algoritmo di regressione. 
 È un algoritmo di apprendimento supervisionato. 
 Ne discuteremo di più nelle ulteriori diapositive. 

Italian: 
 Diamo un'occhiata alla nostra prossima dichiarazione del problema. 
 Qui devi studiare un set di dati sul credito bancario, 
 e decidere se 
 per approvare il prestito di un richiedente 
 in base al suo profilo. 
 Qual è la tua variabile di output qui? 
 La tua variabile di output serve a prevedere se puoi 
 approvare o meno il prestito di un richiedente. 
 Quindi, ovviamente, il tuo output sarà categorico. 
 O sarà sì o no. 
 Sì è fondamentalmente un prestito approvato. 
 No è rifiutare il prestito. 
 Quindi qui, lo capisci 
 questo è un problema di classificazione. 
 Va bene. 
 Quindi puoi utilizzare algoritmi come l'algoritmo KNN 
 oppure puoi utilizzare macchine a vettori di supporto 
 per fare questo. 
 Quindi, supporta la macchina vettoriale e KNN 
 che è K algoritmi del vicino più vicino 
 sono fondamentalmente algoritmo di apprendimento supervisionato. 
 Ne parleremo di più nelle prossime diapositive. 
 Passiamo alla nostra prossima dichiarazione del problema. 
 Qui l'affermazione del problema è raggruppare 

English: 
Let's look at our next problem statement.
Here you have to study
a bank credit data set,
and make a decision about whether
to approve the loan of an applicant
based on his profile.
Now what is your output
variable over here?
Your output variable is
to predict whether you can
approve the loan of a applicant or not.
So, obviously, your output
is going to be categorical.
It's either going to be yes or no.
Yes is basically approved loan.
No is reject loan.
So here, you understand that
this is a classification problem.
Okay.
So you can make use of
algorithms like KNN algorithm
or you can make use of
support vector machines
in order to do this.
So, support vector machine and KNN
which is K nearest neighbor algorithms
are basically supervised
learning algorithm.
We'll talk more about that
in the upcoming slides.
Moving on to our next problem statement.
Here the problem statement is to cluster

Italian: 
 una serie di film buoni o nella media 
 basato sulla diffusione dei social media. 
 Ora se guardi bene 
 il tuo indizio è nella domanda stessa. 
 La prima riga che dice è raggruppare una serie di film 
 buono o medio. 
 Ora ragazzi, ogni volta che avete un problema di dichiarazione 
 che ti chiede di raggruppare il set di dati 
 in diversi gruppi 
 o per formare cluster diversi e diversi, 
 è ovviamente un problema di clustering. 
 Proprio qui puoi farne uso 
 dell'algoritmo di clustering K-means, 
 e puoi formare due gruppi. 
 Uno conterrà i film popolari 
 e l'altro conterrà i film non popolari. 
 Questi vanno bene piccoli esempi di come puoi usare 
 machine learning per risolvere il problema del clustering, 
 la regressione e problemi di classificazione. 
 La chiave è che devi prima identificare il tipo di problema. 
 Ora andiamo avanti e discutiamo dei diversi tipi 
 di algoritmi di apprendimento automatico. 
 Quindi inizieremo discutendo del diverso 
 algoritmi di apprendimento supervisionato. 

English: 
a set of movies as either good or average
based on the social media outreach.
Now if you look properly,
your clue is in the question itself.
The first line it says is
to cluster a set of movies
as either good or average.
Now guys, whenever you
have a problem statement
that is asking you to group the data set
into different groups
or to form different, different clusters,
it's obviously a clustering problem.
Right here you can make use
of the K-means clustering algorithm,
and you can form two clusters.
One will contain the popular movies
and the other will contain
the non-popular movies.
These alright small
examples of how you can use
machine learning to
solve clustering problem,
the regression, and
classification problems.
The key is you need to identify
the type of problem first.
Now let's move on and
discuss the different types
of machine learning algorithms.
So we're gonna start by
discussing the different
supervised learning algorithms.

English: 
So to give you a quick overview,
we'll be discussing the linear regression,
logistic regression, and decision tree,
random forest, naive Bayes classifier,
support vector machines,
and K nearest neighbor.
We'll be discussing
these seven algorithms.
So without any further delay,
let's look at linear regression first.
Now what exactly is a
linear regression algorithm?
So guys, linear regression is basically
a supervised learning algorithm
that is used to predict a
continuous dependent variable y
based on the values of
independent variable x.
Okay.
The important thing to note here
is that the dependent variable y,
the variable that you're
trying to predict,
is always going to be
a continuous variable.
But the independent variable x,
which is basically the
predictor variables,
these are the variables
that you'll be using
to predict your output variable,
which is nothing but
your dependent variable.

Italian: 
 Quindi, per darti una rapida panoramica, 
 discuteremo della regressione lineare, 
 regressione logistica e albero decisionale, 
 foresta casuale, ingenuo classificatore di Bayes, 
 supporta macchine vettoriali e K vicino più vicino. 
 Discuteremo questi sette algoritmi. 
 Quindi, senza ulteriori indugi, 
 diamo prima un'occhiata alla regressione lineare. 
 Cos'è esattamente un algoritmo di regressione lineare? 
 Quindi ragazzi, la regressione lineare è fondamentalmente 
 un algoritmo di apprendimento supervisionato 
 che viene utilizzato per prevedere una variabile dipendente continua y 
 in base ai valori della variabile indipendente x. 
 Va bene. 
 La cosa importante da notare qui 
 è che la variabile dipendente y, 
 la variabile che stai cercando di prevedere, 
 sarà sempre una variabile continua. 
 Ma la variabile indipendente x, 
 che sono fondamentalmente le variabili predittive, 
 queste sono le variabili che userete 
 per prevedere la tua variabile di output, 
 che non è altro che la tua variabile dipendente. 

English: 
So your independent variables
or your predictive variables
can either be continuous or discreet.
Okay, there is not such
a restriction over here.
Okay, they can be either
continuous variables
or they can be discreet variables.
Now, again, I'll tell you
what a continuous variable is,
in case you've forgotten.
It is a vary that has infinite
number of possibilities.
So I'll give you an example
of a person's weight.
It can be 160 pounds, or
they can weigh 160.11 pounds,
or 160.1134 pounds and so on.
So the number of possibilities
for weight is limitless,
and this is exactly what
a continuous variable is.
Now in order to understand
linear regression,
let's assume that you want to predict the
price of a stock over a period of time.
Okay.
For such a problem, you can
make use of linear regression
by starting the relationship
between the dependent variable,
which is the stock price,
and the independent
variable, which is the time.
You're trying to predict the stock price

Italian: 
 Quindi le tue variabili indipendenti o le tue variabili predittive 
 può essere continuo o discreto. 
 Ok, non c'è una tale restrizione qui. 
 Va bene, possono essere variabili continue 
 oppure possono essere variabili discrete. 
 Ora, di nuovo, ti dirò cos'è una variabile continua, 
 nel caso l'avessi dimenticato. 
 È una varietà che ha un numero infinito di possibilità. 
 Quindi ti darò un esempio del peso di una persona. 
 Possono essere 160 libbre o possono pesare 160,11 libbre, 
 o 160,1134 libbre e così via. 
 Quindi il numero di possibilità per il peso è illimitato, 
 e questo è esattamente ciò che è una variabile continua. 
 Ora per capire la regressione lineare, 
 supponiamo che tu voglia prevedere il 
 prezzo di un'azione in un periodo di tempo. 
 Va bene. 
 Per un problema del genere, puoi utilizzare la regressione lineare 
 avviando la relazione 
 tra la variabile dipendente, 
 qual è il prezzo delle azioni, 
 e la variabile indipendente, che è il tempo. 
 Stai cercando di prevedere il prezzo delle azioni 

Italian: 
 per un periodo di tempo. 
 Quindi fondamentalmente, controllerai come il prezzo di un'azione 
 varia in un periodo di tempo. 
 Quindi il prezzo delle tue azioni sarà 
 la tua variabile dipendente o la tua variabile di output, 
 e il tempo sarà la tua variabile predittiva 
 o la tua variabile indipendente. 
 Non confondiamolo più. 
 La variabile dipendente è la variabile di output. 
 Ok, la tua variabile indipendente è la tua variabile di input 
 o la tua variabile predittiva. 
 Quindi nel nostro caso, il prezzo delle azioni è ovviamente 
 una quantità continua, 
 perché il prezzo delle azioni può avere 
 un numero infinito di valori. 
 Ora il primo passo nella regressione lineare 
 è sempre tirare fuori una relazione 
 tra la tua variabile dipendente e quella indipendente 
 utilizzando la lunghezza lineare più adatta. 
 Partiamo dal presupposto che sei dipendente 
 e variabile indipendente 
 è linearmente correlato tra loro. 
 La chiamiamo regressione lineare perché 
 entrambe le variabili variano linearmente, 

English: 
over a period of time.
So basically, you're gonna
check how the price of a stock
varies over a period of time.
So your stock price is going to be
your dependent variable
or your output variable,
and the time is going to
be your predictor variable
or your independent variable.
Let's not confuse it anymore.
Your dependent variable
is your output variable.
Okay, your independent
variable is your input variable
or your predictor variable.
So in our case, the
stock price is obviously
a continuous quantity,
because the stock price can have
an infinite number of values.
Now the first step in linear regression
is always to draw out a relationship
between your dependent and
your independent variable
by using the best fitting linear length.
We make an assumption that your dependent
and independent variable
is linearly related to each other.
We call it linear regression because
both the variables vary linearly,

Italian: 
 il che significa che tracciando la relazione 
 tra queste due variabili, 
 otterremo più di una linea retta, invece di una curva. 
 Parliamo della matematica alla base della regressione lineare. 
 Quindi, questa equazione qui, 
 denota la relazione tra il tuo 
 variabile indipendente x, che è qui, 
 e la tua variabile dipendente y. 
 Questa è la variabile che stai cercando di prevedere. 
 Si spera, sappiamo tutti che l'equazione 
 per una linea lineare in matematica è y è uguale a mx più c. 
 Spero che tutti voi ricordiate la matematica. 
 Quindi l'equazione per una linea lineare in matematica 
 è y è uguale a mx più c. 
 Allo stesso modo, l'equazione di regressione lineare 
 è rappresentato lungo la stessa linea. 
 Va bene, y è uguale a mx più c. 
 Ci sono solo un po 'di cambiamenti, 
 che ti dirò cosa sono. 
 Comprendiamo correttamente questa equazione. 
 Quindi y sta sostanzialmente per la tua variabile dipendente 
 che stai per prevedere. 
 Niente è l'intercetta y. 

English: 
which means that by
plotting the relationship
between these two variables,
we'll get more of a straight
line, instead of a curve.
Let's discuss the math
behind linear regression.
So, this equation over here,
it denotes the relationship between your
independent variable x, which is here,
and your dependent variable y.
This is the variable
you're trying to predict.
Hopefully, we all know that the equation
for a linear line in math
is y equals mx plus c.
I hope all of you remember math.
So the equation for a linear line in math
is y equals to mx plus c.
Similarly, the linear regression equation
is represented along the same line.
Okay, y equals to mx plus c.
There's just a little bit of changes,
which I'll tell you what they are.
Let's understand this equation properly.
So y basically stands for
your dependent variable
that you're going to predict.
B naught is the y intercept.

Italian: 
 Ora l'intercettazione non è altro che questo punto qui. 
 Ora in questo grafico, sei fondamentalmente 
 che mostra la relazione tra la variabile dipendente y 
 e la tua variabile indipendente x. 
 Questa è la relazione lineare 
 tra queste due variabili. 
 Ok, ora la tua intercettazione y è fondamentalmente 
 il punto sulla linea 
 che inizia dall'asse y. 
 Questo è il tuo intercettore, 
 che è rappresentato da B nought. 
 Ora B one o beta è la pendenza di questa linea 
 ora la pendenza può essere negativa o positiva, 
 a seconda della relazione tra i dipendenti 
 e variabile indipendente. 
 La prossima variabile che abbiamo è x. 
 X qui rappresenta la variabile indipendente 
 che viene utilizzato per prevedere la nostra variabile di output risultante. 
 Fondamentalmente, x viene utilizzato per prevedere il valore di y. 
 Va bene. 
 E qui denota l'errore nel calcolo. 
 Ad esempio, questa è la riga effettiva, 
 e questi punti qui rappresentano i valori previsti. 
 Ora la distanza tra questi due 

English: 
Now y intercept is nothing
but this point here.
Now in this graph, you're basically
showing the relationship between
your dependent variable y
and your independent variable x.
Now this is the linear relationship
between these two variables.
Okay, now your y intercept is basically
the point on the line
which starts at the y-axis.
This is y interceptor,
which is represented by B naught.
Now B one or beta is
the slope of this line
now the slope can either
be negative or positive,
depending on the relationship
between the dependent
and independent variable.
The next variable that we have is x.
X here represents the independent variable
that is used to predict our
resulting output variable.
Basically, x is used to
predict the value of y.
Okay.
E here denotes the error
in the computation.
For example, this is the actual line,
and these dots here represent
the predicted values.
Now the distance between these two

Italian: 
 è indicato dall'errore nel calcolo. 
 Quindi questa è l'intera equazione. 
 È abbastanza semplice, vero? 
 Fondamentalmente la regressione lineare disegnerà 
 una relazione tra il tuo input e la tua variabile di input. 
 Ecco com'era semplice la regressione lineare. 
 Ora per comprendere meglio la regressione lineare, 
 Eseguirò una demo in Python. 
 Quindi ragazzi, prima di iniziare con la nostra demo pratica, 
 Suppongo che la maggior parte di voi 
 avere una buona conoscenza di Python, 
 perché spiegare Python sarà 
 fuori dall'ambito della sessione odierna. 
 Ma se alcuni di voi non hanno familiarità 
 con il linguaggio Python, 
 Lascio un paio di link nella casella della descrizione. 
 Questi saranno legati alla programmazione Python. 
 Puoi passare attraverso questi collegamenti, capire Python, 
 e poi magari prova a capire la demo. 
 Ma spiegherei in profondità la parte logica della demo. 
 Quindi la cosa principale che faremo qui 
 è cercare di capire la regressione lineare. 
 Quindi va bene se non capisci Python per ora. 
 Proverò a spiegare il più possibile. 

English: 
is denoted by the error
in the computation.
So this is the entire equation.
It's quite simple, right?
Linear regression will basically draw
a relationship between your
input and your input variable.
That's how simple linear regression was.
Now to better understand
linear regression,
I'll be running a demo in Python.
So guys, before I get started
with our practical demo,
I'm assuming that most of you
have a good understanding of Python,
because explaining Python is going to be
out of the scope of today's session.
But if some of you are not familiar
with the Python language,
I'll leave a couple of links
in the description box.
Those will be related
to Python programming.
You can go through those
links, understand Python,
and then maybe try to understand the demo.
But I'd be explaining the logic
part of the demo in depth.
So the main thing that
we're going to do here
is try and understand linear regression.
So it's okay if you do not
understand Python for now.
I'll try to explain as much as I can.

Italian: 
 Ma se vuoi ancora capirlo in un modo migliore, 
 Lascio un paio di link nella casella della descrizione 
 puoi andare a quei video. 
 Fammi solo ingrandire per te. 
 Spero che tutti voi possiate vedere lo schermo. 
 Ora in questa demo di regressione lineare, 
 quello che faremo è 
 formeremo una relazione lineare 
 tra la temperatura massima 
 e la temperatura minima in una data particolare. 
 Faremo solo previsioni del tempo qui. 
 Quindi il nostro compito è prevedere la temperatura massima, 
 prendendo la funzione di input come temperatura minima. 
 Quindi cercherò di farti capire 
 regressione lineare attraverso questa demo. 
 Ok, vedremo come funziona effettivamente nella pratica. 
 Prima di iniziare con la demo, 
 lascia che ti dica qualcosa sul set di dati. 
 Il nostro set di dati è archiviato fondamentalmente in questo percorso. 
 Il nome del set di dati è weather.csv. 

English: 
But if you still want to
understand this in a better way,
I'll leave a couple of
links in the description box
you can go to those videos.
Let me just zoom in for you.
I hope all of you can see the screen.
Now in this linear regression demo,
what we're going to do is
we're going to form a linear relationship
between the maximum temperature
and minimum temperature
on a particular date.
We're just going to do
weather forecasting here.
So our task is to predict
the maximum temperature,
taking input feature
as minimum temperature.
So I'm just going to try
and make you understand
linear regression through this demo.
Okay, we'll see how it
actually works practically.
Before I get started with the demo,
let me tell you something
about the data set.
Our data set is stored
in this path basically.
The name of the data set is weather.csv.

Italian: 
 Ok, ora, questo contiene dati sull'eventuale presenza di condizioni 
 registrato ogni giorno 
 in varie stazioni meteorologiche in tutto il mondo. 
 Ok, le informazioni includono le precipitazioni, 
 nevicate, temperature, velocità del vento, 
 e se la giornata includesse temporali 
 o altre cattive condizioni meteorologiche. 
 Quindi il nostro primo passo in qualsiasi demo per quella materia 
 sarà importare tutte le librerie necessarie. 
 Quindi inizieremo la nostra demo 
 importando tutte le librerie richieste. 
 Dopodiché, leggeremo i nostri dati. 
 I nostri dati verranno archiviati 
 in questa variabile chiamata data set, 
 e useremo una funzione read.csv 
 poiché il nostro set di dati è in formato CSV. 
 Dopodiché, te lo mostrerò 
 come appare il set di dati. 
 Analizzeremo anche il set di dati in modo approfondito. 
 Ora lascia che ti mostri prima l'output. 
 Eseguiamo questa demo e vediamo prima. 
 Stiamo ottenendo un paio di trame che farò 
 parlarne tra un po '. 

English: 
Okay, now, this contains
data on whether conditions
recorded on each day
at various weather
stations around the world.
Okay, the information
include precipitation,
snowfall, temperatures, wind speeds,
and whether the day
included any thunderstorm
or other poor weather conditions.
So our first step in
any demo for that matter
will be to import all the
libraries that are needed.
So we're gonna begin our demo
by importing all the required libraries.
After that, we're going
to read in our data.
Our data will be stored
in this variable called data set,
and we're going to use a read.csv function
since our data set is in the CSV format.
After that, I'll be showing you
how the data set looks.
We'll also look at the data set in depth.
Now let me just show you the output first.
Let's run this demo and see first.
We're getting a couple of plots which I'll
talk about in a while.

Italian: 
 Quindi possiamo ignorare questo avvertimento. 
 Non ha niente a che fare con ... 
 Quindi, prima di tutto, stampiamo la forma del nostro set di dati. 
 Quindi, quando stampiamo la forma del nostro set di dati, 
 Questo è l'output che otteniamo. 
 Quindi, fondamentalmente, questo mostra che abbiamo intorno 
 12.000 righe e 31 colonne nel nostro set di dati. 
 Le 31 colonne rappresentano fondamentalmente 
 le variabili predittive. 
 Quindi puoi dire che abbiamo 31 variabili predittive 
 al fine di proteggere le condizioni atmosferiche 
 in una data particolare. 
 Quindi ragazzi, l'obiettivo principale in questo segmento problematico 
 sono le previsioni del tempo. 
 Prevederemo il tempo 
 utilizzando un insieme di variabili predittive. 
 Quindi questi sono i diversi tipi 
 delle variabili predittive che abbiamo. 
 Ok, abbiamo qualcosa noto come temperatura massima. 
 Quindi questo è l'aspetto del nostro set di dati. 
 Quello che sto facendo in questo blocco di codice è ... 
 Quello che stiamo facendo è tracciare i nostri punti dati 
 su un grafico 2D per comprendere il nostro set di dati 
 e vediamo se riusciamo a trovare manualmente una relazione 

English: 
So we can ignore this warning.
It has nothing to do with...
So, first of all, we're printing
the shape of our data set.
So, when we print the
shape of our data set,
This is the output that we get.
So, basically, this
shows that we have around
12,000 rows and 31
columns in our data set.
The 31 columns basically represent
the predictor variables.
So you can say that we
have 31 predictor variables
in order to protect the weather conditions
on a particular date.
So guys, the main aim
in this problem segment
is weather forecast.
We're going to predict the weather
by using a set of predictor variables.
So these are the different types
of predictor variables that we have.
Okay, we have something
known as maximum temperature.
So this is what our data set looks like.
Now what I'm doing in
this block of code is...
What we're doing is we're
plotting our data points
on a 2D graph in order to
understand our data set
and see if we can manually
find any relationship

English: 
between the variables.
Here we've taken minimum temperature
and maximum temperature
for doing our analysis.
So let's just look at this plot.
Before that, let me just comment
all of these other plots,
so that you see on either
graph that I'm talking about.
So, when you look at this graph,
this is basically the graph
between your minimum temperature
and your maximum temperature.
Maximum temperature are dependent variable
that you're going to predict.
This is y.
And your minim temperature is your x.
It's basically your independent variable.
So if you look at this graph,
you can see that there is a sort of
linear relationship between the two,
except there are a little bit
of outliers here and there.
There are a few data points
which are a little bit random.

Italian: 
 tra le variabili. 
 Qui abbiamo preso la temperatura minima 
 e la temperatura massima per fare la nostra analisi. 
 Quindi guardiamo solo questa trama. 
 Prima di allora, lasciatemi commentare tutte queste altre trame, 
 in modo da vedere su entrambi i grafici di cui sto parlando. 
 Quindi, quando guardi questo grafico, 
 questo è fondamentalmente il grafico tra la tua temperatura minima 
 e la tua temperatura massima. 
 La temperatura massima è variabile dipendente 
 che stai per prevedere. 
 Questo è y. 
 E la tua temperatura minima è la tua x. 
 È fondamentalmente la tua variabile indipendente. 
 Quindi, se guardi questo grafico, 
 puoi vedere che c'è una sorta di 
 relazione lineare tra i due, 
 tranne che ci sono un po 'di valori anomali qua e là. 
 Ci sono alcuni punti dati che sono un po 'casuali. 

English: 
But apart from that, there is
a pretty linear relationship
between your minimum temperature
and your maximum temperature.
So by this graphic, you can understand
that you can easily solve this problem
using linear regression,
because our data is very linear.
I can see a clear straight line over here.
This is our first graph.
Next, what I'm doing is I'm just checking
the average and maximum
temperature that we have.
I'm just looking at the
average of our output variable.
Okay.
So guys, what we're doing here right now
is just exploratory data analysis.
We're trying to understand our data.
We're trying to see the relationship
between our input variable
and our output variable.
We're trying to see
the mean or the average
of the output variable.
All of this is necessary
to understand our data set.
So, this is what our average
maximum temperature looks like.
So if we try to understand
where exactly this is,
so our average maximum temperature

Italian: 
 Ma a parte questo, c'è una relazione piuttosto lineare 
 tra la temperatura minima 
 e la tua temperatura massima. 
 Quindi da questo grafico puoi capire 
 che puoi risolvere facilmente questo problema 
 usando la regressione lineare, 
 perché i nostri dati sono molto lineari. 
 Vedo una chiara linea retta qui. 
 Questo è il nostro primo grafico. 
 Poi, quello che sto facendo è solo controllare 
 la temperatura media e massima che abbiamo. 
 Sto solo osservando la media della nostra variabile di output. 
 Va bene. 
 Allora ragazzi, cosa stiamo facendo qui adesso 
 è solo un'analisi esplorativa dei dati. 
 Stiamo cercando di capire i nostri dati. 
 Stiamo cercando di vedere la relazione 
 tra la nostra variabile di input e la nostra variabile di output. 
 Stiamo cercando di vedere la media o la media 
 della variabile di output. 
 Tutto ciò è necessario per comprendere il nostro set di dati. 
 Quindi, questo è l'aspetto della nostra temperatura massima media. 
 Quindi, se proviamo a capire dove si trova esattamente, 
 quindi la nostra temperatura massima media 

English: 
is somewhere between 28
and I would say between 30.
28 and 32, somewhere there.
So you can say that
average maximum temperature
lies between 25 and 35.
And so that is our average
maximum temperature.
Now that you know a little
bit about the data set,
you know that there is a
very good linear relationship
between your input variable
and your output variable.
Now what you're going
to do is you're going to
perform something known as data splicing.
Let me just comment that for you.
This section is nothing but data splicing.
So for those of you who
are paying attention,
know that data splicing is nothing but
splitting your data set into
training and testing data.
Now before we do that,
I mentioned earlier that we'll
be only using two variables,
because we're trying to understand
the relationship between
the minimum temperature
and maximum temperature.
I'm doing this because
I want you to understand
linear regression in the
simplest way possible.

Italian: 
 è da qualche parte tra 28 e direi tra 30. 
 28 e 32, da qualche parte lì. 
 Quindi puoi dire che la temperatura massima media 
 si trova tra 25 e 35. 
 E quindi questa è la nostra temperatura massima media. 
 Ora che conosci un po 'il set di dati, 
 sai che c'è un ottimo rapporto lineare 
 tra la variabile di input e la variabile di output. 
 Ora quello che farai è farlo 
 eseguire qualcosa noto come data splicing. 
 Lasciatemi solo commentare questo per voi. 
 Questa sezione non è altro che l'unione dei dati. 
 Quindi per quelli di voi che prestano attenzione, 
 sappi che lo splicing dei dati non è altro che 
 suddividendo il set di dati in dati di addestramento e test. 
 Ora prima di farlo, 
 Ho detto prima che utilizzeremo solo due variabili, 
 perché stiamo cercando di capire la relazione tra 
 la temperatura minima e la temperatura massima. 
 Lo faccio perché voglio che tu capisca 
 regressione lineare nel modo più semplice possibile. 

Italian: 
 Quindi ragazzi, per far capire la regressione lineare, 
 Ho appena derivato solo due variabili da un set di dati. 
 Anche se quando controlliamo la struttura di un set di dati, 
 avevamo circa 31 funzioni, 
 il che significa che avevamo 31 variabili 
 che includono la mia variabile predittore e la mia variabile obiettivo. 
 Quindi, fondamentalmente, avevamo 30 variabili predittive 
 e avevamo una variabile target, 
 qual è la tua temperatura massima. 
 Quindi, quello che sto facendo qui è che sto solo considerando 
 queste due variabili, 
 perché ti voglio mostrare esattamente 
 come funziona la regressione lineare. 
 Quindi, qui quello che sto facendo è fondamentalmente 
 estraendo solo queste due variabili 
 dal nostro set di dati, memorizzandolo in x e y. 
 Successivamente, eseguo lo splicing dei dati. 
 Quindi qui, fondamentalmente sto dividendo i dati 
 nei dati di addestramento e test, 
 e ricorda un punto che sto assegnando 
 20% dei dati nel nostro set di dati di test, 
 e il restante 80% è destinato alla formazione. 
 Ecco come funziona la formazione. 
 Assegniamo il massimo set di dati per la formazione. 

English: 
So guys, in order to make
understand linear regression,
I have just derived only two
variables from a data set.
Even though when we check
the structure of a data set,
we had around 31 features,
meaning that we had 31 variables
which include my predictor
variable and my target variable.
So, basically, we had
30 predictor variables
and we had one target variable,
which is your maximum temperature.
So, what I'm doing here
is I'm only considering
these two variables,
because I want to show you exactly
how linear regression works.
So, here what I'm doing is I'm basically
extracting only these two variables
from our data set, storing it in x and y.
After that, I'm performing data splicing.
So here, I'm basically splitting the data
into training and testing data,
and remember one point that I am assigning
20% of the data to our testing data set,
and the remaining 80% is
assigned for training.
That's how training works.
We assign maximum data set for training.

English: 
We do this because we want
the machine learning model
or the machine learning algorithm
to train better on data.
We wanted to take as
much data as possible,
so that it can predict
the outcome properly.
So, to repeat it again for you,
so here we're just splitting the data
into training and testing data set.
So, one more thing to note here is that
we're splitting 80% of
the data from training,
and we're assigning the 20%
of the data to test data.
The test size variable,
this variable that you see,
is what is used to specify
the proportion of the test set.
Now after splitting the data
into training and testing set,
finally, the time is
to train our algorithm.
For that, we need to import
the linear regression class.
We need to instantiate it
and call the fit method
along with the training data.
This is our linear regression class,
and we're just creating an instance
of the linear regression class.
So guys, a good thing about Python is that
you have pre-defined
classes for your algorithms,

Italian: 
 Lo facciamo perché vogliamo il modello di machine learning 
 o l'algoritmo di machine learning per allenarsi meglio sui dati. 
 Volevamo prendere più dati possibile, 
 in modo che possa prevedere correttamente il risultato. 
 Quindi, per ripeterlo di nuovo per te, 
 quindi qui stiamo solo dividendo i dati 
 nel set di dati di addestramento e test. 
 Quindi, un'altra cosa da notare qui è che 
 suddividiamo l'80% dei dati dalla formazione, 
 e stiamo assegnando il 20% dei dati ai dati di test. 
 La variabile delle dimensioni del test, questa variabile che vedi, 
 è ciò che viene utilizzato per specificare 
 la proporzione del set di prova. 
 Ora, dopo aver suddiviso i dati in set di addestramento e test, 
 infine, è il momento di addestrare il nostro algoritmo. 
 Per questo, dobbiamo importare la classe di regressione lineare. 
 Dobbiamo istanziarlo 
 e chiama il metodo di adattamento insieme ai dati di addestramento. 
 Questa è la nostra classe di regressione lineare, 
 e stiamo solo creando un'istanza 
 della classe di regressione lineare. 
 Quindi ragazzi, una cosa buona di Python è questa 
 hai classi predefinite per i tuoi algoritmi, 

Italian: 
 e non devi chiamare i tuoi algoritmi. 
 Invece tutto quello che devi fare 
 chiami questa classe classe di regressione lineare, 
 e devi crearne un'istanza. 
 Qui sto fondamentalmente creando qualcosa noto come regressore. 
 E tutto ciò che devi fare è chiamare il metodo di adattamento 
 insieme ai dati di allenamento. 
 Quindi questi sono i miei dati di allenamento, x train e y train 
 contiene i miei dati di allenamento, 
 e chiamo la nostra istanza di regressione lineare, 
 che è regressore, insieme a questo set di dati. 
 Quindi qui, fondamentalmente, stiamo costruendo il modello. 
 Non stiamo facendo altro che costruire il modello. 
 Ora, una delle cose principali che 
 il modello di regressione lineare lo fa 
 trova il miglior valore per l'intercetta e la pendenza, 
 che si traduce in una riga che si adatta meglio ai dati. 
 Ho discusso di cosa sia l'intercettazione e la pendenza. 
 Quindi se vuoi vedere l'intercetta e la pendenza 
 calcolato dal nostro modello di regressione lineare, 
 dobbiamo solo eseguire questa riga di codice. 
 E diamo un'occhiata all'output per questo. 
 Quindi, la nostra intercettazione è intorno alle 10,66 
 e il nostro coefficiente, 

English: 
and you don't have call your algorithms.
Instead, all you have to do,
is you call this class
linear regression class,
and you have to create an instance of it.
Here I'm basically creating
something known as a regressor.
And all you have to do is you
have to call the fit method
along with your training data.
So this is my training
data, x train and y train
contains my training data,
and I'm calling our linear
regression instance,
which is regressor,
along with this data set.
So here, basically,
we're building the model.
We're doing nothing
but building the model.
Now, one of the major things that
linear regression model does is
it finds the best value for
the intercept and the slope,
which results in a line
that best fits the data.
I've discussed what
intercept and slope is.
So if you want to see the
intercept and the slope
calculated by our linear regression model,
we just have to run this line of code.
And let's looks at the output for that.
So, our intercept is around 10.66
and our coefficient,

English: 
these are also known as beta coefficients,
coefficient are nothing but
what we discussed, beta naught.
These are beta values.
Now this will just help you understand
the significance of your input variables.
Now what this coefficient value means is,
see, the coefficient value is around 0.92.
This means that for every one unit changed
of your minimum temperature,
the change in the maximum
temperature is around 0.92.
This will just show you how significant
your input variable is.
So, for every one unit change
in your minimum temperature,
the change in the maximum temperature
will be around 0.92.
I hope you've understood this part.
Now that we've trained our algorithm,
it's trying to make some predictions.
To do so, what we'll use is
we'll use our test data set,
and we'll see how accurately our algorithm
predicts the percentage score.
Now to make predictions,
we have this line of code.

Italian: 
 questi sono anche noti come coefficienti beta, 
 coefficiente non sono altro che quello di cui abbiamo discusso, beta nulla. 
 Questi sono valori beta. 
 Ora questo ti aiuterà solo a capire 
 il significato delle tue variabili di input. 
 Ora il significato di questo valore del coefficiente è, 
 vedi, il valore del coefficiente è di circa 0,92. 
 Ciò significa che per ogni unità modificata 
 della tua temperatura minima, 
 la variazione della temperatura massima è di circa 0,92. 
 Questo ti mostrerà solo quanto è significativo 
 la tua variabile di input è. 
 Quindi, per ogni unità di variazione della temperatura minima, 
 la variazione della temperatura massima 
 sarà intorno a 0,92. 
 Spero tu abbia capito questa parte. 
 Ora che abbiamo addestrato il nostro algoritmo, 
 sta cercando di fare delle previsioni. 
 A tal fine, utilizzeremo il nostro set di dati di prova, 
 e vedremo quanto accuratamente il nostro algoritmo 
 predice il punteggio percentuale. 
 Ora per fare previsioni, 
 abbiamo questa riga di codice. 

English: 
Predict is basically a
predefined function in Python.
And all you're going to
do is you're going to pass
your testing data set to this.
Now what you'll do is you'll compare
the actual output values,
which is basically stored in your y test.
And you'll compare these
to the predicted values,
which is in y prediction.
And you'll store these
comparisons in our data frame
called df.
And all I'm doing here is
I'm printing the data frame.
So if you look at the output,
this is what it looks like.
These are your actual values
and these are the values
that you predicted
by building that model.
So, if your actual value is 28,
you predicted around 33,
here your actual value is 31,
meaning that your maximum
temperature is 31.
And you predicted a
maximum temperature of 30.
Now, these values are
actually pretty close.
I feel like the accuracy
is pretty good over here.
Now in some cases, you see
a lot of variance, like 23.
Here it's 15.
Right here it's 22.
Here it's 11.

Italian: 
 Predict è fondamentalmente una funzione predefinita in Python. 
 E tutto quello che farai è passare 
 i tuoi dati di test impostati su questo. 
 Ora quello che farai è confrontare 
 i valori di uscita effettivi, 
 che è fondamentalmente memorizzato nel tuo y test. 
 E li confronterai con i valori previsti, 
 che è nella previsione y. 
 E memorizzerai questi confronti nel nostro data frame 
 chiamato df. 
 E tutto quello che faccio qui è stampare il data frame. 
 Quindi, se guardi l'output, questo è come appare. 
 Questi sono i tuoi valori effettivi 
 e questi sono i valori che hai previsto 
 costruendo quel modello. 
 Quindi, se il tuo valore effettivo è 28, 
 hai predetto circa 33, 
 qui il tuo valore effettivo è 31, 
 significa che la tua temperatura massima è 31. 
 E hai previsto una temperatura massima di 30. 
 Ora, questi valori sono in realtà piuttosto vicini. 
 Mi sembra che la precisione sia abbastanza buona qui. 
 In alcuni casi, vedi molta varianza, come 23. 
 Qui sono le 15. 
 Proprio qui sono le 22. 
 Qui sono le 11. 

Italian: 
 Ma questi casi sono molto frequenti. 
 E il modo migliore per migliorare la tua precisione direi 
 consiste nell'addestrare un modello con più dati. 
 Tutto a posto. 
 È inoltre possibile visualizzare questo confronto sotto forma di trama. 
 Vediamo come appare. 
 Quindi, fondamentalmente, questo è un grafico a barre 
 che mostra i nostri valori effettivi e quelli previsti. 
 Il blu è rappresentato dai tuoi valori effettivi, 
 e l'arancione è rappresentato dai valori previsti. 
 In posti puoi vederlo 
 abbiamo predetto abbastanza bene, 
 come se le previsioni fossero piuttosto vicine 
 ai valori effettivi. 
 In alcuni casi, le previsioni variano leggermente. 
 Quindi, in alcuni punti, sta effettivamente variando, 
 ma tutto questo dipende anche dai dati di input. 
 Quando abbiamo visto i dati di input, 
 inoltre abbiamo visto molte variazioni. 
 Abbiamo visto un paio di valori anomali. 
 Quindi, tutto ciò potrebbe anche influenzare il tuo output. 
 Ma è così che crei modelli di machine learning. 
 Inizialmente, non otterrai mai 
 davvero una buona precisione. 
 Quello che dovresti fare è migliorare 
 il tuo processo di formazione. 

English: 
But such cases are very often.
And the best way to improve
your accuracy I would say
is by training a model with more data.
Alright.
You can also view this
comparison in the form of a plot.
Let's see how that looks.
So, basically, this is a bar graph
that shows our actual values
and our predicted values.
Blue is represented by your actual values,
and orange is represented
by your predicted values.
At places you can see that
we've predicted pretty well,
like the predictions are pretty close
to the actual values.
In some cases, the predictions
are varying a little bit.
So in a few places, it
is actually varying,
but all of this depends on
your input data as well.
When we saw the input data,
also we saw a lot of variation.
We saw a couple of outliers.
So, all that also might
effect your output.
But then this is how you
build machine learning models.
Initially, you're never going to get
a really good accuracy.
What you should do is you have to improve
your training process.

English: 
That's the best way
you can predict better,
either you use a lot of data,
train your model with a lot of data,
or you use other methods
like parameter tuning,
or basically you try and find
another predictor variable
that'll help you more in
predicting your output.
To me, this looks pretty good.
Now let me show you another plot.
What we're doing is we're
drawing a straight line plot.
Okay, let's see how it looks.
So guys, this straight line
represents a linear relationship.
Now let's say you get a new data point.
Okay, let's say the
value of x is around 20.
So by using this line,
you can predict that four a
minimum temperature of 20,
your maximum temperature
would be around 25
or something like that.
So, we basically drew
a linear relationship
between our input and
output variable over here.
And the final step is to evaluate
the performance of the algorithm.

Italian: 
 Questo è il modo migliore per prevedere meglio, 
 o usi molti dati, 
 addestra il tuo modello con molti dati, 
 o usi altri metodi come l'ottimizzazione dei parametri, 
 o fondamentalmente provi a trovare un'altra variabile predittiva 
 questo ti aiuterà a prevedere meglio la tua produzione. 
 A me sembra piuttosto buono. 
 Ora lascia che ti mostri un'altra trama. 
 Quello che stiamo facendo è disegnare una trama in linea retta. 
 Ok, vediamo come appare. 
 Quindi ragazzi, questa linea retta 
 rappresenta una relazione lineare. 
 Supponiamo ora che tu ottenga un nuovo punto dati. 
 Ok, diciamo che il valore di x è intorno a 20. 
 Quindi, utilizzando questa linea, 
 si può prevedere che quattro una temperatura minima di 20, 
 la tua temperatura massima sarebbe di circa 25 
 o qualcosa di simile. 
 Quindi, fondamentalmente abbiamo disegnato una relazione lineare 
 tra la nostra variabile di input e output qui. 
 E il passaggio finale è valutare 
 le prestazioni dell'algoritmo. 

Italian: 
 Questo passaggio è particolarmente importante per il confronto 
 come funzionano i diversi algoritmi 
 su un particolare set di dati. 
 Ora per gli algoritmi di regressione, 
 vengono utilizzate tre metriche di valutazione. 
 Abbiamo qualcosa noto come errore assoluto medio, 
 errore quadratico medio e errore quadratico medio radice. 
 Ora significa che l'errore assoluto non è altro che 
 il valore assoluto degli errori. 
 Il tuo errore quadratico medio è una media degli errori quadrati. 
 È tutto. 
 È fondamentalmente che leggi questo e capisci 
 cosa significa l'errore. 
 Un errore quadratico medio è la radice quadrata 
 della media degli errori al quadrato. 
 Va bene. 
 Quindi questi sono abbastanza semplici da capire 
 il tuo errore medio assoluto, i tuoi errori medi al quadrato, 
 la tua radice significa errore al quadrato. 
 Ora, fortunatamente, non dobbiamo eseguirli 
 calcoli manualmente. 
 Non dobbiamo codificare ciascuno di questi calcoli. 
 Il ciclo sulla libreria viene fornito con funzioni predefinite 
 che può essere utilizzato per scoprire questi valori. 
 Va bene. 
 Quindi, quando esegui questo codice, otterrai 
 questi valori per ciascuno degli errori. 

English: 
This step is particularly
important to compare
how well different algorithms perform
on a particular data set.
Now for regression algorithms,
three evaluation metrics are used.
We have something known
as mean absolute error,
mean squared error, and
root mean square error.
Now mean absolute error is nothing but
the absolute value of the errors.
Your mean squared error is a
mean of the squared errors.
That's all.
It's basically you read
this and you understand
what the error means.
A root mean squared
error is the square root
of the mean of the squared errors.
Okay.
So these are pretty simple to understand
your mean absolute error,
your mean squared errors,
your root mean squared error.
Now, luckily, we don't
have to perform these
calculations manually.
We don't have to code each
of these calculations.
The cycle on library comes
with prebuilt functions
that can be used to find out these values.
Okay.
So, when you run this code, you will get
these values for each of the errors.

Italian: 
 Otterrai circa 3,19 come errore medio assoluto. 
 Il tuo errore quadratico medio è di circa 17,63. 
 L'errore quadratico medio della tua radice è di circa 4,19. 
 Ora questi valori di errore lo mostrano fondamentalmente 
 la precisione del nostro modello non è molto precisa, 
 ma è ancora in grado di fare molte previsioni. 
 Possiamo tracciare una buona relazione lineare. 
 Ora, per migliorare l'efficienza del tutto, 
 ci sono molti metodi come questo, 
 regolazione dei parametri e tutto il resto, 
 o fondamentalmente puoi addestrare il tuo modello con molti più dati. 
 Oltre a ciò, puoi utilizzare altre variabili predittive, 
 o forse puoi studiare la relazione tra 
 altre variabili predittive 
 e la tua variabile di temperatura massima. 
 Ci sono molti modi 
 per migliorare l'efficienza del modello. 
 Ma per ora, volevo solo farti capire 
 come funziona la regressione lineare, 
 e spero che tutti voi abbiate una buona idea al riguardo. 
 Spero che tutti voi abbiate una buona comprensione 
 di come funziona la regressione lineare. 
 Questa è una piccola demo a riguardo. 
 Se qualcuno di voi ha ancora dei dubbi, 
 per quanto riguarda la regressione lineare, 

English: 
You'll get around 3.19 as
the mean absolute error.
Your mean squared error is around 17.63.
Your root mean squared
error is around 4.19.
Now these error values basically show that
our model accuracy is not very precise,
but it's still able to
make a lot of predictions.
We can draw a good linear relationship.
Now in order to improve
the efficiency at all,
there are a lot of methods like this,
parameter tuning and all of that,
or basically you can train your
model with a lot more data.
Apart from that, you can use
other predictor variables,
or maybe you can study
the relationship between
other predictor variables
and your maximum temperature variable.
There area lot of ways
to improve the efficiency of the model.
But for now, I just wanted
to make you understand
how linear regression works,
and I hope all of you have
a good idea about this.
I hope all of you have
a good understanding
of how linear regression works.
This is a small demo about it.
If any of you still have any doubts,
regarding linear regression,

English: 
please leave that in the comment section.
We'll try and solve all your errors.
So, if you look at this equation,
we calculated everything here.
we drew a relationship between y and x,
which is basically x was
our minimum temperature,
y was our maximum temperature.
We also calculated the
slope and the intercept.
And we also calculated
the error in the end.
We calculated mean squared error
we calculated the root mean squared error.
We also calculate the mean absolute error.
So that was everything
about linear regression.
This was a simple linear regression model.
Now let's move on and look
at our next algorithm,
which is a logistic regression.
Now, in order to understand
why we use logistic regression,
let's consider a small scenarios.
Let's say that your little sister
is trying to get into grad school
and you want to predict
whether she'll get admitted
in her dream school or not.
Okay, so based on her
CGPA and the past data,

Italian: 
 per favore lascialo nella sezione commenti. 
 Cercheremo di risolvere tutti i tuoi errori. 
 Quindi, se guardi questa equazione, 
 abbiamo calcolato tutto qui. 
 abbiamo tracciato una relazione tra y e x, 
 che è fondamentalmente x era la nostra temperatura minima, 
 era la nostra temperatura massima. 
 Abbiamo anche calcolato la pendenza e l'intercetta. 
 E alla fine abbiamo anche calcolato l'errore. 
 Abbiamo calcolato l'errore quadratico medio 
 abbiamo calcolato l'errore quadratico medio della radice. 
 Calcoliamo anche l'errore medio assoluto. 
 Quindi era tutto ciò che riguarda la regressione lineare. 
 Questo era un semplice modello di regressione lineare. 
 Ora andiamo avanti e guardiamo al nostro prossimo algoritmo, 
 che è una regressione logistica. 
 Ora, per capire perché usiamo la regressione logistica, 
 consideriamo un piccolo scenario. 
 Diciamo che la tua sorellina 
 sta cercando di entrare nella scuola di specializzazione 
 e vuoi prevedere se verrà ammessa 
 nella scuola dei suoi sogni o no. 
 Ok, quindi in base al suo CGPA e ai dati passati, 

Italian: 
 puoi usare la regressione logistica 
 prevedere il risultato. 
 Quindi la regressione logistica ti permetterà di analizzare 
 l'insieme di variabili e prevedere un risultato categoriale. 
 Dato che qui dobbiamo prevedere se lo farà 
 entrare in una scuola o no, 
 che è un problema di classificazione, 
 Verrà utilizzata la regressione logistica. 
 Ora so che la prima domanda nella tua testa è, 
 perché non stiamo usando la regressione lineare in questo caso? 
 La ragione è quella regressione lineare 
 viene utilizzato per prevedere una quantità continua, 
 piuttosto che categorico. 
 Qui andremo a prevedere 
 se tua sorella andrà o meno all'università. 
 Quindi questo è chiaramente un risultato categorico. 
 Quindi, quando il risultato è il risultato 
 può accettare solo classi di valori, 
 come due classi di valori, 
 è sensato disporre di un modello che preveda il valore 
 come zero o uno, 
 o in una forma di probabilità che varia tra zero e uno. 
 Va bene. 
 Quindi la regressione lineare non ha questa capacità. 
 Se usi la regressione lineare 
 per modellare un risultato binario, 

English: 
you can use logistic regression
to foresee the outcome.
So logistic regression
will allow you to analyze
the set of variables and
predict a categorical outcome.
Since here we need to
predict whether she will
get into a school or not,
which is a classification problem,
logistic regression will be used.
Now I know the first
question in your head is,
why are we not using linear
regression in this case?
The reason is that linear regression
is used to predict a continuous quantity,
rather than a categorical one.
Here we're going to predict
whether or not your sister is
going to get into grad school.
So that is clearly a categorical outcome.
So when the result in outcome
can take only classes of values,
like two classes of values,
it is sensible to have a
model that predicts the value
as either zero or one,
or in a probability form that
ranges between zero and one.
Okay.
So linear regression does
not have this ability.
If you use linear regression
to model a binary outcome,

Italian: 
 il modello risultante non prevede i valori y 
 nella gamma di zero e uno, 
 perché la regressione lineare funziona 
 variabili dipendenti continue, 
 e non sulle variabili categoriali. 
 Ecco perché utilizziamo la regressione logistica. 
 Quindi capisci che è stata utilizzata la regressione lineare 
 prevedere quantità continue, 
 e la regressione logistica è usata per 
 prevedere quantità categoriali. 
 Ok, ora una grande confusione che tutti hanno 
 è la gente continua a chiedermelo 
 perché la regressione logistica è chiamata regressione logistica 
 quando viene utilizzato per la classificazione. 
 Il motivo per cui è chiamato regressione logistica 
 è perché la sua tecnica principale 
 è molto simile alla regressione logistica. 
 Non c'è altro motivo dietro la denominazione. 
 Appartiene ai modelli lineari generali. 
 Appartiene alla stessa classe della regressione lineare, 
 ma non è l'altra ragione 
 dietro il nome di regressione logistica. 
 Viene utilizzata principalmente la regressione logistica 
 ai fini della classificazione, 

English: 
the resulting model will
not predict y values
in the range of zero and one,
because linear regression works on
continuous dependent variables,
and not on categorical variables.
That's why we make use
of logistic regression.
So understand that linear
regression was used
to predict continuous quantities,
and logistic regression is used to
predict categorical quantities.
Okay, now one major
confusion that everybody has
is people keep asking me
why is logistic regression
called logistic regression
when it is used for classification.
The reason it is named logistic regression
is because its primary technique
is very similar to logistic regression.
There's no other reason behind the naming.
It belongs to the general linear models.
It belongs to the same
class as linear regression,
but that is not the other reason
behind the name logistic regression.
Logistic regression is mainly used
for classification purpose,

English: 
because here you'll have to
predict a dependent variable
which is categorical in nature.
So this is mainly used for classification.
So, to define logistic regression for you,
logistic regression is
a method used to predict
a dependent variable y,
given an independent variable x,
such that the dependent
variable is categorical,
meaning that your output
is a categorical variable.
So, obviously, this is
classification algorithm.
So guys, again, to clear your confusion,
when I say categorical variable,
I mean that it can hold
values like one or zero,
yes or no, true or false, and so on.
So, basically, in logistic regression,
the outcome is always categorical.
Now, how does logistic regression work?
So guys, before I tell you
how logistic regression works,
take a look at this graph.
Now I told you that the outcome
in a logistic regression is categorical.
Your outcome will either be zero or one,

Italian: 
 perché qui dovrai prevedere una variabile dipendente 
 che è di natura categorica. 
 Quindi questo viene utilizzato principalmente per la classificazione. 
 Quindi, per definire la regressione logistica per te, 
 la regressione logistica è un metodo utilizzato per prevedere 
 una variabile dipendente y, 
 data una variabile indipendente x, 
 tale che la variabile dipendente sia categoriale, 
 significa che il tuo output è una variabile categoriale. 
 Quindi, ovviamente, questo è l'algoritmo di classificazione. 
 Quindi ragazzi, ancora una volta, per cancellare la vostra confusione, 
 quando dico variabile categoriale, 
 Voglio dire che può contenere valori come uno o zero, 
 sì o no, vero o falso e così via. 
 Quindi, fondamentalmente, nella regressione logistica, 
 il risultato è sempre categorico. 
 Ora, come funziona la regressione logistica? 
 Quindi ragazzi, prima che vi dica come funziona la regressione logistica, 
 dai un'occhiata a questo grafico. 
 Ora ti ho detto che il risultato 
 in una regressione logistica è categorica. 
 Il tuo risultato sarà zero o uno, 

English: 
or it'll be a probability that
ranges between zero and one.
So, that's why we have this S curve.
Now some of you might think
that why do we have an S curve.
We can obviously have a straight line.
We have something known
as a sigmoid curve,
because we can have values
ranging between zero and one,
which will basically show the probability.
So, maybe your output will be 0.7,
which is a probability value.
If it is 0.7,
it means that your
outcome is basically one.
So that's why we have this
sigmoid curve like this.
Okay.
Now I'll explain more about this
in depth in a while.
Now, in order to understand
how logistic regression works,
first, let's take a look at
the linear regression equation.
This was the logistic regression equation
that we discussed.
Y here stands for the dependent variable
that needs to be predicted
beta naught is nothing by the y intercept.
Beta one is nothing but the slope.
And X here represents
the independent variable
that is used to predict y.

Italian: 
 oppure sarà una probabilità che varia tra zero e uno. 
 Quindi, ecco perché abbiamo questa curva S. 
 Ora alcuni di voi potrebbero pensare che perché abbiamo una curva a S. 
 Ovviamente possiamo avere una linea retta. 
 Abbiamo qualcosa noto come curva sigmoidea, 
 perché possiamo avere valori compresi tra zero e uno, 
 che fondamentalmente mostrerà la probabilità. 
 Quindi, forse il tuo output sarà 0,7, 
 che è un valore di probabilità. 
 Se è 0,7, 
 significa che il tuo risultato è fondamentalmente uno. 
 Ecco perché abbiamo questa curva sigmoidea come questa. 
 Va bene. 
 Ora spiegherò di più su questo 
 in profondità tra un po '. 
 Ora, per capire come funziona la regressione logistica, 
 per prima cosa, diamo un'occhiata a 
 l'equazione di regressione lineare. 
 Questa era l'equazione di regressione logistica 
 di cui abbiamo discusso. 
 Y qui sta per la variabile dipendente 
 che deve essere previsto 
 beta nulla è niente dall'intercetta y. 
 Beta one non è altro che la pendenza. 
 E qui X rappresenta la variabile indipendente 
 che viene utilizzato per prevedere y. 

Italian: 
 Quella E denota l'errore nel calcolo. 
 Quindi, dato il fatto che x è la variabile indipendente 
 e y è la variabile dipendente, 
 come possiamo rappresentare una relazione tra x e y 
 in modo che y sia compreso solo tra zero e uno? 
 Qui questo valore denota fondamentalmente 
 probabilmente y uguale a uno, 
 dato un valore di x. 
 Quindi qui, perché questo Pr, denota probabilità 
 e questo valore denota fondamentalmente che la probabilità 
 di y uguale a uno, dato un valore di x, 
 questo è quello che dobbiamo scoprire. 
 Ora, se vuoi calcolare la probabilità 
 utilizzando il modello di regressione lineare, 
 allora la probabilità sarà qualcosa di simile 
 P di X uguale a beta zero 
 più beta uno in X. 
 P di X sarà uguale a beta zero più beta uno in X, 
 dove P di X nient'altro che 
 la tua probabilità di ottenere y uguale a uno, 
 dato un valore di x. 
 Quindi l'equazione di regressione logistica 

English: 
That E denotes the error
on the computation.
So, given the fact that x
is the independent variable
and y is the dependent variable,
how can we represent a
relationship between x an y
so that y ranges only
between zero and one?
Here this value basically denotes
probably of y equal to one,
given some value of x.
So here, because this
Pr, denotes probability
and this value basically
denotes that the probability
of y equal to one, given some value of x,
this is what we need to find out.
Now, if you wanted to
calculate the probability
using the linear regression model,
then the probability
will look something like
P of X equal to beta naught
plus beta one into X.
P of X will be equal to beta
naught plus beta one into X,
where P of X nothing but
your probability of
getting y equal to one,
given some value of x.
So the logistic regression equation

English: 
is derived from the same equation,
except we need to make a few alterations,
because the output is only categorical.
So, logistic regression does
not necessarily calculate
the outcome as zero or one.
I mentioned this before.
Instead, it calculates the
probability of a variable
falling in the class zero or class one.
So that's how we can conclude that
the resulting variable must be positive,
and it should lie between zero and one,
which means that it must be less than one.
So to meet these conditions,
we have to do two things.
First, we can take the
exponent of the equation,
because taking an exponential of any value
will make sure that you
get a positive number.
Correct?
Secondly, you have to make sure
that your output is less than one.
So, a number divided by itself plus one
will always be less than one.
So that's how we get this formula
First, we take the
exponent of the equation,
beta naught plus beta one plus x

Italian: 
 è derivato dalla stessa equazione, 
 tranne che dobbiamo apportare alcune modifiche, 
 perché l'output è solo categorico. 
 Quindi, la regressione logistica non calcola necessariamente 
 il risultato come zero o uno. 
 Ne ho parlato prima. 
 Invece, calcola la probabilità di una variabile 
 rientrando nella classe zero o nella classe uno. 
 Quindi è così che possiamo concluderlo 
 la variabile risultante deve essere positiva, 
 e dovrebbe trovarsi tra zero e uno, 
 il che significa che deve essere inferiore a uno. 
 Quindi, per soddisfare queste condizioni, 
 dobbiamo fare due cose. 
 Innanzitutto, possiamo prendere l'esponente dell'equazione, 
 perché prendendo un esponenziale di qualsiasi valore 
 si assicurerà di ottenere un numero positivo. 
 Corretta? 
 In secondo luogo, devi assicurarti 
 che il tuo output è inferiore a uno. 
 Quindi, un numero diviso per se stesso più uno 
 sarà sempre inferiore a uno. 
 Ecco come otteniamo questa formula 
 Per prima cosa, prendiamo l'esponente dell'equazione, 
 beta nulla più beta uno più x 

Italian: 
 e poi lo dividiamo per quel numero più uno. 
 Quindi è così che otteniamo questa formula. 
 Ora il passo successivo è calcolare 
 qualcosa noto come funzione logica. 
 Ora la funzione logica è niente, 
 ma è una funzione di collegamento 
 che è rappresentato come una curva S. 
 o come una curva sigmoidea 
 che varia tra il valore zero e uno. 
 Fondamentalmente calcola la probabilità 
 della variabile di output. 
 Quindi se guardi questa equazione, è abbastanza semplice. 
 Quello che abbiamo fatto qui è semplicemente incrociare e moltiplicare 
 e non prendi nessuna delle nostre beta 
 più beta uno in x come comune. 
 L'RHS indica l'equazione lineare per 
 le variabili indipendenti. 
 Il LHS rappresenta il rapporto dispari. 
 Quindi, se calcoli l'intera cosa, 
 otterrai questo valore finale, 
 che è fondamentalmente la tua equazione di regressione logistica. 
 Il tuo RHS qui indica l'equazione lineare 
 per variabili indipendenti, 
 e il tuo LHS rappresenta il rapporto dispari 
 che è anche nota come funzione logica. 

English: 
and then we divide it
by that number plus one.
So this is how we get this formula.
Now the next step is to calculate
something known as a logic function.
Now the logic function is nothing,
but it is a link function
that is represented as an S curve
or as a sigmoid curve
that ranges between
the value zero and one.
It basically calculates the probability
of the output variable.
So if you look at this
equation, it's quite simple.
What we have done here
is we just cross multiply
and take each of our beta naught
plus beta one into x as common.
The RHS denotes the linear equation for
the independent variables.
The LHS represents the odd ratio.
So if you compute this entire thing,
you'll get this final value,
which is basically your
logistic regression equation.
Your RHS here denotes the linear equation
for independent variables,
and your LHS represents the odd ratio
which is also known as the logic function.

English: 
So I told you that logic function
is basically a function
that represents an S curve
that bring zero and one.
this will make sure that our value
ranges between zero and one.
So in logistic regression,
on increasing this X by one measure,
it changes the logic by
a factor of beta naught.
It's the same thing as I showed
you in logistic regression.
So guys, that's how you derive
the logistic regression equation.
So if you have any doubts
regarding these equations,
please leave them in the comment section,
and I'll get back to you,
and I'll clear that out.
So to sum it up, logistic
regression is used
for classification.
The output variable will always
be a categorical variable.
We also saw how you derive the
logistic regression equation.
And one more important thing is that
the relationship between the variables
and a logistic regression is denoted as
an S curve which is also
knows as a sigmoid curve,
and also the outcome does not

Italian: 
 Quindi ti ho detto quella funzione logica 
 è fondamentalmente una funzione che rappresenta una curva S. 
 che portano zero e uno. 
 questo farà in modo che il nostro valore 
 è compreso tra zero e uno. 
 Quindi nella regressione logistica, 
 aumentando questa X di una misura, 
 cambia la logica di un fattore di beta zero. 
 È la stessa cosa che ti ho mostrato nella regressione logistica. 
 Quindi ragazzi, è così che derivate 
 l'equazione di regressione logistica. 
 Quindi, se hai dubbi su queste equazioni, 
 si prega di lasciarli nella sezione commenti, 
 e ti richiamerò, e lo chiarirò. 
 Quindi, per riassumere, viene utilizzata la regressione logistica 
 per la classificazione. 
 La variabile di output sarà sempre una variabile categoriale. 
 Abbiamo anche visto come si ricava l'equazione di regressione logistica. 
 E un'altra cosa importante è quella 
 la relazione tra le variabili 
 e una regressione logistica è indicata come 
 una curva a S che è anche nota come curva sigmoidea, 
 e anche il risultato no 

Italian: 
 devono essere necessariamente calcolati come zero o uno. 
 Può essere calcolato come probabilità 
 che l'output si trova nella classe uno o nella classe zero. 
 Quindi il tuo output può essere una probabilità 
 compreso tra zero e uno. 
 Ecco perché abbiamo una curva sigmoidea. 
 Quindi spero che tutti voi siate chiari con la regressione logistica. 
 Ora non ti mostrerò subito la demo. 
 Spiegherò un paio di altri algoritmi di classificazione. 
 Poi ti mostrerò una demo pratica 
 dove useremo più algoritmi di classificazione 
 per risolvere lo stesso problema. 
 Di nuovo, calcoleremo anche la precisione 
 e vedi quale algoritmo di classificazione sta facendo il meglio. 
 Adesso parlerò del prossimo algoritmo 
 è l'albero decisionale. 
 L'albero decisionale è uno dei miei algoritmi preferiti, 
 perché è molto semplice da capire 
 come funziona un albero decisionale. 
 Quindi ragazzi, prima di questo, abbiamo discusso della regressione lineare, 
 che era un algoritmo di regressione. 
 Quindi abbiamo discusso della regressione logistica, 
 che è un algoritmo di classificazione. 
 Ricorda, non confonderti solo perché 
 ha il nome di regressione logistica. 

English: 
necessarily have to be
calculated as zero or one.
It can be calculate as a probability
that the output lies in
class one or class zero.
So your output can be a probability
ranging between zero and one.
That's why we have a sigmoid curve.
So I hope all of you are clear
with logistic regression.
Now I won't be showing
you the demo right away.
I'll explain a couple of more
classification algorithms.
Then I'll show you a practical demo
where we'll use multiple
classification algorithms
to solve the same problem.
Again, we'll also calculate the accuracy
and se which classification
algorithm is doing the best.
Now the next algorithm
I'm gonna talk about
is decision tree.
Decision tree is one of
my favorite algorithms,
because it's very simple to understand
how a decision tree works.
So guys, before this, we
discussed linear regression,
which was a regression algorithm.
Then we discussed logistic regression,
which is a classification algorithm.
Remember, don't get confused just because
it has the name logistic regression.

Italian: 
 Va bene, è un algoritmo di classificazione. 
 Ora stiamo discutendo l'albero decisionale, 
 che è ancora un algoritmo di classificazione. 
 Va bene. 
 Allora, cos'è esattamente un albero decisionale? 
 Ora un albero decisionale è, di nuovo, 
 un algoritmo di apprendimento automatico supervisionato 
 che sembra un albero capovolto 
 in cui ogni nodo rappresenta una variabile predittiva, 
 e il collegamento tra il nodo rappresenta una decisione, 
 e ogni nodo foglia rappresenta un risultato. 
 Ora so che è un po 'confuso 
 quindi lascia che ti faccia capire cos'è un albero decisionale 
 con l'aiuto di un esempio. 
 Supponiamo che tu abbia ospitato una grande festa, 
 e vuoi sapere quante delle tue raffiche 
 sono non vegetariani. 
 Quindi, per risolvere questo problema, 
 puoi creare un semplice albero decisionale. 
 Ora se guardi questa figura qui, 
 Ho creato un albero decisionale che classifica un ospite 
 come vegetariano o non vegetariano. 
 Il nostro ultimo risultato qui è non-veg o veg. 
 Quindi qui capisci 
 che questo è un algoritmo di classificazione, 

English: 
Okay, it is a classification algorithm.
Now we're discussing decision tree,
which is again a classification algorithm.
Okay.
So what exactly is a decision tree?
Now a decision tree is, again,
a supervised machine learning algorithm
which looks like an inverted tree
wherein each node represents
a predictor variable,
and the link between the
node represents a decision,
and each leaf node represents an outcome.
Now I know that's a little confusing,
so let me make you understand
what a decision tree is
with the help of an example.
Let's say that you hosted a huge party,
and you want to know
how many of your gusts
are non-vegetarians.
So to solve this problem,
you can create a simple decision tree.
Now if you look at this figure over here,
I've created a decision
tree that classifies a guest
as either vegetarian or non-vegetarian.
Our last outcome here is non-veg or veg.
So here you understand
that this is a classification algorithm,

Italian: 
 perché qui stai prevedendo un valore categorico. 
 Ogni nodo qui sopra rappresenta una variabile predittore. 
 Quindi mangiare pollo è una variabile, 
 mangiare montone è una variabile, 
 il pesce è un'altra variabile. 
 Quindi ogni nodo rappresenta una variabile predittore 
 che ti aiuterà a concludere se 
 un ospite è un non vegetariano. 
 Ora mentre attraversi l'albero, 
 prenderai decisioni che ogni nodo 
 fino a raggiungere il vicolo cieco. 
 Va bene, è così che funziona. 
 Quindi, diciamo che abbiamo un nuovo punto dati. 
 Ora lo passeremo attraverso l'albero decisionale. 
 La prima variabile è l'ospite 
 mangiare il pollo? 
 Se sì, allora è un non vegetariano. 
 Se no, lo passerai alla variabile successiva, 
 che cosa l'ospite ha mangiato montone? 
 Se sì, allora è un non vegetariano. 
 Se no, lo passerai alla variabile successiva, 
 che è pesce. 
 Se ha mangiato pesce, allora è un non vegetariano. 
 Se no, allora è vegetariano. 
 ecco come funziona un albero decisionale. 
 È un algoritmo molto semplice 
 che puoi facilmente capire. 

English: 
because here you're predicting
a categorical value.
Each node over here represents
a predictor variable.
So eat chicken is one variable,
eat mutton is one variable,
seafood is another variable.
So each node represents
a predictor variable
that will help you conclude whether or not
a guest is a non-vegetarian.
Now as you traverse down the tree,
you'll make decisions that each node
until you reach the dead end.
Okay, that's how it works.
So, let's say we got a new data point.
Now we'll pass it through
the decision tree.
The first variable is did the guest
eat the chicken?
If yes, then he's a non-vegetarian.
If no, then you'll pass
it to the next variable,
which is did the guest eat mutton?
If yes, then he's a non-vegetarian.
If no, then you'll pass
it to the next variable,
which is seafood.
If he ate seafood, then
he is a non-vegetarian.
If no, then he's a vegetarian.
this is how a decision tree works.
It's a very simple algorithm
that you can easily understand.

English: 
It has drawn out letters, which
is very easy to understand.
Now let's understand the
structure of a decision tree.
I just showed you an example
of how the decision tree works.
Now let me take the same example
and tell you the structure
for decision tree.
So, first of all, we have
something known as the root node.
Okay.
The root node is the starting point
of a decision tree.
Here you'll perform the first split
and split it into two other nodes
or three other nodes, depending
on your problem statement.
So the top most node is
known as your root node.
Now guys, about the root node,
the root node is assigned to a variable
that is very significant,
meaning that that
variable is very important
in predicting the output.
Okay, so you assign a variable
that you think is the most
significant at the root node.
After that, we have something
known as internal nodes.
So each internal node
represents a decision point
that eventually leads to the output.

Italian: 
 Ha disegnato lettere, il che è molto facile da capire. 
 Ora comprendiamo la struttura di un albero decisionale. 
 Ti ho solo mostrato un esempio 
 di come funziona l'albero decisionale. 
 Ora fammi fare lo stesso esempio 
 e dirti la struttura per l'albero decisionale. 
 Quindi, prima di tutto, abbiamo qualcosa noto come nodo radice. 
 Va bene. 
 Il nodo radice è il punto di partenza 
 di un albero decisionale. 
 Qui eseguirai la prima divisione 
 e dividerlo in altri due nodi 
 o altri tre nodi, a seconda della dichiarazione del problema. 
 Quindi il nodo più in alto è noto come nodo radice. 
 Ora ragazzi, riguardo al nodo radice, 
 il nodo radice viene assegnato a una variabile 
 questo è molto significativo, 
 il che significa che quella variabile è molto importante 
 nella previsione dell'output. 
 Ok, quindi assegni una variabile 
 che ritieni sia il più significativo nel nodo radice. 
 Dopodiché, abbiamo qualcosa noto come nodi interni. 
 Quindi ogni nodo interno rappresenta un punto di decisione 
 che alla fine porta all'output. 

English: 
Internal nodes will have
other predictor variables.
Each of these are nothing
predictor variables.
I just made it into a question
otherwise these are just
predictor variables.
Those are internal nodes.
Terminal nodes, also
known as the leaf node,
represent the final class
of the output variable,
because these are basically your outcomes,
non-veg and vegetarian.
Branches are nothing but
connections between nodes.
Okay, these connections are links between
each node is known as a branch,
and they're represented by arrows.
So each branch will have
some response to it,
either yes or no, true or
false, one or zero, and so on.
Okay.
So, guys, this is the
structure of a decision tree.
It's pretty understandable.
Now let's move on and
we'll understand how the
decision tree algorithm works.
Now there are many ways
to build a decision tree,
but I'll be focusing on something known
as the ID3 algorithm.
Okay, this is something
known as the ID3 algorithm.

Italian: 
 I nodi interni avranno altre variabili predittive. 
 Ognuna di queste non è nulla di variabili predittive. 
 L'ho appena trasformato in una domanda 
 altrimenti queste sono solo variabili predittive. 
 Quelli sono nodi interni. 
 I nodi terminali, noti anche come nodo foglia, 
 rappresentano la classe finale della variabile di output, 
 perché questi sono fondamentalmente i tuoi risultati, 
 non veg e vegetariano. 
 I rami non sono altro che connessioni tra i nodi. 
 Ok, queste connessioni sono collegamenti tra 
 ogni nodo è noto come ramo, 
 e sono rappresentati da frecce. 
 Quindi ogni ramo avrà una risposta ad esso, 
 o sì o no, vero o falso, uno o zero e così via. 
 Va bene. 
 Quindi, ragazzi, questa è la struttura di un albero decisionale. 
 È abbastanza comprensibile. 
 Ora andiamo avanti e 
 capiremo come funziona l'algoritmo dell'albero decisionale. 
 Ora ci sono molti modi per costruire un albero decisionale, 
 ma mi concentrerò su qualcosa di noto 
 come algoritmo ID3. 
 Ok, questo è qualcosa noto come algoritmo ID3. 

English: 
That is one of the ways
in which you can build
the decision tree.
ID3 stands for Iterative
Dichotomiser 3 algorithm,
which is one of the most
effective algorithms
used to build a decision tree.
It uses the concepts of
entropy and information gain
in order to build a decision tree.
Now you don't have to know what exactly
the ID3 algorithm is.
It's just a concept behind
building a decision tree.
Now the ID3 algorithm has
around six defined steps
in order to build a decision tree.
So the first step is you will
select the best attribute.
Now what do you mean
by the best attribute?
So, attribute is nothing but
the predictor variable over here.
So you'll select the
best predictor variable.
Let's call it A.
After that, you'll assign this A
as a decision variable for the root node.
Basically, you'll assign
this predictor variable A
at the root node.
Next, what you'll do
is for each value of A,
you'll build a descendant of the node.

Italian: 
 Questo è uno dei modi in cui puoi costruire 
 l'albero decisionale. 
 ID3 sta per algoritmo Iterative Dichotomiser 3, 
 che è uno degli algoritmi più efficaci 
 utilizzato per costruire un albero decisionale. 
 Utilizza i concetti di entropia e guadagno di informazioni 
 per costruire un albero decisionale. 
 Ora non devi sapere cosa esattamente 
 l'algoritmo ID3 è. 
 È solo un concetto alla base della costruzione di un albero decisionale. 
 Ora l'algoritmo ID3 ha circa sei passaggi definiti 
 per costruire un albero decisionale. 
 Quindi il primo passo è selezionare l'attributo migliore. 
 Ora cosa intendi per attributo migliore? 
 Quindi, l'attributo non è altro che 
 la variabile predittore qui. 
 Quindi selezionerai la migliore variabile predittiva. 
 Chiamiamolo A. 
 Dopodiché, assegnerai questo A 
 come variabile decisionale per il nodo radice. 
 Fondamentalmente, assegnerai questa variabile predittiva A 
 al nodo radice. 
 Successivamente, ciò che farai è per ogni valore di A, 
 costruirai un discendente del nodo. 

Italian: 
 Ora questi tre passaggi, guardiamoli 
 con l'esempio precedente. 
 Ora qui l'attributo migliore è mangiare pollo. 
 Ok, questa è la mia migliore variabile di attributo qui. 
 Quindi ho selezionato quell'attributo. 
 E qual è il passaggio successivo? 
 La fase due è stata assegnata come variabile decisionale. 
 Quindi ho assegnato mangia pulcino come variabile decisionale 
 al nodo radice. 
 Ora ti starai chiedendo come faccio a saperlo 
 che è il miglior attributo. 
 Spiegherò tutto questo tra un po '. 
 Quindi quello che abbiamo fatto è stato assegnato a questo altro nodo radice. 
 Dopodiché, il passaggio numero tre dice per ogni valore di A, 
 costruire un discendente del nodo. 
 Quindi per ogni valore di questa variabile, 
 costruire un nodo discendente. 
 Quindi questa variabile può assumere due valori, sì e no. 
 Quindi per ciascuno di questi valori, 
 Costruisco un nodo discendente. 
 Passaggio numero quattro, assegnare le etichette di classificazione 
 al nodo foglia. 
 Al tuo nodo foglia, ho assegnato 
 classificando uno come non vegetale e l'altro è veg. 

English: 
Now these three steps, let's look at it
with the previous example.
Now here the best
attribute is eat chicken.
Okay, this is my best
attribute variable over here.
So I selected that attribute.
And what is the next step?
Step two was assigned that
as a decision variable.
So I assigned eat chick
as the decision variable
at the root node.
Now you might be wondering how do I know
which is the best attribute.
I'll explain all of that in a while.
So what we did is we assigned
this other root node.
After that, step number three
says for each value of A,
build a descendant of the node.
So for each value of this variable,
build a descendant node.
So this variable can take
two values, yes and no.
So for each of these values,
I build a descendant node.
Step number four, assign
classification labels
to the leaf node.
To your leaf node, I have assigned
classification one as
non-veg, and the other is veg.

Italian: 
 Questo è il passaggio numero quattro. 
 Il passaggio numero cinque è se i dati sono classificati correttamente, 
 poi ti fermi a quello. 
 Tuttavia, se non lo è, 
 poi continui a iterare sull'albero, 
 e continua a cambiare la posizione di 
 le variabili predittive nell'albero, 
 oppure si cambia anche il nodo radice 
 per ottenere l'output corretto. 
 Quindi ora permettimi di rispondere a questa domanda. 
 Qual è l'attributo migliore? 
 Cosa intendi per attributo migliore 
 o la migliore variabile predittiva? 
 Ora l'attributo migliore è quello 
 che separa i dati in diverse classi, 
 più efficacemente, o lo è fondamentalmente 
 una funzionalità che suddivide al meglio il set di dati. 
 Ora la prossima domanda nella tua testa deve essere come decido 
 quale variabile o caratteristica suddivide meglio i dati. 
 Per fare ciò, ci sono due misure importanti. 
 C'è qualcosa noto come guadagno di informazioni 
 e c'è qualcosa noto come entropia. 
 Adesso ragazzi, per capire 

English: 
That is step number four.
Step number five is if data
is correctly classified,
then you stop at that.
However, if it is not,
then you keep iterating over the tree,
and keep changing the position of
the predictor variables in the tree,
or you change the root node also
in order to get the correct output.
So now let me answer this question.
What is the best attribute?
What do you mean by the best attribute
or the best predictor variable?
Now the best attribute is the one
that separates the data
into different classes,
most effectively, or it is basically
a feature that best splits the data set.
Now the next question in your
head must be how do I decide
which variable or which
feature best splits the data.
To do this, there are
two important measures.
There's something known
as information gain
and there's something known as entropy.
Now guys, in order to understand

English: 
information gain and entropy,
we look at a simple problem statement.
This data represents the speed of a car
based on certain parameters.
So our problem statement
here is to study the data set
and create a decision tree that classifies
the speed of the car
as either slow or fast.
So our predictor variables
here are road type,
obstruction, and speed limit,
and or response variable, or
our output variable is speed.
So we'll be building a decision
tree using these variables
in order to predict the speed of car.
Now like I mentioned earlier,
we must first begin by deciding a variable
that best splits the data set
and assign that particular
variable to the root node
and repeat the same thing
for other nodes as well.
So step one, like we discussed earlier,
is to select the best attribute A.
Now, how do you know which
variable best separates the data?
The variable with the
highest information gain
best derives the data into
the desired output classes.

Italian: 
 guadagno di informazioni ed entropia, 
 esaminiamo una semplice dichiarazione del problema. 
 Questi dati rappresentano la velocità di un'auto 
 in base a determinati parametri. 
 Quindi la nostra dichiarazione del problema qui è studiare il set di dati 
 e creare un albero decisionale che classifica 
 la velocità dell'auto sia lenta che veloce. 
 Quindi le nostre variabili predittive qui sono il tipo di strada, 
 ostruzione e limite di velocità, 
 eo variabile di risposta, o la nostra variabile di output è la velocità. 
 Quindi costruiremo un albero decisionale usando queste variabili 
 al fine di prevedere la velocità dell'auto. 
 Ora come ho detto prima, 
 dobbiamo prima iniziare decidendo una variabile 
 che suddivide al meglio il set di dati 
 e assegnare quella particolare variabile al nodo radice 
 e ripeti la stessa cosa anche per gli altri nodi. 
 Quindi il primo passaggio, come abbiamo discusso in precedenza, 
 è selezionare il miglior attributo A. 
 Ora, come fai a sapere quale variabile separa meglio i dati? 
 La variabile con il maggior guadagno di informazioni 
 meglio ricava i dati nelle classi di output desiderate. 

Italian: 
 Prima di tutto, calcoleremo due misure. 
 Calcoleremo l'entropia e il guadagno di informazioni. 
 Ora qui è dove ti dice cos'è esattamente l'entropia, 
 e cos'è esattamente il guadagno di informazioni. 
 Ora l'entropia è fondamentalmente usata per misurare 
 l'impurità o l'incertezza presente nei dati. 
 Viene utilizzato per decidere in che modo un albero decisionale può suddividere i dati. 
 Guadagno di informazioni, d'altra parte, 
 è la misura più significativa 
 che viene utilizzato per costruire un albero decisionale. 
 Indica quante informazioni una particolare variabile 
 ci dà un incontro sul risultato finale. 
 Quindi il guadagno di informazioni è importante, 
 perché è usato per scegliere una variabile 
 che suddivide al meglio i dati in ogni nodo 
 per un albero decisionale. 
 Ora la variabile con il maggior guadagno di informazioni 
 verrà utilizzato per dividere i dati nel nodo radice. 
 Ora nel nostro set di dati ci sono quattro osservazioni. 
 Quindi quello che faremo è iniziare calcolando 
 l'entropia e il guadagno di informazioni 
 per ciascuna variabile predittore. 
 Quindi inizieremo calcolando il guadagno di informazioni 

English: 
First of all, we'll
calculate two measures.
We'll calculate the entropy
and the information gain.
Now this is where it ell
you what exactly entropy is,
and what exactly information gain is.
Now entropy is basically used to measure
the impurity or the uncertainty
present in the data.
It is used to decide how a
decision tree can split the data.
Information gain, on the other hand,
is the most significant measure
which is used to build a decision tree.
It indicates how much
information a particular variable
gives us a bout the final outcome.
So information gain is important,
because it is used to choose a variable
that best splits the data at each node
for a decision tree.
Now the variable with the
highest information gain
will be used to split the
data at the root node.
Now in our data set, there
are are four observations.
So what we're gonna do is
we'll start by calculating
the entropy and information gain
for each of the predictor variable.
So we're gonna start by
calculating the information gain

English: 
and entropy for the road type variable.
In our data set, you can see that
there are four observations.
There are four observations
in the road type column,
which corresponds to the four
labels in the speed column.
So we're gonna begin by
calculating the information gain
of the parent node.
The parent node is nothing but
the speed of the care node.
This is our output variable, correct?
It'll be used to show
whether the speed of the car
is slow or fast.
So to find out the information gain of the
speed of the car variable,
we'll go through a couple of steps.
Now we know that there
are four observations
in this parent node.
First, we have slow.
Then again we have slow, fast, and fast.
Now, out of these four
observations, we have two classes.
So two observations
belong to the class slow,
and two observations
belong to the class fast.
So that's how you calculate
P slow and P fast.
P slow is nothing by the fraction

Italian: 
 ed entropia per la variabile del tipo di strada. 
 Puoi vederlo nel nostro set di dati 
 ci sono quattro osservazioni. 
 Ci sono quattro osservazioni nella colonna del tipo di strada, 
 che corrisponde alle quattro etichette nella colonna della velocità. 
 Quindi inizieremo calcolando il guadagno di informazioni 
 del nodo padre. 
 Il nodo genitore non è altro che la velocità del nodo di cura. 
 Questa è la nostra variabile di output, giusto? 
 Sarà usato per mostrare se la velocità dell'auto 
 è lento o veloce. 
 Quindi, per scoprire il guadagno di informazioni di 
 velocità della macchina variabile, 
 eseguiremo un paio di passaggi. 
 Ora sappiamo che ci sono quattro osservazioni 
 in questo nodo padre. 
 In primo luogo, abbiamo lento. 
 Poi di nuovo abbiamo lento, veloce e veloce. 
 Ora, da queste quattro osservazioni, abbiamo due classi. 
 Quindi due osservazioni appartengono alla classe lenta, 
 e due osservazioni appartengono alla classe veloce. 
 Quindi è così che calcoli P lento e P veloce. 
 P lento non è niente per frazione 

English: 
of slow outcomes in the parent node,
and P fast is the
fraction of fast outcomes
in the parent node.
And the formula to calculate P slow
is the number of slow
outcomes in the parent node
divided by the total number of outcomes.
So the number of slow outcomes
in the parent node is two,
and the total number of outcomes is four.
We have four observations in total.
So that's how we get P of slow as 0.5.
Similarly, for P of fast, you'll calculate
the number of fast outcomes
divided by the total number of outcomes.
So again, two by four, you'll get 0.5.
The next thing you'll
do is you'll calculate
the entropy of this node.
So to calculate the entropy,
this is the formula.
All you have to do is you
have to substitute the,
you'll have to substitute
the value in this formula.
So P of slow we're substituting as 0.5.
Similarly, P of fast as 0.5.
Now when you substitute the value,
you'll get a answer of one.

Italian: 
 di esiti lenti nel nodo genitore, 
 e P veloce è la frazione dei risultati rapidi 
 nel nodo padre. 
 E la formula per calcolare P lento 
 è il numero di risultati lenti nel nodo genitore 
 diviso per il numero totale di risultati. 
 Quindi il numero di risultati lenti nel nodo genitore è due, 
 e il numero totale di risultati è quattro. 
 Abbiamo quattro osservazioni in totale. 
 Quindi è così che otteniamo P di lento come 0,5. 
 Allo stesso modo, per P di veloce, calcolerai 
 il numero di risultati rapidi 
 diviso per il numero totale di risultati. 
 Quindi di nuovo, due per quattro, otterrai 0,5. 
 La prossima cosa che farai è calcolare 
 l'entropia di questo nodo. 
 Quindi per calcolare l'entropia, questa è la formula. 
 Tutto quello che devi fare è sostituire il, 
 dovrai sostituire il valore in questa formula. 
 Quindi P di lento stiamo sostituendo come 0,5. 
 Allo stesso modo, P veloce come 0,5. 
 Ora, quando sostituisci il valore, 
 riceverai una risposta di uno. 

Italian: 
 Quindi l'entropia del tuo nodo genitore è una. 
 Quindi, dopo aver calcolato l'entropia del nodo genitore, 
 calcoleremo il guadagno di informazioni del nodo figlio. 
 Ora ragazzi, ricordatelo se le informazioni guadagnano 
 della variabile del tipo di strada è maggiore del guadagno di informazioni 
 di tutte le altre variabili predittive, 
 solo allora il nodo radice può essere diviso utilizzando 
 la variabile del tipo di strada. 
 Quindi, per calcolare il guadagno di informazioni della variabile del tipo di strada, 
 dobbiamo prima dividere il nodo radice 
 cantando la variabile del tipo di strada. 
 Lo stiamo facendo solo per controllare 
 se il tipo di strada è variabile 
 ci fornisce il massimo delle informazioni su un dato. 
 Ok, quindi se noti che il tipo di strada ha due risultati, 
 ha due valori, ripido o piatto. 
 Ora torna al nostro set di dati. 
 Quindi ecco quello che puoi notare è 
 ogni volta che il tipo di strada è ripido, 
 quindi prima quello che faremo è controllare 
 il valore della velocità che otteniamo 
 quando il tipo di strada è ripido. 
 Quindi, prima, osservazione. 

English: 
So the entropy of your parent node is one.
So after calculating the
entropy of the parent node,
we'll calculate the information
gain of the child node.
Now guys, remember that
if the information gain
of the road type variable is
great than the information gain
of all the other predictor variables,
only then the root node
can be split by using
the road type variable.
So, to calculate the information
gain of road type variable,
we first need to split the root node
by sing the road type variable.
We're just doing this in order to check
if the road type variable
is giving us maximum
information about a data.
Okay, so if you notice that
road type has two outcomes,
it has two values, either steep or flat.
Now go back to our data set.
So here what you can notice is
whenever the road type is steep,
so first what we'll do is we'll check
the value of speed that we get
when the road type is steep.
So, first, observation.

Italian: 
 Vedi che ogni volta che il tipo di strada è ripido, 
 stai diventando una velocità lenta. 
 Allo stesso modo, nella seconda osservazione, 
 quando il tipo di strada è ripido, 
 otterrai di nuovo un valore di slow. 
 Se il tipo di strada è pianeggiante, otterrai un'osservazione veloce. 
 E ancora, se è ripido, ha valore veloce. 
 Quindi per tre valori ripidi, 
 abbiamo lento, lento e veloce. 
 E quando il tipo di strada è piatto, 
 otterremo un output di fast. 
 Questo è esattamente quello che ho fatto in questo albero decisionale. 
 Quindi, ogni volta che il tipo di strada è ripido, 
 diventerai lento, lento o veloce. 
 E ogni volta che il tipo di strada è piatto, 
 sarai veloce. 
 Ora l'entropia del lato destro è zero. 
 L'entropia non è altro che l'incertezza. 
 Non c'è incertezza qui. 
 Perché non appena vedi che il tipo di strada è piatto, 
 la tua produzione è veloce. 
 Quindi non c'è incertezza. 
 Ma quando il tipo di strada è ripido, 
 puoi ottenere uno qualsiasi dei seguenti risultati, 
 o la tua velocità sarà lenta 
 oppure può essere veloce. 

English: 
You see that whenever
the road type is steep,
you're getting a speed of slow.
Similarly, in the second observation,
when the road type is steep,
you'll get a value of slow again.
If the road type is flat, you'll
get an observation of fast.
And again, if it is steep,
there is a value of fast.
So for three steep values,
we have slow, slow, and fast.
And when the road type is flat,
we'll get an output of fast.
That's exactly what I've
done in this decision tree.
So whenever the road type is steep,
you'll get slow, slow or fast.
And whenever the road type is flat,
you'll get fast.
Now the entropy of the
right-hand side is zero.
Entropy is nothing but the uncertainty.
There's no uncertainty over here.
Because as soon as you see
that the road type is flat,
your output is fast.
So there's no uncertainty.
But when the road type is steep,
you can have any one of
the following outcomes,
either your speed will be slow
or it can be fast.

English: 
So you'll start by calculating the entropy
of both RHS and LHS of the decision tree.
So the entropy for the right
side child node will be zero,
because there's no uncertainty here.
Immediately, if you see
that the road type is flat,
your speed of the car will be fast.
Okay, so there's no uncertainty here,
and therefore your entropy becomes zero.
Now entropy for the left-hand side
is we'll again have to calculate
the fraction of P slow and
the fraction of P fast.
So out of three observations,
in two observations we have slow.
That's why we have two by three over here.
Similarly for P fast,
we have one P fast
divided by the total number of
observation which are three.
So out of these three, we
have two slows and one fast.
When you calculate P slow and P fast,
you'll get these two values.
And then when you substitute
the entropy in this formula,
you'll get the entropy as 0.9
for the road type variable.
I hope you all are understanding this.
I'll go through this again.
So, basically, here we are calculating

Italian: 
 Quindi inizierai calcolando l'entropia 
 sia di RHS che di LHS dell'albero decisionale. 
 Quindi l'entropia per il nodo figlio sul lato destro sarà zero, 
 perché non c'è incertezza qui. 
 Immediatamente, se vedi che il tipo di strada è pianeggiante, 
 la tua velocità della macchina sarà veloce. 
 Ok, quindi non c'è incertezza qui, 
 e quindi la tua entropia diventa zero. 
 Ora entropia per il lato sinistro 
 è che dovremo di nuovo calcolare 
 la frazione di P lenta e la frazione di P veloce. 
 Quindi su tre osservazioni, 
 in due osservazioni abbiamo lento. 
 Ecco perché abbiamo due per tre qui. 
 Allo stesso modo per P veloce, 
 abbiamo una P veloce 
 diviso per il numero totale di osservazioni che sono tre. 
 Quindi di questi tre, abbiamo due rallentamenti e uno veloce. 
 Quando calcoli P lento e P veloce, 
 otterrai questi due valori. 
 E poi quando sostituisci l'entropia in questa formula, 
 otterrai l'entropia come 0.9 per la variabile del tipo di strada. 
 Spero che lo capiate tutti. 
 Lo rivedrò di nuovo. 
 Quindi, fondamentalmente, qui stiamo calcolando 

Italian: 
 il guadagno di informazioni e l'entropia per la variabile del tipo di strada. 
 Ogni volta che consideri il tipo di strada variabile, 
 ci sono due valori, ripido e piatto. 
 E ogni volta che il valore per il tipo di strada è ripido, 
 otterrai uno qualsiasi di questi tre risultati, 
 o diventerai lento, lento o veloce. 
 E quando il tipo di strada è piatto, 
 il tuo risultato sarà veloce. 
 Ora perché non c'è incertezza 
 ogni volta che il tipo di strada è pianeggiante, 
 otterrai sempre un risultato veloce. 
 Ciò significa che l'entropia qui è zero, 
 oppure il valore di incertezza qui è zero. 
 Ma qui c'è molta incertezza. 
 Quindi ogni volta che il tuo tipo di strada è ripido, 
 l'output può essere lento o veloce. 
 Quindi, finalmente, ottieni Python come 0.9. 
 Quindi, al fine di calcolare il guadagno di informazioni 
 della variabile del tipo di strada. 
 Devi calcolare la media ponderata. 
 Ti dico perché 
 Per calcolare il guadagno di informazioni, 
 devi conoscere l'entropia del genitore, 
 che calcoliamo come uno, 
 meno la media ponderata nell'entropia 
 dei bambini. 
 Va bene. 

English: 
the information gain and
entropy for road type variable.
Whenever you consider road type variable,
there are two values, steep and flat.
And whenever the value
for road type is steep,
you'll get anyone of these three outcomes,
either you'll get slow, slow, or fast.
And when the road type is flat,
your outcome will be fast.
Now because there is no uncertainty
whenever the road type is flat,
you'll always get an outcome of fast.
This means that the entropy here is zero,
or the uncertainty value here is zero.
But here, there is a lot of uncertainty.
So whenever your road type is steep,
your output can either be
slow or it can be fast.
So, finally, you get the Python as 0.9.
So in order to calculate
the information gain
of the road type variable.
You need to calculate
the weighted average.
I'll tell you why.
In order to calculate
the information gain,
you need to know the
entropy of the parent,
which we calculate as one,
minus the weighted
average into the entropy
of the children.
Okay.

Italian: 
 Quindi per questa formula, devi calcolare 
 tutti questi valori. 
 Quindi, prima di tutto, devi calcolare l'entropia 
 della media ponderata. 
 Ora il numero totale di risultati nel nodo padre 
 abbiamo visto che erano quattro. 
 Il numero totale di risultati 
 nel nodo figlio sinistro erano tre. 
 E il numero totale di risultati nel nodo figlio destro 
 era uno. 
 Corretta? 
 Per verificarlo con te, 
 il numero totale di risultati nel nodo padre sono quattro. 
 Uno, due, tre e quattro. 
 Venendo al nodo figlio, che è il tipo di strada, 
 il numero totale di risultati sul lato destro 
 del nodo figlio è uno. 
 E il numero totale di risultati 
 sul lato sinistro del nodo figlio è tre. 
 È esattamente quello che ho scritto qui. 
 Va bene, spero che abbiate capito tutti questi tre valori. 
 Dopodiché, tutto ciò che devi fare è 
 è necessario sostituire questi valori in questa formula. 
 Quindi quando lo fai, otterrai 
 l'entropia dei bambini con media ponderata 
 sarà intorno a 0,675. 
 Ora basta sostituire il valore in questa formula. 

English: 
So for this formula, you need to calculate
all of these values.
So, first of all, you need
to calculate the entropy
of the weighted average.
Now the total number of
outcomes in the parent node
we saw were four.
The total number of outcomes
in the left child node were three.
And the total number of
outcomes in the right child node
was one.
Correct?
In order to verify this with you,
the total number of outcomes
in the parent node are four.
One, two, three, and four.
Coming to the child node,
which is the road type,
the total number of outcomes
on the right-hand side
of the child node is one.
And the total number of outcomes
on the left-hand side of
the child node is three.
That's exactly what
I've written over here.
Alright, I hope you all
understood these three values.
After that, all you have to do is
you have to substitute these
values in this formula.
So when you do that, you'll get
the entropy of the children
with weighted average
will be around 0.675.
Now just substitute the
value in this formula.

Italian: 
 Quindi se calcoli il guadagno di informazioni 
 della variabile del tipo di strada, 
 otterrai un valore di 0,325. 
 Ora usando lo stesso metodo, 
 calcolerai il guadagno di informazioni 
 per ciascuna variabile predittore, 
 per il tipo di strada, per l'ostruzione e per il limite di velocità. 
 Ora quando segui lo stesso metodo 
 e calcoli il guadagno di informazioni, 
 otterrai questi valori. 
 Ora che cosa guadagnano queste informazioni per il tipo di strada 
 uguale a 0,325 denotiamo? 
 Ora il valore 0,325 per il tipo di strada lo indica 
 stiamo ottenendo pochissimo guadagno di informazioni 
 da questa variabile del tipo di strada. 
 E per l'ostruzione, abbiamo letteralmente 
 guadagno di informazioni pari a zero. 
 Allo stesso modo, le informazioni ottenute per il limite di velocità sono una. 
 Questo è il valore più alto che abbiamo per il guadagno di informazioni. 
 Ciò significa che dovremo utilizzare la variabile del limite di velocità 
 al nostro nodo radice per dividere il set di dati. 
 Quindi ragazzi, non confondetevi con qualsiasi variabile 
 ti dà il massimo guadagno di informazioni. 
 Quella variabile deve essere scelta nel nodo radice. 

English: 
So if you calculate the information gain
of the road type variable,
you'll get a value of 0.325.
Now by using the same method,
you're going to calculate
the information gain
for each of the predictor variable,
for road type, for obstruction,
and for speed limit.
Now when you follow the same method
and you calculate the information gain,
you'll get these values.
Now what does this
information gain for road type
equal to 0.325 denote?
Now the value 0.325 for
road type denotes that
we're getting very little information gain
from this road type variable.
And for obstruction, we literally have
information gain of zero.
Similarly, information gained
for speed limit is one.
This is the highest value
we've got for information gain.
This means that we'll have to
use the speed limit variable
at our root node in order
to split the data set.
So guys, don't get
confused whichever variable
gives you the maximum information gain.
That variable has to be
chosen at the root node.

English: 
So that's why we have the
root node as speed limit.
So if you've maintained the speed limit,
then you're going to go slow.
But if you haven't
maintained the speed limit,
then the speed of your
car is going to be fast.
Your entropy is literally zero,
and your information is one,
meaning that you can use this
variable at your root node
in order to split the data set,
because speed limit gives you
the maximum information gain.
So guys, I hope this use
case is clear to all of you.
To sum everything up,
I'll just repeat the entire
thing to you all once more.
So basically, here you were
given a problem statement
in order to create a decision tree
that classifies the speed of
a car as either slow or fast.
So you were given three
predictor variables
and this was your output variable.
Information gained in entropy
are basically two measures
that are used to decide which variable
will be assigned to the root
node of a decision tree.
Okay.
So guys, as soon as you
look at the data set,
if you compare these two columns,

Italian: 
 Ecco perché abbiamo il nodo radice come limite di velocità. 
 Quindi, se hai mantenuto il limite di velocità, 
 allora andrai piano. 
 Ma se non hai mantenuto il limite di velocità, 
 allora la velocità della tua macchina sarà veloce. 
 La tua entropia è letteralmente zero, 
 e le tue informazioni sono una 
 significa che puoi usare questa variabile nel tuo nodo radice 
 per dividere il set di dati, 
 perché il limite di velocità ti dà il massimo guadagno di informazioni. 
 Quindi ragazzi, spero che questo caso d'uso sia chiaro a tutti voi. 
 Per riassumere tutto, 
 Ripeterò l'intera cosa a tutti voi ancora una volta. 
 Quindi, fondamentalmente, qui ti è stata data una dichiarazione del problema 
 per creare un albero decisionale 
 che classifica la velocità di un'auto come lenta o veloce. 
 Quindi ti sono state date tre variabili predittive 
 e questa era la tua variabile di output. 
 Le informazioni ottenute con l'entropia sono fondamentalmente due misure 
 che vengono utilizzati per decidere quale variabile 
 verrà assegnato al nodo radice di un albero decisionale. 
 Va bene. 
 Quindi ragazzi, non appena guardate il set di dati, 
 se confronti queste due colonne, 

English: 
that is speed limit and speed,
you'll get an output easily.
Meaning that if you're
maintaining speed limit,
you're going to go slow.
But if you aren't maintaining speed limit,
you're going to a fast.
So here itself we can
understand the speed limit
has no uncertainty.
So every time you've
maintained your speed limit,
you will be going slow,
and every time your
outside or speed limit,
you will be going fast.
It's as simple as that.
So how did you start?
So you started by calculating
the entropy of the parent node.
You calculated the entropy
of the parent node,
which came down to one.
Okay.
After that, you calculated
the information gain
of each of the child nodes.
In order to calculate
the information gain of the child node,
you stat by calculating the entropy
of the right-hand side
and the left-hand side
of the decision tree.
Okay.
Then you calculate the entropy
along with the weighted average.
You substitute these values in
the information gain formula,
and you get the information gain

Italian: 
 cioè il limite di velocità e la velocità, 
 otterrai facilmente un output. 
 Significa che se stai mantenendo il limite di velocità, 
 andrai piano. 
 Ma se non stai mantenendo il limite di velocità, 
 stai andando a un digiuno. 
 Quindi qui stesso possiamo capire il limite di velocità 
 non ha incertezze. 
 Quindi ogni volta che hai mantenuto il tuo limite di velocità, 
 andrai piano, 
 e ogni volta che sei fuori o il limite di velocità, 
 andrai veloce. 
 E 'così semplice. 
 Allora come hai iniziato? 
 Quindi hai iniziato calcolando 
 l'entropia del nodo genitore. 
 Hai calcolato l'entropia del nodo genitore, 
 che si riduceva a uno. 
 Va bene. 
 Successivamente, hai calcolato il guadagno di informazioni 
 di ciascuno dei nodi figlio. 
 Per calcolare 
 il guadagno di informazioni del nodo figlio, 
 si stat calcolando l'entropia 
 del lato destro e del lato sinistro 
 dell'albero decisionale. 
 Va bene. 
 Quindi calcoli l'entropia 
 insieme alla media ponderata. 
 Sostituisci questi valori nella formula del guadagno di informazioni, 
 e ottieni il guadagno di informazioni 

Italian: 
 per ciascuna delle variabili predittore. 
 Quindi, dopo aver ottenuto il guadagno di informazioni 
 di ciascuna delle variabili predittive, 
 controlli quale variabile ti dà 
 il massimo guadagno di informazioni, 
 e tu assegni quella variabile al tuo nodo radice. 
 E 'così semplice. 
 Quindi ragazzi, era tutta una questione di alberi decisionali. 
 Ora diamo un'occhiata al nostro prossimo algoritmo di classificazione 
 che è foresta casuale. 
 Prima di tutto, cos'è una foresta casuale? 
 La foresta casuale fondamentalmente costruisce più alberi decisionali 
 e li incolla insieme per ottenere un'immagine più precisa 
 e previsione stabile. 
 Ora se hai già alberi decisionali 
 e la foresta casuale non è altro che 
 una raccolta di alberi decisionali, 
 perché dobbiamo usare una foresta casuale 
 quando abbiamo già albero decisionale? 
 Esistono tre ragioni principali per cui viene utilizzata la foresta casuale. 
 Ora anche se gli alberi decisionali sono convenienti 
 e facilmente implementabile, 
 non sono accurati come la foresta casuale. 
 Gli alberi decisionali funzionano in modo molto efficace 
 con i dati di allenamento, 
 backup non sono flessibili 

English: 
for each of the predictor variables.
So after you get the information gain
of each of the predictor variables,
you check which variable gives you
the maximum information gain,
and you assign that
variable to your root node.
It's as simple as that.
So guys, that was all
about decision trees.
Now let's look at our next
classification algorithm
which is random forest.
Now first of all, what is a random forest?
Random forest basically
builds multiple decision trees
and glues them together
to get a more accurate
and stable prediction.
Now if already have decision trees
and random forest is nothing but
a collection of decision tree,
why do we have to use a random forest
when we already have decision tree?
There are three main reasons
why random forest is used.
Now even though decision
trees are convenient
and easily implemented,
they are not as accurate as random forest.
Decision trees work very effectively
with the training data,
backup they're not flexible

English: 
when it comes to classifying anew sample.
Now this happens because of
something known as overfitting.
Now overfitting is a problem
that is seen with decision trees.
It's something that commonly occurs
when we use decision trees.
Now overfitting occurs
when a model studies
a training data to such an extent
that it negatively influences
the performance of the
model on a new data.
Now this means that the disturbance
in the training data is recorded,
and it is learned as concept by the model.
If there's any disturbance
or any thought of noise
in the training data
or any error in the training data,
that is also studied by the model.
The problem here is that these concepts
do not apply to the testing data,
and it negatively impacts
the model's ability
to classify new data.
So to sum it up,
overfitting occurs whenever your model
learns the training data,
along with all the disturbance
in the training data.
So it basically memorized
the training data.

Italian: 
 quando si tratta di classificare un nuovo campione. 
 Ora questo accade a causa di qualcosa noto come overfitting. 
 Ora l'overfitting è un problema 
 che si vede con gli alberi decisionali. 
 È qualcosa che accade comunemente 
 quando usiamo alberi decisionali. 
 Ora l'overfitting si verifica quando un modello studia 
 dati di addestramento in tale misura 
 che influisce negativamente 
 le prestazioni del modello su un nuovo dato. 
 Ora questo significa che il disturbo 
 nei dati di allenamento vengono registrati, 
 e viene appreso come concetto dal modello. 
 Se c'è qualche disturbo 
 o qualsiasi pensiero di rumore nei dati di allenamento 
 o qualsiasi errore nei dati di addestramento, 
 anche questo è studiato dal modello. 
 Il problema qui è che questi concetti 
 non si applicano ai dati di prova, 
 e ha un impatto negativo sull'abilità del modello 
 per classificare nuovi dati. 
 Quindi, per riassumere, 
 l'overfitting si verifica ogni volta che il tuo modello 
 apprende i dati di allenamento, 
 insieme a tutti i disturbi nei dati di allenamento. 
 Quindi ha sostanzialmente memorizzato i dati di allenamento. 

English: 
And whenever a new data
will be given to your model,
it will not predict the
outcome very accurately.
now this is a problem
seen in decision trees.
Okay.
But in random forest, there's
something known as bagging.
Now the basic idea behind bagging is
to reduce the variations
and the predictions
by combining the result
of multiple decision trees
on different samples of the data set.
So your data set will be
divided into different samples,
and you'll be building a decision tree
on each of these samples.
This way, each decision
tree will be studying
one subset of your data.
So this way over fitting will get reduced
because one decision tree is not studying
the entire data set.
Now let's focus on random forest.
Now in order to understand random forest,
we look at a small example.
We can consider this data set.
In this data, we have
four predictor variables.
We have blood flow, blocked arteries,
chest pain, and weight.
Now these variables are used to predict

Italian: 
 E ogni volta che verranno forniti nuovi dati al tuo modello, 
 non prevede il risultato in modo molto accurato. 
 ora questo è un problema visto negli alberi decisionali. 
 Va bene. 
 Ma nella foresta casuale, c'è qualcosa noto come insaccamento. 
 Ora l'idea di base dietro l'insacco è 
 ridurre le variazioni e le previsioni 
 combinando il risultato di più alberi decisionali 
 su diversi campioni del set di dati. 
 Quindi il tuo set di dati sarà diviso in diversi campioni, 
 e costruirai un albero decisionale 
 su ciascuno di questi campioni. 
 In questo modo, ogni albero decisionale verrà studiato 
 un sottoinsieme dei tuoi dati. 
 Quindi in questo modo l'over fitting verrà ridotto 
 perché un albero decisionale non sta studiando 
 l'intero set di dati. 
 Ora concentriamoci sulla foresta casuale. 
 Ora, per capire la foresta casuale, 
 guardiamo un piccolo esempio. 
 Possiamo considerare questo set di dati. 
 In questi dati, abbiamo quattro variabili predittive. 
 Abbiamo flusso sanguigno, arterie bloccate, 
 dolore al petto e peso. 
 Ora queste variabili vengono utilizzate per prevedere 

Italian: 
 se una persona ha o meno una malattia cardiaca. 
 Quindi useremo questo set di dati 
 per creare una foresta casuale che prevede 
 se una persona ha una malattia cardiaca o no. 
 Ora il primo passo nella creazione di una foresta casuale 
 è che crei un set di dati bootstrap. 
 Ora nel bootstrap, tutto quello che devi fare 
 devi selezionare a caso i campioni 
 dal set di dati originale. 
 Va bene. 
 E un punto da notare è che puoi selezionare lo stesso campione 
 più di una volta. 
 Quindi, se guardi il set di dati originale, 
 abbiamo un anormale, normale, normale e anormale. 
 Guarda la sezione del flusso sanguigno. 
 Ora qui ho selezionato a caso campioni, 
 normale, anormale, 
 e ho selezionato un campione due volte. 
 Puoi farlo in un set di dati bootstrap. 
 Ora tutto quello che ho fatto qui è 
 Ho creato un set di dati bootstrap. 
 Il boot strapping non è altro che un metodo di stima 
 utilizzato per fare previsioni su un dato 
 ricampionando i dati. 
 Questo è un set di dati bootstrap. 
 Anche se sembra molto semplice, 
 nei problemi del mondo reale, 

English: 
whether or not a person
has a heart disease.
So we're going to use this data set
to create a random forest that predicts
if a person has a heart disease or not.
Now the first step in
creating a random forest
is that you create a bootstrap data set.
Now in bootstrapping, all you have to do
is you have to randomly select samples
from your original data set.
Okay.
And a point to note is that
you can select the same sample
more than once.
So if you look at the original data set,
we have a abnormal, normal,
normal, and abnormal.
Look at the blood flow section.
Now here I've randomly selected samples,
normal, abnormal,
and I've selected one sample twice.
You can do this in a bootstrap data set.
Now all I did here is
I created a bootstrap data set.
Boot strapping is nothing
but an estimation method
used to make predictions on a data
by re-sampling the data.
This is a bootstrap data set.
Now even though this seems very simple,
in real world problems,

Italian: 
 non avrai mai un set di dati così piccolo. 
 Ok, quindi bootstrap 
 in realtà è un po 'più complesso di questo. 
 Di solito nei problemi del mondo reale, 
 avrai un enorme set di dati, 
 e il bootstrap di quel set di dati è effettivamente 
 un problema piuttosto complesso. 
 Sono qui perché ti sto facendo capire 
 come funziona la foresta casuale, 
 ecco perché ho considerato un piccolo set di dati. 
 Ora utilizzerai il set di dati bootstrap 
 che hai creato, 
 e costruirai alberi decisionali da esso. 
 Ora un'altra cosa da notare nella foresta casuale è 
 non utilizzerai l'intero set di dati. 
 Ok, quindi utilizzerai solo poche altre variabili 
 in ogni nodo. 
 Quindi, ad esempio, considereremo solo due variabili 
 ad ogni passaggio. 
 Quindi, se inizi dal nodo radice qui, 
 selezioneremo casualmente due variabili 
 come candidati per il nodo radice. 
 Ok, diciamo che abbiamo selezionato il flusso sanguigno 
 e arterie bloccate. 
 Di queste due variabili dobbiamo selezionare la variabile 
 che separa al meglio il campione. 
 Va bene. 
 Quindi, per il bene di questo esempio, 
 diciamo che le arterie bloccate 
 è il predittore più significativo, 

English: 
you'll never get such small data set.
Okay, so bootstrapping
is actually a little
more complex than this.
Usually in real world problems,
you'll have a huge data set,
and bootstrapping that
data set is actually
a pretty complex problem.
I'm here because I'm making you understand
how random forest works,
so that's why I've
considered a small data set.
Now you're going to use
the bootstrap data set
that you created,
and you're going to build
decision trees from it.
Now one more thing to
note in random forest is
you will not be using
your entire data set.
Okay, so you'll only be
using few other variables
at each node.
So, for example, we'll
only consider two variables
at each step.
So if you begin at the root node here,
we will randomly select two variables
as candidates for the root node.
Okay, let's say that
we selected blood flow
and blocked arteries.
Out of these two variables we
have to select the variable
that best separates the sample.
Okay.
So for the sake of this example,
let's say that blocked arteries
is the most significant predictor,

Italian: 
 ed è per questo che lo assegneremo al nodo radice. 
 Ora il nostro prossimo passo è ripetere lo stesso processo 
 per ciascuno di questi prossimi nodi di branch. 
 Qui selezioneremo di nuovo due variabili a caso 
 come candidati per ciascuno di questi nodi di diramazione, 
 e quindi scegli una variabile 
 quello separa meglio i campioni, giusto? 
 Quindi lasciami ripetere l'intero processo. 
 Quindi sai che inizi a creare un albero decisionale 
 selezionando il nodo radice. 
 Nella foresta casuale, selezionerai casualmente 
 un paio di variabili per ogni nodo, 
 e poi calcolerai quale variabile 
 divide al meglio i dati in quel nodo. 
 Quindi per ogni nodo, selezioneremo casualmente 
 due o tre variabili. 
 E di queste due, tre variabili, 
 vedremo quale variabile separa meglio i dati. 
 Ok, quindi ad ogni nodo 
 lo faremo perché il calcolo delle informazioni guadagna un'entropia. 
 Fondamentalmente, questo è ciò che intendo. 
 Ad ogni nodo, calcolerai il guadagno di informazioni 
 ed entropia di due o tre variabili, 
 e vedrai quale variabile 
 ha il più alto guadagno di informazioni, 
 e continuerai a scendere verso il basso. 
 È così che crei un albero decisionale. 

English: 
and that's why we'll
assign it to the root node.
Now our next step is to
repeat the same process
for each of these upcoming branch nodes.
Here we'll again select
two variables at random
as candidates for each
of these branch nodes,
and then choose a variable
that best separates the samples, right?
So let me just repeat this entire process.
So you know that you start
creating a decision tree
by selecting the root node.
In random forest, you'll randomly select
a couple of variables for each node,
and then you'll calculate which variable
best splits the data at that node.
So for each node, we'll randomly select
two or three variables.
And out of those two, three variables,
we'll see which variable
best separates the data.
Okay, so at each node,
we'll because calculating
information gain an entropy.
Basically, that's what I mean.
At every node, you'll
calculate information gain
and entropy of two or three variables,
and you'll see which variable
has the highest information gain,
and you'll keep descending downwards.
That's how you create a decision tree.

Italian: 
 Quindi abbiamo appena creato il nostro primo albero decisionale. 
 Ora quello che fai è tornare al passaggio uno, 
 e ripeterai l'intero processo. 
 Quindi ogni albero decisionale predice la classe di output 
 in base alle variabili predittive 
 che hai assegnato a ciascun albero decisionale. 
 Ora diciamo per questo albero decisionale, 
 hai assegnato il flusso sanguigno. 
 Qui abbiamo bloccato le arterie al nodo della radice. 
 Qui potremmo avere flusso sanguigno al nodo radice e così via. 
 Quindi il tuo output dipenderà da quale variabile predittore 
 si trova nel nodo radice. 
 Quindi ogni albero decisionale predice la classe di output 
 in base alla variabile predittore 
 che hai assegnato in quell'albero. 
 Ora quello che fai è tornare al passaggio uno, 
 creerai un nuovo set di dati bootstrap, 
 e poi di nuovo costruirai un nuovo albero decisionale. 
 E per quell'albero decisionale, 
 considererai solo un sottoinsieme di variabili, 
 e sceglierai la migliore variabile predittiva 
 calcolando il guadagno di informazioni. 
 Quindi continuerai a ripetere questo processo. 
 Quindi continua a ripetere il passaggio due e il passaggio uno. 
 Va bene. 
 E continuerai a creare più alberi decisionali. 
 Va bene. 

English: 
So we just created our
first decision tree.
Now what you do is you'll
go back to step one,
and you'll repeat the entire process.
So each decision tree will
predict the output class
based on the predictor variables
that you've assigned
to each decision tree.
Now let's say for this decision tree,
you've assigned blood flow.
Here we have blocked
arteries at the root node.
Here we might have blood flow
at the root node and so on.
So your output will depend
on which predictor variable
is at the root node.
So each decision tree will
predict the output class
based on the predictor variable
that you assigned in that tree.
Now what you do is you'll
go back to step one,
you'll create a new bootstrap data set,
and then again you'll
build a new decision tree.
And for that decision tree,
you'll consider only
a subset of variables,
and you'll choose the
best predictor variable
by calculating the information gain.
So you will keep repeating this process.
So you just keep repeating
step two and step one.
Okay.
And you'll keep creating
multiple decision trees.
Okay.

Italian: 
 Quindi avere una varietà di alberi decisionali in una foresta casuale 
 è ciò che lo rende più efficace di 
 un albero decisionale individuale. 
 Quindi, invece di avere un albero decisionale individuale, 
 che viene creato utilizzando tutte le funzionalità, 
 puoi costruire una foresta casuale 
 che utilizza più alberi decisionali 
 in cui ogni albero decisionale ha un insieme casuale 
 di variabili predittive. 
 Ora il passaggio numero quattro prevede il risultato 
 di un nuovo punto dati. 
 Quindi ora che hai creato una foresta casuale, 
 vediamo come può essere utilizzato 
 per prevedere se un nuovo paziente ha una malattia cardiaca o meno. 
 Ok, ora questo diagramma ha fondamentalmente dei dati 
 sul nuovo paziente. 
 Ok, questi sono i dati sul nuovo paziente. 
 Non ha le arterie bloccate. 
 Ha dolore al petto e il suo peso è di circa 185 kg. 
 Ora tutto ciò che devi fare è eseguire questi dati 
 in ciascuno degli alberi decisionali che hai preso. 
 Quindi, il primo albero decisionale lo mostra 
 sì, questa persona ha una malattia cardiaca. 

English: 
So having a variety of decision
trees in a random forest
is what makes it more effective than
an individual decision tree.
So instead of having an
individual decision tree,
which is created using all the features,
you can build a random forest
that uses multiple decision trees
wherein each decision
tree has a random set
of predictor variables.
Now step number four is
predicting the outcome
of a new data point.
So now that you've
created a random forest,
let's see how it can be used
to predict whether a new patient
has a heart disease or not.
Okay, now this diagram
basically has a data
about the new patient.
Okay, this is the data
about the new patient.
He doesn't have blocked arteries.
He has chest pain, and his
weight is around 185 kgs.
Now all you have to do is
you have to run this data
down each of the decision
trees that you made.
So, the first decision tree shows that
yes, this person has heart disease.

Italian: 
 Allo stesso modo, eseguirai le informazioni di questo nuovo paziente 
 attraverso ogni albero decisionale che hai creato. 
 Quindi, a seconda di quanti voti ottieni per sì e no, 
 classificherai quel paziente 
 come avere una malattia cardiaca o no. 
 Tutto quello che devi fare è correre 
 le informazioni del nuovo paziente 
 attraverso tutti gli alberi decisionali che hai creato 
 nel passaggio precedente, 
 e il risultato finale si basa sul numero di voti 
 ogni classe sta ottenendo. 
 Ok, diciamo che tre alberi decisionali 
 ha detto che sì, il paziente ha una malattia cardiaca, 
 e un albero decisionale ha detto che no, non ha. 
 Quindi questo significa che ovviamente classificherai 
 il paziente ha una malattia cardiaca 
 perché tre di loro hanno votato sì. 
 Si basa sulla maggioranza. 
 Quindi ragazzi, spero che il concetto alla base della foresta casuale 
 è comprensibile. 
 Ora il prossimo passo è valutare 
 l'efficienza del modello. 
 Ora prima, quando abbiamo creato il set di dati bootstrap 
 abbiamo tralasciato un campione di ingresso. 
 Questo è il campione di ingresso che abbiamo tralasciato, 

English: 
Similarly, you'll run the
information of this new patient
through every decision
tree that you created.
Then depending on how many
votes you get for yes and no,
you'll classify that patient
as either having heart disease or not.
All you have to do is you have to run
the information of the new patient
through all the decision
trees that you created
in the previous step,
and the final output is
based on the number of votes
each of the class is getting.
Okay, let's say that three decision trees
said that yes the patient
has heart disease,
and one decision tree said
that no it doesn't have.
So this means you will obviously classify
the patient as having a heart disease
because three of them voted for yes.
It's based on majority.
So guys, I hope the concept
behind random forest
is understandable.
Now the next step is you will evaluate
the efficiency of the model.
Now earlier when we created
the bootstrap data set
we left out one entry sample.
This is the entry sample we left out,

English: 
because we repeated one sample twice.
If you'll remember in
the bootstrap data set,
here we repeated an entry twice,
and we missed out on one of the entries.
We missed out on one of the entries.
So what we're gonna do is...
So for evaluating the model,
we'll be using the data
entry that we missed out on.
Now in a real world problem,
about 1/3 of the original
data set is not included
in the bootstrap dataset.
Because there's a huge amount of data
in a real world problem,
so 1/3 of the original data set
is not included in the bootstrap data set.
So guys, the sample data set
which is not there in
your bootstrap data set
is known as out-of-bag data set,
because basically this is
our out-of-bag data set.
Now the out-of-bag data set
is used to check the
accuracy of the model.
Because the model was not created
by using the out-of-bag data set,
it will give us a good understanding
of whether the model is effective or not.
Now the out-of-bag data set
is nothing but your testing data set.

Italian: 
 perché abbiamo ripetuto due volte un campione. 
 Se ricorderai nel set di dati bootstrap, 
 qui abbiamo ripetuto due volte una voce, 
 e ci siamo persi una delle voci. 
 Abbiamo perso una delle voci. 
 Quindi quello che faremo è ... 
 Quindi, per valutare il modello, 
 useremo l'immissione dei dati che ci siamo persi. 
 Ora in un problema del mondo reale, 
 circa 1/3 del set di dati originale non è incluso 
 nel set di dati bootstrap. 
 Perché c'è un'enorme quantità di dati 
 in un problema del mondo reale, 
 quindi 1/3 del set di dati originale 
 non è incluso nel set di dati bootstrap. 
 Quindi ragazzi, il set di dati di esempio 
 che non è presente nel tuo set di dati bootstrap 
 è noto come set di dati out-of-bag, 
 perché fondamentalmente questo è il nostro set di dati out-of-bag. 
 Ora il set di dati out-of-bag 
 viene utilizzato per verificare la precisione del modello. 
 Perché il modello non è stato creato 
 utilizzando il set di dati out-of-bag, 
 ci darà una buona comprensione 
 dell'efficacia o meno del modello. 
 Ora il set di dati out-of-bag 
 non è altro che il tuo set di dati di test. 

English: 
Remember, in machine
learning, there's training
and testing data set.
So your out-of-bag data set
is nothing but your testing data set.
This is used to evaluate the
efficiency of your model.
So eventually, you can
measure the accuracy
of a random forest by the proportion
of out-of-bag samples that
are correctly classified,
because the out-of-bag data set
is used to evaluate the
efficiency of your model.
So you can calculate the accuracy
by understanding how many samples
or was this out-of-bag data set
correctly able to classify it.
So guys, that was an explanation about
how random forest works.
To give you an overview,
let me just run you through
all the steps that we took.
So basically, this was our data set,
and all we have to do
is we have to predict
whether a patient has
heart disease or not.
So, our first step was to
create a bootstrap data set.
A bootstrap data set is
nothing but randomly selected
observations from your original data set,

Italian: 
 Ricorda, nell'apprendimento automatico c'è la formazione 
 e testare il set di dati. 
 Quindi il tuo set di dati out-of-bag 
 non è altro che il tuo set di dati di test. 
 Viene utilizzato per valutare l'efficienza del modello. 
 Quindi, alla fine, puoi misurare la precisione 
 di una foresta casuale dalla proporzione 
 di campioni fuori borsa classificati correttamente, 
 perché il set di dati out-of-bag 
 viene utilizzato per valutare l'efficienza del tuo modello. 
 Quindi puoi calcolare la precisione 
 capendo quanti campioni 
 o era questo set di dati out-of-bag 
 in grado di classificarlo correttamente. 
 Quindi ragazzi, quella era una spiegazione 
 come funziona la foresta casuale. 
 Per darti una panoramica, 
 lascia che ti guidi attraverso tutti i passaggi che abbiamo intrapreso. 
 Quindi, in pratica, questo era il nostro set di dati, 
 e tutto ciò che dobbiamo fare è prevedere 
 se un paziente ha una malattia cardiaca o meno. 
 Quindi, il nostro primo passo è stato creare un set di dati bootstrap. 
 Un set di dati bootstrap non è altro che selezionato casualmente 
 osservazioni dal tuo set di dati originale, 

English: 
and you can also have duplicate values
in your bootstrap data set.
Okay.
The next step is you're going
to create a decision tree
by considering a random
set of predictor variables
for each decision tree.
Okay.
So, the third step is
you'll go back to step one,
create a bootstrap data set.
Again, create a decision tree.
So this iteration is
performed hundreds of times
until you are multiple decision trees.
Now that you've created a random forest,
you'll use this random forest
to predict the outcome.
So if you're given a new data point
and you have to classify it
into one of the two classes,
we'll just run this new information
through all the decision trees.
And you'll just take the majority
of the output that you're
getting from the decision trees
as your outcome.
Now in order to evaluate
the efficiency of the model,
you'll use the out of
the bag sample data set.
Now the out-of-bag sample
is basically the sample
that was not included in
your bootstrap data set,
but this sample is coming
from your original data set, guys.

Italian: 
 e puoi anche avere valori duplicati 
 nel tuo set di dati bootstrap. 
 Va bene. 
 Il prossimo passo è creare un albero decisionale 
 considerando un insieme casuale di variabili predittive 
 per ogni albero decisionale. 
 Va bene. 
 Quindi, il terzo passaggio è che tornerai al passaggio uno, 
 creare un set di dati bootstrap. 
 Di nuovo, crea un albero decisionale. 
 Quindi questa iterazione viene eseguita centinaia di volte 
 fino a quando non sei più alberi decisionali. 
 Ora che hai creato una foresta casuale, 
 utilizzerai questa foresta casuale per prevedere il risultato. 
 Quindi, se ti viene fornito un nuovo punto dati 
 e devi classificarlo 
 in una delle due classi, 
 eseguiremo solo queste nuove informazioni 
 attraverso tutti gli alberi decisionali. 
 E tu prendi solo la maggioranza 
 dell'output ottenuto dagli alberi decisionali 
 come risultato. 
 Ora per valutare l'efficienza del modello, 
 utilizzerai il set di dati di esempio fuori dagli schemi. 
 Ora il campione fuori borsa è fondamentalmente il campione 
 che non era incluso nel tuo set di dati bootstrap, 
 ma questo campione sta arrivando 
 dal tuo set di dati originale, ragazzi. 

Italian: 
 Questo non è qualcosa che crei a caso. 
 Questo set di dati era presente nel tuo set di dati originale, 
 ma semplicemente non è stato menzionato 
 nel tuo set di dati bootstrap. 
 Quindi utilizzerai il tuo campione fuori borsa 
 per calcolare la precisione 
 della tua foresta casuale. 
 Quindi la proporzione di campioni fuori borsa 
 che sono classificati correttamente ti daranno la precisione 
 del tuo modello. 
 Quindi questo è tutto per la foresta casuale. 
 Quindi ragazzi, parlerò di altro 
 algoritmi di classificazione con te, 
 e solo allora ti mostrerò una demo su 
 gli algoritmi di classificazione. 
 Ora il nostro prossimo algoritmo è qualcosa noto come Bayes ingenuo. 
 Naive Bayes è, ancora una volta, 
 un algoritmo di classificazione supervisionato, 
 che si basa sul teorema di Bayes. 
 Ora segue fondamentalmente il teorema di Bayes 
 un approccio probabilistico. 
 L'idea principale dietro l'ingenuo Bayes è questa 
 le variabili predittive in un modello di apprendimento automatico 
 sono indipendenti l'uno dall'altro, 
 il che significa che il risultato di un modello 

English: 
This is not something
that you randomly create.
This data set was there
in your original data set,
but it was just not mentioned
in your bootstrap data set.
So you'll use your out-of-bag sample
in order to calculate the accuracy
of your random forest.
So the proportion of out-of-bag samples
that are correctly classified
will give you the accuracy
of your model.
So that is all for random forest.
So guys, I'll discuss other
classification algorithms with you,
and only then I'll show you a demo on
the classification algorithms.
Now our next algorithm is
something known as naive Bayes.
Naive Bayes is, again,
a supervised classification algorithm,
which is based on the Bayes Theorem.
Now the Bayes Theorem basically follows
a probabilistic approach.
The main idea behind naive Bayes is that
the predictor variables in
a machine learning model
are independent of each other,
meaning that the outcome of a model

English: 
depends on a set of independent variables
that have nothing to do with each other.
Now a lot of you might
ask why is naive Bayes
called naive.
Now usually, when I tell
anybody why naive Bayes,
they keep asking me why is
naive Bayes called naive.
So in real world problems
predictor variables
aren't always independent of each other.
There is always some correlation
between the independent variables.
Now because naive Bayes
considers each predictor variable
to be independent of any
other variable in the model,
it is called naive.
This is an assumption
that naive Bayes states.
Now let's understand the math
behind the naive Bayes algorithm.
So like I mentioned, the
principle behind naive Bayes
is the Bayes Theorem,
which is also known as the Bayes Rule.
The Bayes Theorem is used to calculate
the conditional probability,
which is nothing but the
probability of an event occurring
based on information about
the events in the past.

Italian: 
 dipende da un insieme di variabili indipendenti 
 che non hanno niente a che fare l'uno con l'altro. 
 Molti di voi potrebbero chiedersi perché Bayes sia ingenuo 
 chiamato ingenuo. 
 Di solito, quando dico a qualcuno perché l'ingenuo Bayes, 
 continuano a chiedermi perché Bayes è ingenuo chiamato ingenuo. 
 Quindi nel mondo reale problemi predittori variabili 
 non sono sempre indipendenti l'uno dall'altro. 
 C'è sempre qualche correlazione 
 tra le variabili indipendenti. 
 Ora, perché l'ingenuo Bayes considera ogni variabile predittiva 
 essere indipendente da qualsiasi altra variabile nel modello, 
 si chiama ingenuo. 
 Questo è un presupposto che afferma l'ingenuo Bayes. 
 Ora capiamo la matematica 
 dietro l'ingenuo algoritmo di Bayes. 
 Quindi, come ho detto, il principio dietro l'ingenuo Bayes 
 è il teorema di Bayes, 
 nota anche come regola di Bayes. 
 Il teorema di Bayes viene utilizzato per il calcolo 
 la probabilità condizionale, 
 che non è altro che la probabilità che si verifichi un evento 
 sulla base delle informazioni sugli eventi passati. 

English: 
This is the mathematical
equation for the Bayes Theorem.
Now, in this equation, the LHS is nothing
but the conditional probability
of event A occurring,
given the event B.
P of A is nothing but
probability of event A occurring
P of B is probability of event B.
And PB of A is nothing but
the conditional probability
of event B occurring, given the event A.
Now let's try to understand
how naive Bayes works.
Now consider this data set of
around thousand 500 observations.
Okay, here we have the
following output classes.
We have either cat, parrot, or turtle.
These are our output classes,
and the predictor variables are
swim, wings, green color, and sharp teeth.
Okay.
So, basically, your type
is your output variable,
and swim, wings, green, and sharp teeth
are your predictor variables.
Your output variables has three classes,
cat, parrot, and turtle.
Okay.

Italian: 
 Questa è l'equazione matematica per il teorema di Bayes. 
 Ora, in questa equazione, l'LHS non è niente 
 ma la probabilità condizionale che si verifichi l'evento A, 
 visto l'evento B. 
 P di A non è altro che la probabilità che si verifichi l'evento A. 
 P di B è la probabilità dell'evento B. 
 E PB di A non è altro che la probabilità condizionata 
 dell'evento B, dato l'evento A. 
 Ora proviamo a capire come funziona l'ingenuo Bayes. 
 Consideriamo ora questo set di dati di 
 circa mille 500 osservazioni. 
 Ok, qui abbiamo le seguenti classi di output. 
 Abbiamo un gatto, un pappagallo o una tartaruga. 
 Queste sono le nostre classi di output, 
 e le variabili predittive sono 
 nuotare, ali, colore verde e denti affilati. 
 Va bene. 
 Quindi, fondamentalmente, il tuo tipo è la tua variabile di output, 
 e nuotare, ali, denti verdi e affilati 
 sono le tue variabili predittive. 
 Le tue variabili di output hanno tre classi, 
 gatto, pappagallo e tartaruga. 
 Va bene. 

English: 
Now I've summarized this table
I've shown on the screen.
The first thing you can see
is the class of type cats
shows that out of 500 cats,
450 can swim,
meaning that 90% of them can.
And zero number of cats have wings,
and zero number of cats
are green in color,
and 500 out of 500 cats have sharp teeth.
Okay.
Now, coming to parrot, it
says 50 out of 500 parrots
have true value for swim.
Now guys, obviously,
this does not hold true
in real world.
I don't think there are
any parrots who can swim,
but I've just created this data set
so that we can understand naive Bayes.
So, meaning that 10% of parrots
have true value for swim.
Now all 500 parrots have wings,
and 400 out of 500 parrots
are green in color,
and zero parrots have sharp teeth.
Coming to the turtle class,
all 500 turtles can swim.

Italian: 
 Ora ho riassunto questa tabella che ho mostrato sullo schermo. 
 La prima cosa che puoi vedere è la classe di tipo gatti 
 mostra che su 500 gatti, 
 450 sa nuotare, 
 il che significa che il 90% di loro può farlo. 
 E il numero zero di gatti ha le ali, 
 e il numero zero di gatti sono di colore verde, 
 e 500 gatti su 500 hanno denti aguzzi. 
 Va bene. 
 Ora, venendo al pappagallo, si dice che 50 pappagalli su 500 
 hanno un vero valore per il nuoto. 
 Ora ragazzi, ovviamente, questo non è vero 
 nel mondo reale. 
 Non penso che ci siano pappagalli che sanno nuotare, 
 ma ho appena creato questo set di dati 
 in modo che possiamo capire Bayes ingenuo. 
 Quindi, il che significa che il 10% dei pappagalli ha un vero valore per il nuoto. 
 Ora tutti i 500 pappagalli hanno le ali, 
 e 400 pappagalli su 500 sono di colore verde, 
 e zero pappagalli hanno denti aguzzi. 
 Venendo alla classe delle tartarughe, 
 tutte le 500 tartarughe sanno nuotare. 

English: 
Zero number of turtles have wings.
And out of 500, hundred
turtles are green in color,
meaning that 20% of the
turtles are green in color.
And 50 out of 500
turtles have sharp teeth.
So that's what we understand
from this data set.
Now the problem here is
we are given our observation over here,
given some value for swim,
wings, green, and sharp teeth.
What we need to do is we need to predict
whether the animal is a
cat, parrot, or a turtle,
based on these values.
So the goal here to predict
whether it is a cat,
parrot, or a turtle
based on all these defined parameters.
Okay.
Based on the value of swim,
wings, green, and sharp teeth,
we'll understand whether
the animal is a cat,
or is it a parrot, or is it a turtle.
So, if you look at the observation,
the variables swim and
green have a value of true,
and the outcome can be
anyone of the types.
It can either be a cat,
it can be a parrot,

Italian: 
 Il numero zero di tartarughe ha le ali. 
 E su 500, cento tartarughe sono di colore verde, 
 il che significa che il 20% delle tartarughe è di colore verde. 
 E 50 tartarughe su 500 hanno denti affilati. 
 Quindi questo è ciò che capiamo da questo set di dati. 
 Ora il problema qui è 
 ci viene data la nostra osservazione qui, 
 dato un certo valore per nuotare, ali, denti verdi e affilati. 
 Quello che dobbiamo fare è prevedere 
 se l'animale è un gatto, un pappagallo o una tartaruga, 
 basato su questi valori. 
 Quindi l'obiettivo qui per prevedere se si tratta di un gatto, 
 pappagallo o una tartaruga 
 basato su tutti questi parametri definiti. 
 Va bene. 
 Basato sul valore di nuoto, ali, denti verdi e affilati, 
 capiremo se l'animale è un gatto, 
 o è un pappagallo, o è una tartaruga. 
 Quindi, se guardi l'osservazione, 
 le variabili swim e green hanno valore true, 
 e il risultato può essere uno qualsiasi dei tipi. 
 Può essere un gatto, può essere un pappagallo, 

Italian: 
 oppure può essere una tartaruga. 
 Quindi, per verificare se l'animale è un gatto, 
 tutto quello che devi fare è calcolare 
 la probabilità condizionata ad ogni passaggio. 
 Quindi ecco cosa stiamo facendo 
 dobbiamo calcolare la probabilità che 
 questo è un gatto, 
 dato che sa nuotare ed è di colore verde. 
 Innanzitutto, calcoleremo la probabilità che possa nuotare, 
 dato che è un gatto. 
 E due, la probabilità che sia verde 
 e la probabilità che sia verde, 
 dato che è un gatto, 
 e poi lo moltiplicheremo 
 con la probabilità che sia un gatto 
 diviso per la probabilità di nuotare e per il green. 
 Va bene. 
 Quindi, ragazzi, so che tutti voi potete calcolare la probabilità. 
 È abbastanza semplice. 
 Quindi, una volta calcolata la probabilità qui, 
 otterrai un valore diretto pari a zero. 
 Ok, otterrai un valore pari a zero, 
 il che significa che questo animale non è sicuramente un gatto. 
 Allo stesso modo, se lo fai per i pappagalli, 
 calcoli una probabilità condizionale, 
 otterrai un valore di 0,0264 

English: 
or it can be a turtle.
So in order to check
if the animal is a cat,
all you have to do is
you have to calculate
the conditional probability at each step.
So here what we're doing is
we need to calculate the probability that
this is a cat,
given that it can swim
and it is green in color.
First, we'll calculate the
probability that it can swim,
given that it's a cat.
And two, the probability that it is green
and the probability of it being green,
given that it is a cat,
and then we'll multiply it
with the probability of it being a cat
divided by the probability
of swim and green.
Okay.
So, guys, I know you all can
calculate the probability.
It's quite simple.
So once you calculate
the probability here,
you'll get a direct value of zero.
Okay, you'll get a value of zero,
meaning that this animal
is definitely not a cat.
Similarly, if you do this for parrots,
you calculate a conditional probability,
you'll get a value of 0.0264

English: 
divided by probability
of swim comma green.
We don't know this probability.
Similarly, if you check
this for the turtle,
you'll get a probability of 0.066
divided by P swim comma green.
Okay.
Now for these calculations,
the denominator is the same.
The value of the denominator is the same,
and the value of and the probability of it
being a turtle is greater
than that of a parrot.
So that's how we can correctly predict
that the animal is actually a turtle.
So guys, this is how naive Bayes works.
You basically calculate
the conditional probability at each step.
Whatever classification needs to be done,
that has to be calculated
through probability.
There's a lot of statistic
that comes into naive Bayes.
And if you all want to
learn more about statistics
and probability,
I'll leave a link in the description.
You all can watch that video as well.
There I've explain exactly
what conditional probability is,
and the Bayes Theorem is
also explained very well.

Italian: 
 diviso per probabilità di nuotare virgola verde. 
 Non conosciamo questa probabilità. 
 Allo stesso modo, se controlli questo per la tartaruga, 
 avrai una probabilità di 0,066 
 diviso per P nuotare virgola verde. 
 Va bene. 
 Ora per questi calcoli, il denominatore è lo stesso. 
 Il valore del denominatore è lo stesso, 
 e il valore e la probabilità di esso 
 essere una tartaruga è maggiore di quello di un pappagallo. 
 Quindi è così che possiamo prevedere correttamente 
 che l'animale è in realtà una tartaruga. 
 Quindi ragazzi, è così che funziona l'ingenuo Bayes. 
 Fondamentalmente calcoli 
 la probabilità condizionata ad ogni passaggio. 
 Qualunque sia la classificazione da fare, 
 che deve essere calcolato attraverso la probabilità. 
 Ci sono molte statistiche 
 che entra nell'ingenuo Bayes. 
 E se volete saperne di più sulle statistiche 
 e probabilità, 
 Lascio un link nella descrizione. 
 Potete guardare anche tutti quel video. 
 Ci ho spiegato esattamente 
 cos'è la probabilità condizionale, 
 e anche il teorema di Bayes è spiegato molto bene. 

English: 
So you all can check out that video also.
And apart from this, if
you all have any doubts
regarding any of the algorithms,
please leave them in the comment section.
Okay, I'll solve your doubts.
And apart from that, I'll
also leave a couple of links
for each of the algorithms
in the description box.
Because if you want more
in-depth understanding
of each of the algorithms,
you can check out that content.
Since this is a full course video,
I have to cover all the topics,
and it is hard for me
to make you understand
in-depth of each topic.
So I'll leave a couple of
links in the description box.
You can watch those videos as well.
Make sure you checkout the probability
and statistics video.
So now let's move on and
locate our next algorithm,
which is the K nearest neighbor algorithm.
Now KNN, which basically
stands for K nearest neighbor,
is, again, a supervised
classification algorithm
that classifies a new data
point into the target class
or the output class,
depending on the features
of its neighboring data points.

Italian: 
 Quindi tutti voi potete guardare anche quel video. 
 E a parte questo, se avete tutti dei dubbi 
 per quanto riguarda uno qualsiasi degli algoritmi, 
 si prega di lasciarli nella sezione commenti. 
 Va bene, risolverò i tuoi dubbi. 
 E a parte questo, lascio anche un paio di link 
 per ciascuno degli algoritmi nella casella di descrizione. 
 Perché se vuoi una comprensione più approfondita 
 di ciascuno degli algoritmi, 
 puoi controllare quel contenuto. 
 Poiché questo è un video completo del corso, 
 Devo coprire tutti gli argomenti, 
 ed è difficile per me farti capire 
 approfondimento di ogni argomento. 
 Quindi lascio un paio di link nella casella della descrizione. 
 Puoi guardare anche quei video. 
 Assicurati di controllare la probabilità 
 e video delle statistiche. 
 Quindi ora andiamo avanti e individuiamo il nostro prossimo algoritmo, 
 che è l'algoritmo del vicino più prossimo K. 
 Ora KNN, che in pratica sta per K vicino più vicino, 
 è, ancora una volta, un algoritmo di classificazione supervisionato 
 che classifica un nuovo punto dati nella classe di destinazione 
 o la classe di output, a seconda delle caratteristiche 
 dei suoi punti dati vicini. 

English: 
That's why it's called K nearest neighbor.
So let's try to understand
KNN with a small analogy.
Okay, let's say that we want a machine
to distinguish between the
images of cats and dogs.
So to do this, we must input our data set
of cat and dog images,
and we have to train our
model to detect the animal
based on certain features.
For example, features such as pointy ears
can be used to identify cats.
Similarly, we can identify dogs
based on their long ears.
So after starting the data set
during the training phase,
when a new image is given to the model,
the KNN algorithm will classify it
into either cats or dogs,
depending on the similarity
in their features.
Okay, let's say that a
new image has pointy ears,
it will classify that image as cat,
because it is similar to the cat images,
because it's similar to its neighbors.
In this manner, the KNN
algorithm classifies
the data point based
on how similar they are

Italian: 
 Ecco perché si chiama K più vicino vicino. 
 Quindi proviamo a capire KNN con una piccola analogia. 
 Va bene, diciamo che vogliamo una macchina 
 per distinguere tra le immagini di cani e gatti. 
 Quindi, per fare questo, dobbiamo inserire il nostro set di dati 
 di immagini di cani e gatti, 
 e dobbiamo addestrare il nostro modello per rilevare l'animale 
 in base a determinate caratteristiche. 
 Ad esempio, caratteristiche come le orecchie a punta 
 può essere utilizzato per identificare i gatti. 
 Allo stesso modo, possiamo identificare i cani 
 basato sulle loro lunghe orecchie. 
 Quindi dopo aver avviato il set di dati 
 durante la fase di formazione, 
 quando viene data una nuova immagine al modello, 
 l'algoritmo KNN lo classificherà 
 in cani o gatti, 
 a seconda della somiglianza nelle loro caratteristiche. 
 Ok, diciamo che una nuova immagine ha orecchie a punta, 
 classificherà quell'immagine come gatto, 
 perché è simile alle immagini del gatto, 
 perché è simile ai suoi vicini. 
 In questo modo, l'algoritmo KNN classifica 
 il punto dati in base a quanto sono simili 

Italian: 
 ai punti dati vicini. 
 Quindi questo è un piccolo esempio. 
 Ne discuteremo di più nelle ulteriori diapositive. 
 Ora lascia che te ne dica un paio 
 caratteristiche dell'algoritmo KNN. 
 Quindi, prima di tutto, lo sappiamo 
 è un algoritmo di apprendimento supervisionato. 
 Utilizza set di dati di input etichettati 
 per prevedere l'output dei punti dati. 
 Quindi è anche uno dei più semplici 
 algoritmi di apprendimento automatico, 
 e può essere facilmente implementato 
 per una serie variegata di problemi. 
 Un'altra caratteristica è che non è parametrica, 
 il che significa che non accetta alcuna ipotesi. 
 Ad esempio, l'ingenuo Bayes è un modello parametrico, 
 perché assume che tutte le variabili indipendenti 
 non sono in alcun modo collegati tra loro. 
 Ha ipotesi sul modello. 
 K Il vicino più vicino non ha tali ipotesi. 
 Ecco perché è considerato un modello non parametrico. 
 Un'altra caratteristica è che si tratta di un algoritmo pigro. 
 Ora, l'algoritmo pigro è fondamentalmente qualsiasi algoritmo 
 che memorizza il set di allenamento, 

English: 
to their neighboring data points.
So this is a small example.
We'll discuss more about
it in the further slides.
Now let me tell you a couple of
features of KNN algorithm.
So, first of all, we know that
it is a supervised learning algorithm.
It uses labeled input data set
to predict the output of the data points.
Then it is also one of the simplest
machine learning algorithms,
and it can be easily implemented
for a varied set of problems.
Another feature is that
it is non-parametric,
meaning that it does not
take in any assumptions.
For example, naive Bayes
is a parametric model,
because it assumes that all
the independent variables
are in no way related to each other.
It has assumptions about the model.
K nearest neighbor has
no such assumptions.
That's why it's considered
a non-parametric model.
Another feature is that
it is a lazy algorithm.
Now, lazy algorithm
basically is any algorithm
that memorizes the training set,

Italian: 
 invece di imparare una funzione discriminante 
 dai dati di addestramento. 
 Ora, anche se KNN è principalmente un algoritmo di classificazione, 
 può essere utilizzato anche per i casi di regressione. 
 Quindi KNN è in realtà sia una classificazione 
 e un algoritmo di regressione. 
 Ma soprattutto, vedrai che verrà utilizzato 
 sui quattro problemi di classificazione. 
 La caratteristica più importante di 
 un vicino K più vicino è quello 
 si basa sulla somiglianza delle funzionalità 
 con i suoi punti dati vicini. 
 Lo capirai 
 nell'esempio che ti dirò. 
 Ora, in questa immagine, abbiamo due classi di dati. 
 Abbiamo la classe A che è quadrata 
 e la classe B che sono triangoli. 
 Ora la dichiarazione del problema è assegnare 
 il nuovo punto dati di input 
 a una delle due classi 
 utilizzando l'algoritmo KNN. 
 Quindi il primo passo nell'algoritmo KNN 
 è definire il valore di K. 
 Ma cosa rappresenta la K nell'algoritmo KNN? 
 Ora la K sta per il numero dei vicini più vicini, 

English: 
instead of learning a
discriminative function
from the training data.
Now, even though KNN is mainly
a classification algorithm,
it can also be used for regression cases.
So KNN is actually both a classification
and a regression algorithm.
But mostly, you'll see that it'll be used
on the four classification problems.
The most important feature about
a K nearest neighbor is that
it's based on feature similarity
with its neighboring data points.
You'll understand this
in the example that I'm gonna tell you.
Now, in this image, we
have two classes of data.
We have class A which is squares
and class B which are triangles.
Now the problem statement is to assign
the new input data point
to one of the two classes
by using the KNN algorithm.
So the first step in the KNN algorithm
is to define the value of K.
But what is the K in the
KNN algorithm stand for?
Now the K stands for the
number of nearest neighbors,

Italian: 
 ed è per questo che ha il nome K vicini più vicini. 
 Ora, in questa immagine, ho definito il valore di K come tre. 
 Ciò significa che l'algoritmo 
 considererà i tre vicini 
 che sono più vicini al nuovo punto dati 
 per decidere la classe del nuovo punto dati. 
 Quindi il più vicino tra il punto dati 
 viene calcolato utilizzando la misura 
 come la distanza euclidea e la distanza di Manhattan, 
 che spiegherò tra un po '. 
 Quindi il nostro K è uguale a tre. 
 I vicini includono due quadrati e un triangolo. 
 Quindi, se dovessi classificare il nuovo punto dati 
 basato su K uguale a tre, 
 quindi dovrebbe essere assegnato alla classe A, corretto? 
 Dovrebbe essere assegnato ai quadrati. 
 Ma cosa succede se il valore K è impostato su sette. 
 Qui sto fondamentalmente dicendo il mio algoritmo 
 per cercare i sette vicini più vicini 
 e classificare il nuovo punto dati 
 nella classe a cui è più simile. 
 Quindi il nostro K è pari a sette. 
 I vicini includono tre quadrati e quattro triangoli. 

English: 
and that's why it's got the
name K nearest neighbors.
Now, in this image, I've
defined the value of K as three.
This means that the algorithm
will consider the three neighbors
that are closest to the new data point
in order to decide the
class of the new data point.
So the closest between the data point
is calculated by using measure
such as Euclidean distance
and Manhattan distance,
which I'll be explaining in a while.
So our K is equal to three.
The neighbors include two
squares and one triangle.
So, if I were to classify
the new data point
based on K equal to three,
then it should be assigned
to class A, correct?
It should be assigned to squares.
But what if the K value is set to seven.
Here I'm basically telling my algorithm
to look for the seven nearest neighbors
and classify the new data point
into the class it is most similar to.
So our K equal to seven.
The neighbors include three
squares and four triangles.

Italian: 
 Quindi, se dovessi classificare il nuovo punto dati 
 basato su K uguale a sette, 
 quindi sarebbe assegnato alla classe B, 
 poiché la maggior parte dei suoi vicini proviene dalla classe B. 
 Ora è qui che molti di noi si confondono. 
 Allora come facciamo a sapere quale valore K è il più adatto 
 per K vicino più vicino. 
 Ora ci sono un paio di metodi 
 utilizzato per calcolare il valore K. 
 Uno di questi è noto come il metodo del gomito. 
 Discuteremo il metodo del gomito 
 nelle prossime diapositive. 
 Quindi per ora lascia che te lo mostri 
 le misure che sono coinvolte dietro KNN. 
 Ok, c'è una matematica molto semplice 
 dietro l'algoritmo del vicino più vicino K. 
 Quindi discuterò con te la distanza euclidea. 
 Ora in questa figura dobbiamo misurare la distanza 
 tra P uno e P due utilizzando la distanza euclidea. 
 Sono sicuro che molti di voi 
 sa già cos'è la distanza euclidea. 
 È qualcosa che abbiamo imparato all'ottavo o al decimo anno. 
 Non ne sono sicuro. 
 Quindi tutto ciò che stai facendo è estrarne X uno. 
 Quindi la formula è fondamentalmente x due meno x uno 
 l'intera piazza 
 più y due meno y uno l'intero quadrato, 

English: 
So if I were to classify
the new data point
based on K equal to seven,
then it would be assigned to class B,
since majority of its
neighbors are from class B.
Now this is where a
lot of us get confused.
So how do we know which K
values is the most suitable
for K nearest neighbor.
Now there are a couple methods
used to calculate the K value.
One of them is known as the elbow method.
We'll be discussing the elbow method
in the upcoming slides.
So for now let me just show you
the measures that are involved behind KNN.
Okay, there's very simple math
behind the K nearest neighbor algorithm.
So I'll be discussing the
Euclidean distance with you.
Now in this figure, we have
to measure the distance
between P one and P two by
using Euclidean distance.
I'm sure a lot of you
already know what Euclidean distance is.
It is something that we learned
in eighth or 10th grade.
I'm not sure.
So all you're doing is
you're extracting X one.
So the formula is
basically x two minus x one
the whole square
plus y two minus y one the whole square,

Italian: 
 e la radice di ciò è la distanza euclidea. 
 E 'così semplice. 
 Quindi viene utilizzata la distanza euclidea 
 come misura per verificare la vicinanza dei punti dati. 
 Quindi, fondamentalmente, KNN utilizza la distanza euclidea 
 per verificare la vicinanza di un nuovo punto dati 
 con i suoi vicini. 
 Quindi ragazzi, è così semplice. 
 KNN utilizza misure semplici 
 per risolvere problemi molto complessi. 
 Va bene, e questo è uno dei motivi per cui 
 KNN è un algoritmo così comunemente usato. 
 Venendo a supportare la macchina vettoriale. 
 Questo è il nostro ultimo algoritmo 
 sotto algoritmi di classificazione. 
 Ragazzi, non diventate paranoici a causa del nome. 
 Supporta la macchina vettoriale in realtà 
 è uno degli algoritmi più semplici nell'apprendimento supervisionato. 
 Ok, è fondamentalmente utilizzato per classificare i dati 
 in classi diverse. 
 È un algoritmo di classificazione. 
 Ora, a differenza della maggior parte degli algoritmi, 
 SVM fa uso di qualcosa noto come iperpiano 
 che agisce come un confine decisionale 

English: 
and the root of that is
the Euclidean distance.
It's as simple as that.
So Euclidean distance is used
as a measure to check the
closeness of data points.
So basically, KNN uses
the Euclidean distance
to check the closeness of a new data point
with its neighbors.
So guys, it's as simple as that.
KNN makes use of simple measures
in order to solve very complex problems.
Okay, and this is one of the reasons why
KNN is such a commonly used algorithm.
Coming to support vector machine.
Now, this is our last algorithm
under classification algorithms.
Now guys, don't get paranoid
because of the name.
Support vector machine actually
is one of the simplest algorithms
in supervised learning.
Okay, it is basically
used to classify data
into different classes.
It's a classification algorithm.
Now unlike most algorithms,
SVM makes use of something
known as a hyperplane
which acts like a decision boundary

English: 
between the separate classes.
Okay.
Now SVM can be used to generate multiple
separating hyperplane,
such that the data is
divided into segments,
and each segment contains
only one kind of data.
So, a few features of SVM include that
it is a supervised learning algorithm,
meaning that it's going to
study a labeled training data.
Another feature is that it is again
a regression and a
classification algorithm.
Even though SVM is mainly
used for classification,
there is something known as
the support vector regressor.
That is useful regression problems.
Now, SVM can also be used
to classify non-linear data
by using kernel tricks.
Non-linear data is basically data
that cannot be separated
by using a single linear line.
I'll be talking more about this
in the upcoming slides.
Now let's move on and
discuss how SVM works.
Now again, in order to make you understand
how support vector machine works,
you look at a small scenario.

Italian: 
 tra le classi separate. 
 Va bene. 
 Ora SVM può essere utilizzato per generare più file 
 iperpiano di separazione, 
 in modo che i dati siano divisi in segmenti, 
 e ogni segmento contiene un solo tipo di dati. 
 Quindi, alcune funzionalità di SVM includono questo 
 è un algoritmo di apprendimento supervisionato, 
 il che significa che studierà i dati di addestramento etichettati. 
 Un'altra caratteristica è che lo è di nuovo 
 una regressione e un algoritmo di classificazione. 
 Anche se SVM è utilizzato principalmente per la classificazione, 
 c'è qualcosa noto come regressore del vettore di supporto. 
 Questo è un utile problema di regressione. 
 Ora, SVM può essere utilizzato anche per classificare dati non lineari 
 usando i trucchi del kernel. 
 I dati non lineari sono fondamentalmente dati 
 che non può essere separato 
 utilizzando una singola linea lineare. 
 Parlerò di più su questo 
 nelle prossime diapositive. 
 Ora andiamo avanti e discutiamo di come funziona SVM. 
 Adesso di nuovo, per farti capire 
 come funziona support vector machine, 
 guardi un piccolo scenario. 

Italian: 
 Per un secondo, fingi di possedere una fattoria 
 e hai un problema. 
 Devi creare una recinzione 
 per proteggere i tuoi conigli da un branco di lupi. 
 Ok, ora devi decidere 
 dove vuoi costruire la tua recinzione. 
 Quindi un modo per risolvere il problema è usare 
 supportare macchine vettoriali. 
 Quindi se lo faccio e se provo a tracciare un confine decisionale 
 tra i conigli e i lupi, 
 sembra qualcosa di simile. 
 Ora puoi chiaramente costruire una recinzione lungo questa linea. 
 Quindi, in termini semplici, è esattamente come 
 le tue macchine vettoriali di supporto funzionano. 
 Disegna un confine decisionale, 
 che non è altro che un iperpiano 
 tra due classi qualsiasi per separarle 
 o classificarli. 
 Ora so che stai pensando come fai a saperlo 
 dove disegnare un iperpiano. 
 Il principio di base dietro SVM 
 è disegnare un iperpiano 
 che meglio separa le due classi. 
 Nel nostro caso, le due classi 
 sono i conigli e i lupi. 
 Ora, prima di andare avanti, 
 discutiamo le diverse terminologie 

English: 
For a second, pretend that you own a farm
and you have a problem.
You need to set up a fence
to protect your rabbits
from a pack of wolves.
Okay, now, you need to decide
where you want to build your fence.
So one way to solve
the problem is by using
support vector machines.
So if I do that and if I try
to draw a decision boundary
between the rabbits and the wolves,
it looks something like this.
Now you can clearly build
a fence along this line.
So in simple terms, this is exactly how
your support vector machines work.
It draws a decision boundary,
which is nothing but a hyperplane
between any two classes
in order to separate them
or classify them.
Now I know that you're
thinking how do you know
where to draw a hyperplane.
The basic principle behind SVM
is to draw a hyperplane
that best separates the two classes.
In our case, the two classes
are the rabbits and the wolves.
Now before we move any further,
let's discuss the different terminologies

Italian: 
 che ci sono nella macchina vettoriale di supporto. 
 Quindi questo è fondamentalmente un iperpiano. 
 È un confine decisionale che separa meglio 
 le due classi. 
 Ora, vettori di supporto, cosa sono esattamente i vettori di supporto. 
 Quindi, quando inizi con la macchina vettoriale di supporto, 
 si inizia disegnando un iperpiano casuale. 
 E poi controlli la distanza 
 tra l'iperpiano e il punto dati più vicino 
 da ciascuna classe. 
 Questi punti dati più vicini all'iperpiano 
 sono noti come vettori di supporto. 
 Ora questi due punti dati 
 sono i più vicini al tuo iperpiano. 
 Quindi questi sono noti come vettori di supporto, 
 ed è da qui che viene il nome, 
 supportare macchine vettoriali. 
 Ora l'iperpiano è disegnato 
 basato su questi vettori di supporto. 
 E l'iperpiano ottimale sarà 
 quello che ha una distanza massima 
 da ciascuno dei vettori di supporto, 
 significa che la distanza tra l'iperpiano 
 e i vettori di supporto devono essere massimi. 
 Quindi, per riassumere, SVM viene utilizzato per classificare i dati 

English: 
that are there in support vector machine.
So that is basically a hyperplane.
It is a decision boundary
that best separates
the two classes.
Now, support vectors, what
exactly are support vectors.
So when you start with the
support vector machine,
you start by drawing a random hyperplane.
And then you check the distance
between the hyperplane
and the closest data point
from each of the class.
These closest data
points to the hyperplane
are known as support vectors.
Now these two data points
are the closest to your hyperplane.
So these are known as support vectors,
and that's where the name comes from,
support vector machines.
Now the hyperplane is drawn
based on these support vectors.
And optimum hyperplane will be
the one which has a maximum distance
from each of the support vectors,
meaning that the distance
between the hyperplane
and the support vectors has to be maximum.
So, to sum it up, SVM
is used to classify data

Italian: 
 usando un iperpiano, 
 tale che la distanza tra l'iperpiano 
 e il vettore di supporto è massimo. 
 Questa distanza non è altro che il margine. 
 Ora proviamo a risolvere un problema. 
 Diciamo che inserisco un nuovo punto dati 
 e voglio disegnare un iperpiano 
 in modo tale da separare al meglio queste due classi. 
 Allora cosa devo fare? 
 Comincio disegnando un iperpiano, 
 e poi controllo la distanza tra l'iperpiano 
 e i vettori di supporto. 
 Quindi, fondamentalmente qui, sto cercando di controllare 
 se il margine è massimo per questo iperpiano. 
 Ma cosa succederebbe se disegnassi l'iperpiano in questo modo? 
 Il margine per questo iperpiano è chiaramente maggiore 
 rispetto al precedente. 
 Quindi questo è il mio iperpiano ottimale. 
 Questo è esattamente come lo capisci 
 quale iperpiano deve essere scelto, 
 perché puoi disegnare più iperpiani. 
 Ora, il miglior iperpiano è quello 
 che ha un modulo massimo. 
 Quindi, questo è il mio iperpiano ottimale. 

English: 
by using a hyperplane,
such that the distance
between the hyperplane
and the support vector is maximum.
Now this distance is
nothing but the margin.
Now let's try to solve a problem.
Let's say that I input a new data point
and I want to draw a hyperplane
such that it best separates
these two classes.
So what do I do?
I start out by drawing a hyperplane,
and then I check the distance
between the hyperplane
and the support vectors.
So, basically here, I'm trying to check
if the margin is maximum
for this hyperplane.
But what if I drew the
hyperplane like this?
The margin for this hyperplane
is clearly being more
than the previous one.
So this is my optimal hyperplane.
This is exactly how you understand
which hyperplane needs to be chosen,
because you can draw multiple hyperplanes.
Now, the best hyperplane is the one
that has a maximum module.
So, this is my optimal hyperplane.

Italian: 
 Finora è stato abbastanza facile. 
 I nostri dati erano separabili linearmente, 
 il che significa che potresti disegnare una linea retta 
 per separare le due classi. 
 Ma cosa farai se i dati saranno così? 
 Forse non puoi disegnare un iperpiano come questo. 
 Forse non puoi disegnare un iperpiano come questo. 
 Non separa le due classi. 
 Possiamo vedere chiaramente conigli e lupi 
 in entrambe le classi. 
 Ora questo è esattamente dove SVM non lineare 
 entra in scena. 
 Ok, questo è il trucco del kernel. 
 Ora, il kernel è fondamentalmente qualcosa che può essere utilizzato 
 per trasformare i dati in un'altra dimensione 
 che ha un chiaro margine di divisione tra classi di dati. 
 Quindi, fondamentalmente la funzione kernel 
 offre all'utente la possibilità di trasformare 
 spazi non lineari in quelli lineari. 
 Fino a questo punto, se lo noti 
 stavamo tracciando i nostri dati su uno spazio bidimensionale. 
 Avevamo gli assi xey. 

English: 
Now so far it was quite easy.
Our data was linearly separable,
which means that you
could draw a straight line
to separate the two classes.
But what will you do if
the data looks like this?
You possibly cannot draw
a hyperplane like this.
You possibly cannot draw
a hyperplane like this.
It doesn't separate the two classes.
We can clearly see rabbits and wolves
in both of the classes.
Now this is exactly where non-linear SVM
comes into the picture.
Okay, this is what the
kernel trick is all about.
Now, kernel is basically
something that can be used
to transform data into another dimension
that has a clear dividing
margin between classes of data.
So, basically the kernel function
offers the user the option of transforming
non-linear spaces into linear ones.
Until this point, if you notice that
we were plotting our data
on two dimensional space.
We had x and y-axis.

English: 
A simple trick is transforming
the two variables,
x and y, into a new feature space,
which involves a new variable z.
So, basically, what we're doing
is we're visualizing the data
on a three dimensional space.
So when you transform the
2D space into a 3D space,
you can clearly see a dividing margin
between the two classes of data.
You can clearly draw a line in the middle
that separates these two data sets.
So guys, this sums up
the whole idea behind
support vector machines.
Support vector machines are
very easy to understand.
Now, this was all for our
supervised learning algorithms.
Now, before I move on to
unsupervised learning algorithms,
I'll be running a demo.
We'll be running a demo
in order to understand all
the classification algorithms
that we studied so far.
Earlier in the session, we ran a demo
for the regression algorithms.
Now we'll run for the
classification algorithms.
So, enough of theory.

Italian: 
 Un semplice trucco sta trasformando le due variabili, 
 xey, in un nuovo spazio di funzionalità, 
 che coinvolge una nuova variabile z. 
 Quindi, fondamentalmente, cosa stiamo facendo 
 stiamo visualizzando i dati 
 su uno spazio tridimensionale. 
 Quindi, quando trasformi lo spazio 2D in uno spazio 3D, 
 puoi vedere chiaramente un margine di divisione 
 tra le due classi di dati. 
 Puoi disegnare chiaramente una linea nel mezzo 
 che separa questi due set di dati. 
 Quindi ragazzi, questo riassume l'intera idea dietro 
 supportare macchine vettoriali. 
 Le macchine vettoriali di supporto sono molto facili da capire. 
 Ora, questo era tutto per il nostro 
 algoritmi di apprendimento supervisionato. 
 Ora, prima di passare agli algoritmi di apprendimento senza supervisione, 
 Farò una demo. 
 Faremo una demo 
 per comprendere tutti gli algoritmi di classificazione 
 che abbiamo studiato finora. 
 All'inizio della sessione, abbiamo eseguito una demo 
 per gli algoritmi di regressione. 
 Ora correremo per gli algoritmi di classificazione. 
 Quindi, basta con la teoria. 

Italian: 
 Apriamo Python, 
 e iniziamo a vedere come 
 questi algoritmi di classificazione funzionano. 
 Ora, ecco cosa faremo 
 è implementeremo più algoritmi di classificazione 
 usando scikit-learn. 
 Va bene, è uno dei più popolari 
 strumento di apprendimento automatico per Python. 
 Ora useremo un semplice set di dati 
 per il compito di addestrare un classificatore a distinguere 
 tra i diversi tipi di frutta. 
 Lo scopo di questa demo è implementare 
 algoritmi di classificazione multipli 
 per lo stesso insieme di problemi. 
 Quindi, come al solito, inizi con l'importazione 
 tutte le tue librerie in Python. 
 Di nuovo, ragazzi, se non conoscete Python, 
 controlla la casella della descrizione, 
 Lascio un link lì. 
 Puoi guardare anche quel video. 
 Successivamente, quello che stiamo facendo è leggere i dati sulla frutta 
 sotto forma di tabella. 
 L'hai memorizzato in una variabile chiamata frutti. 
 Ora, se vuoi vedere le prime righe di dati, 
 stampiamo le prime osservazioni nel nostro set di dati. 

English: 
Let's open up Python,
and let's start looking at how
these classification algorithms work.
Now, here what we'll be doing
is we'll implement multiple
classification algorithms
by using the scikit-learn.
Okay, it's one of the most popular
machine learning tool for Python.
Now we'll be using a simple data set
for the task of training a
classifier to distinguish
between the different types of fruits.
The purpose of this demo is to implement
multiple classification algorithms
for the same set of problem.
So as usual, you start by importing
all your libraries in Python.
Again, guys, if you don't know Python,
check the description box,
I'll leave a link there.
You can go through that video as well.
Next, what we're doing is
we're reading the fruit data
in the form of table.
You stored it in a variable called fruits.
Now if you wanna see the
first few rows of the data,
let's print the first few
observations in our data set.

Italian: 
 Quindi, questo è il nostro set di dati. 
 Queste sono le etichette della frutta. 
 Quindi abbiamo circa quattro frutti nel nostro set di dati. 
 Abbiamo la mela, abbiamo il mandarino, 
 arancia e limone. 
 Va bene. 
 Ora, l'etichetta della frutta non denota altro che l'etichetta 
 di mela, che è uno. 
 Il mandarino ne ha due. 
 Allo stesso modo, l'arancia è etichettata come tre. 
 E il limone è etichettato come quattro. 
 Quindi un sottotipo di frutta è fondamentalmente 
 la famiglia di frutta a cui appartiene. 
 La massa è la massa del frutto, 
 larghezza, altezza e punteggio del colore. 
 Queste sono tutte le nostre variabili predittive. 
 Dobbiamo identificare il tipo di frutta, 
 a seconda di queste variabili predittive. 
 Quindi, prima, abbiamo visto un paio di osservazioni qui. 
 Successivamente, se vuoi vedere la forma del tuo set di dati, 
 questo è quello che sembra. 

English: 
So, this is our data set.
These are the fruit labels.
So we have around four
fruits in our data set.
We have apple, we have mandarin,
orange, and lemon.
Okay.
Now, fruit label denotes
nothing but the label
of apple, which is one.
Mandarin has two.
Similarly, orange is labeled as three.
And lemon is labeled as four.
Then a fruit subtype is basically
the family of fruit it belongs to.
Mass is the mass of the fruit,
width, height, and color score.
These are all our predictor variables.
We have to identify the type of fruit,
depending on these predictor variables.
So, first, we saw a couple
of observations over here.
Next, if you want to see
the shape of your data set,
this is what it looks like.

English: 
There are around 59 observations with
seven predictor variables,
which is one, two, three,
four, five, six, and seven.
We have seven variables in total.
Sorry, not predictor variables.
This seven denotes both your predictor
and your target variable.
Next, I'm just showing you
the four fruits that we have
in our data set,
which is apple, mandarin,
orange, and lemon.
Next, I'm just grouping
fruits by their names.
Okay.
So we have 19 apples in our data set.
We have 16 lemons.
We have only five mandarins,
and we have 19 oranges.
Even though the number of
mandarin samples is low,
we'll have to work with it,
because right now I'm
just trying to make you
understand the classification algorithms.
The main aim for me
behind doing these demos
is so that you understand
how classification algorithms work.
Now what you can do is
you can also plot a graph
in order to see the frequency
of each of these fruits.

Italian: 
 Ci sono circa 59 osservazioni con 
 sette variabili predittive, 
 che è uno, due, tre, quattro, cinque, sei e sette. 
 Abbiamo sette variabili in totale. 
 Spiacenti, non variabili predittive. 
 Questo sette denota entrambi i tuoi predittori 
 e la tua variabile di destinazione. 
 Successivamente, ti sto solo mostrando i quattro frutti che abbiamo 
 nel nostro set di dati, 
 che è mela, mandarino, arancia e limone. 
 Successivamente, sto solo raggruppando i frutti in base ai loro nomi. 
 Va bene. 
 Quindi abbiamo 19 mele nel nostro set di dati. 
 Abbiamo 16 limoni. 
 Abbiamo solo cinque mandarini, 
 e abbiamo 19 arance. 
 Anche se il numero di campioni di mandarino è basso, 
 dovremo lavorarci sopra, 
 perché in questo momento sto solo cercando di farti 
 comprendere gli algoritmi di classificazione. 
 L'obiettivo principale per me dietro a queste demo 
 è così che tu capisca 
 come funzionano gli algoritmi di classificazione. 
 Ora quello che puoi fare è tracciare anche un grafico 
 per vedere la frequenza di ciascuno di questi frutti. 

Italian: 
 Ok, ti ​​mostrerò come appare la trama. 
 Il numero di mele e arance è lo stesso. 
 Penso che abbiamo circa 19 mele e arance. 
 E allo stesso modo, questo è il conteggio dei limoni. 
 Va bene. 
 Quindi questa è una piccola visualizzazione. 
 Ragazzi, la visualizzazione è in realtà molto importante 
 quando si tratta di machine learning, 
 perché puoi vedere la maggior parte delle relazioni 
 e correlazioni tracciando grafici. 
 Non puoi vedere quelle correlazioni 
 semplicemente eseguendo codice e tutto il resto. 
 Solo quando si tracciano variabili diverse sul grafico, 
 capirai come sono correlati. 
 Uno dei compiti principali nell'apprendimento automatico 
 è visualizzare i dati. 
 Ti assicura di capire 
 la correlazione tra i dati. 
 Successivamente, quello che faremo è rappresentare graficamente 
 qualcosa noto come box plot. 
 Ok, fondamentalmente un box plot ti aiuta a capire 
 la distribuzione dei tuoi dati. 
 Fammi eseguire il box plot, 
 e ti mostrerò cosa intendo esattamente. 
 Quindi questo è il nostro box plot. 

English: 
Okay, I'll show you what
the plot looks like.
The number of apples
and oranges is the same.
We have I think around
19 apples and oranges.
And similarly, this is
the count for lemons.
Okay.
So this is a small visualization.
Guys, visualization is
actually very important
when it comes to machine learning,
because you can see most of the relations
and correlations by plotting graphs.
You can't see those correlations
by just running code and all of that.
Only when you plot different
variables on your graph,
you'll understand how they are related.
One of the main task in machine learning
is to visualize data.
It ensures that you understand
the correlation between data.
Next, what we're gonna do is we'll graph
something known as a box plot.
Okay, a box plot basically
helps you understand
the distribution of your data.
Let me run the box plot,
and I'll show you what exactly I mean.
So this is our box plot.

English: 
So, box plot will basically give you
a clearer idea of the distribution
of your input variables.
It is mainly used in
exploratory data analysis,
and it represents the
distribution of the data
and its variability.
Now, the box plot contains
upper quartile and lower quartile.
So the box plot basically
spanned your interquartile range
or something known as IQR.
IQR is nothing but your third quartile
subtracted from your first quartile.
Now again, this involves
statistics and probability.
So I'll be leaving a link
in the description box.
You can go through that video.
I've explained statistics
probability, IQR,
range, and all of that in there.
So, one of the main reasons
why box plots are used
is to detect any sort
of outliers in the data.
Since the box plot spans the IQR,
it detects the data point
that lie outside the average range.
So if you see in the colored space,
most of the data is
distributed around the IQR,

Italian: 
 Quindi, il box plot ti darà fondamentalmente 
 un'idea più chiara della distribuzione 
 delle tue variabili di input. 
 Viene utilizzato principalmente nell'analisi esplorativa dei dati, 
 e rappresenta la distribuzione dei dati 
 e la sua variabilità. 
 Ora, il box plot contiene 
 quartile superiore e quartile inferiore. 
 Quindi il box plot ha sostanzialmente abbracciato il tuo intervallo interquartile 
 o qualcosa noto come IQR. 
 IQR non è altro che il tuo terzo quartile 
 sottratto dal tuo primo quartile. 
 Ancora una volta, questo implica statistiche e probabilità. 
 Quindi lascerò un collegamento nella casella della descrizione. 
 Puoi guardare quel video. 
 Ho spiegato la probabilità statistica, IQR, 
 gamma, e tutto questo lì dentro. 
 Quindi, uno dei motivi principali per cui vengono utilizzati i box plot 
 è quello di rilevare qualsiasi tipo di valori anomali nei dati. 
 Dato che il box plot abbraccia l'IQR, 
 rileva il punto dati 
 che si trovano al di fuori dell'intervallo medio. 
 Quindi se vedi nello spazio colorato, 
 la maggior parte dei dati è distribuita intorno all'IQR, 

Italian: 
 mentre qui i dati non sono così ben distribuiti. 
 Anche l'altezza non è molto ben distribuita, 
 ma lo spazio colore è abbastanza ben distribuito. 
 Questo è ciò che ti mostra il box plot. 
 Quindi ragazzi, questo richiede molta matematica. 
 TUTTE queste, tutte le funzioni dell'apprendimento automatico 
 implica molta matematica. 
 Quindi sai che è necessario avere una buona comprensione 
 di statistiche, probabilità e tutto il resto. 
 Ora, quello che faremo è tracciare un istogramma. 
 L'istogramma ti mostrerà fondamentalmente 
 la frequenza di occorrenza. 
 Fammi solo tracciare questo e poi proveremo a capire. 
 Quindi qui puoi capire alcune correlazioni. 
 Ok, alcune coppie di questi attributi sono correlate. 
 Ad esempio, massa e larghezza, 
 sono in qualche modo correlati lungo gli stessi intervalli. 
 Quindi questo suggerisce un'alta correlazione 
 e una relazione prevedibile. 
 Ad esempio, se guardi i grafici, sono abbastanza simili. 
 Quindi per ciascuna delle variabili predittore, 

English: 
whereas here the data are
not that well distributed.
Height also is not very well distributed,
but color space is
pretty well distributed.
This is what the box plot shows you.
So guys, this involves a lot of math.
ALl of these, each and every
function in machine learning
involves a lot of math.
So you know it's necessary
to have a good understanding
of statistics, probability,
and all of that.
Now, next, what we'll do
is we'll plot a histogram.
Histogram will basically show you
the frequency of occurrence.
Let me just plot this, and
then we'll try and understand.
So here you can understand
a few correlations.
Okay, some pairs of these
attributes are correlated.
For example, mass and width,
they're somehow correlated
along the same ranges.
So this suggests a high correlation
and a predictable relationship.
Like if you look at the
graphs, they're quite similar.
So for each of the predictor variables,

English: 
I've drawn a histogram.
For each of that input data,
we've drawn a histogram.
Now guys, again, like i said,
plotting graphs is very important
because you understand
a lot of correlations
that you cannot understand
by just looking at your data,
or just running operations on your data.
Repeat, or just running code on your data.
Okay.
Now, next, what we're
doing here is we're just
dividing the data set into
target and predictor variables.
So, basically, I've created
an array of feature names
which has your predictor variables.
It has mass, width, height, color space.
And you have assigned that as X,
since this is your input,
and y is your output
which is your fruit label.
That'll show whether it is an apple,
orange, lemon, and so on.
Now, the next step that
we'll perform over here
is pretty evident.
Again, this is data splicing.
So data splicing, by now,
I'm sure all of you know what it is.
It is splitting your data into
training and testing data.
So that's what we've done over here.

Italian: 
 Ho disegnato un istogramma. 
 Per ciascuno di quei dati di input, abbiamo disegnato un istogramma. 
 Adesso ragazzi, di nuovo, come ho detto, 
 tracciare grafici è molto importante 
 perché capisci molte correlazioni 
 che non puoi capire 
 semplicemente guardando i tuoi dati, 
 o semplicemente eseguendo operazioni sui tuoi dati. 
 Ripeti o semplicemente esegui il codice sui tuoi dati. 
 Va bene. 
 Ora, il prossimo, quello che stiamo facendo qui è che siamo solo 
 dividendo il set di dati in variabili obiettivo e predittore. 
 Quindi, fondamentalmente, ho creato una serie di nomi di funzionalità 
 che ha le tue variabili predittive. 
 Ha massa, larghezza, altezza, spazio colore. 
 E lo hai assegnato come X, 
 poiché questo è il tuo input, 
 e y è la tua produzione che è la tua etichetta di frutta. 
 Questo mostrerà se è una mela, 
 arancia, limone e così via. 
 Ora, il passaggio successivo che eseguiremo qui 
 è abbastanza evidente. 
 Di nuovo, si tratta di giunzione dei dati. 
 Quindi la giunzione dei dati, ormai, 
 Sono sicuro che tutti voi sapete di cosa si tratta. 
 Divide i tuoi dati in dati di addestramento e test. 
 Quindi è quello che abbiamo fatto qui. 

English: 
Next, we're importing something
known as the MinMaxScaler.
Scaling or normalizing your data
is very important in machine learning.
Now, I'm seeing this because your raw data
can be very biased.
So it's very important
to normalize your data.
Now when I say normalize your data,
so if you look at the value of mass
and if you look at the
value of height and color,
you see that mass is ranging
in hundreds and double digits,
whereas height is in single digit,
and color score is not
even in single digits.
So, if some of your variables
have a very high range,
you know they have a very high scale,
like they're in two
digits or three digits,
whereas other variables are
single digits and lesser,
then your output is
going to be very biased.
It's obvious that it's
gonna be very biased.
That's why you have to scale your data
in such a way that all of these values
will have a similar range.

Italian: 
 Successivamente, stiamo importando qualcosa noto come MinMaxScaler. 
 Ridimensionamento o normalizzazione dei dati 
 è molto importante nell'apprendimento automatico. 
 Ora, vedo questo perché i tuoi dati grezzi 
 può essere molto prevenuto. 
 Quindi è molto importante normalizzare i tuoi dati. 
 Ora, quando dico normalizza i tuoi dati, 
 quindi se guardi il valore della massa 
 e se guardi il valore di altezza e colore, 
 vedi che la massa è compresa tra centinaia e doppie cifre, 
 mentre l'altezza è in una cifra, 
 e il punteggio del colore non è nemmeno a una cifra. 
 Quindi, se alcune delle tue variabili hanno un intervallo molto alto, 
 sai che hanno una scala molto alta, 
 come se fossero due o tre cifre, 
 mentre altre variabili sono cifre singole e minori, 
 allora il tuo output sarà molto parziale. 
 È ovvio che sarà molto di parte. 
 Ecco perché devi ridimensionare i tuoi dati 
 in modo tale che tutti questi valori 
 avrà un intervallo simile. 

English: 
So that's exactly what
the scaler function does.
Okay.
Now since we have already divided our data
into training and testing data,
our next step is to build the model.
So, first, we're gonna be using
the logistic regression algorithm.
I've already discussed logistic
regression with you all.
It's a classification algorithm,
which is basically used
to predict the outcome
of a categorical variable.
So we already have the logistic
regression class in Python.
All you have to do is you have to
give an instance for this function,
which is logreg over here.
And I'm fitting this instance
with a training data set,
meaning that I'm running the algorithm
with the training data set.
Once you do that, you can calculate
the accuracy by using this function.
So here I'm calculate the accuracy
on the training data set
and on the testing data set.
Okay, so let's look at the output of this.
Now guys, ignore this future warning.

Italian: 
 Quindi questo è esattamente ciò che fa la funzione scaler. 
 Va bene. 
 Ora poiché abbiamo già diviso i nostri dati 
 nei dati di addestramento e test, 
 il nostro prossimo passo è costruire il modello. 
 Quindi, per prima cosa, useremo 
 l'algoritmo di regressione logistica. 
 Ho già discusso di regressione logistica con tutti voi. 
 È un algoritmo di classificazione, 
 che è fondamentalmente utilizzato per prevedere il risultato 
 di una variabile categoriale. 
 Quindi abbiamo già la classe di regressione logistica in Python. 
 Tutto quello che devi fare è che devi 
 fornire un'istanza per questa funzione, 
 che è logreg qui. 
 E sto adattando questa istanza con un set di dati di addestramento, 
 significa che sto eseguendo l'algoritmo 
 con il set di dati di allenamento. 
 Dopo averlo fatto, puoi calcolare 
 la precisione utilizzando questa funzione. 
 Quindi qui sto calcolando la precisione 
 sul set di dati di addestramento 
 e sul set di dati di prova. 
 Ok, quindi diamo un'occhiata all'output di questo. 
 Ora ragazzi, ignorate questo futuro avvertimento. 

Italian: 
 Gli avvisi vengono ignorati in Python. 
 Ora, accuratezza del classificatore di regressione logistica 
 sul set di dati di allenamento è di circa il 70%. 
 Era abbastanza buono sul set di dati di allenamento. 
 Ma quando si tratta di classificare sul set di dati di test, 
 è solo il 40%, 
 che non è così buono per un classificatore. 
 Ancora una volta, questo può dipendere dall'affermazione del problema, 
 per quale dichiarazione problema 
 è la regressione logistica più adatta. 
 Successivamente, faremo la stessa cosa utilizzando l'albero decisionale. 
 Quindi, di nuovo, chiamiamo semplicemente la funzione dell'albero decisionale, 
 e lo adatteremo al set di dati di addestramento, 
 e calcoleremo la precisione 
 dell'albero decisionale sulla formazione, 
 e il set di dati di test. 
 Quindi, se lo fai per un albero decisionale 
 sul set di dati di addestramento, 
 ottieni una precisione del 100%. 
 Ma sul set di dati di test, 
 hai circa l'87% di precisione. 
 Questo è qualcosa di cui ho discusso con tutti voi prima, 
 che questa è la decisione, gli alberi sono molto buoni 
 con set di dati di allenamento, 
 a causa di un processo noto come overfitting. 

English: 
Warnings are ignored in Python.
Now, accuracy of the logistic
regression classifier
on the training data set is around 70%.
It was pretty good on
the training data set.
But when it comes to classifying
on the test data set,
it's only 40%,
which is not that good for a classifier.
Now again, this can depend
on the problem statement,
for which problem statement
is logistic regression more suitable.
Next, we'll do the same thing
using the decision tree.
So again, we just call the
decision tree function,
and we'll fit it with
the training data set,
and we'll calculate the accuracy
of the decision tree on the training,
and the testing data set.
So if you do that for a decision tree
on the training data set,
you get 100% accuracy.
But on the testing data set,
you have around 87% of accuracy.
This is something that I
discussed with you all earlier,
that this is decision trees are very good
with training data set,
because of a process known as overfitting.

English: 
But when it comes to classifying
the outcome on the testing data set,
the accuracy reduces.
Now, this is very good compared
to logistic regression.
For this problem statement, decision trees
works better that logistic regression.
Coming to KNN classifier.
Again, all you have to do is you have to
call the K neighbor
classifier, this function.
And you have to fit this
with the training data set.
If you calculate the accuracy
for a KNN classifier,
we get a good accuracy actually.
On the training data set,
we get an accuracy of 95%.
And on the testing data set, it's 100%.
That is really good,
because our testing data set
actually achieved more of an accuracy
than on a training data set.
Now all of this depends on the value of K
that you've chosen for KNN.
Now, I mentioned that
you use the elbow method
to choose the K value in
the K nearest neighbor.
I'll be discussing the elbow
method in the next section.

Italian: 
 Ma quando si tratta di classificare 
 il risultato sul set di dati di prova, 
 la precisione si riduce. 
 Ora, questo è molto buono rispetto alla regressione logistica. 
 Per questa dichiarazione del problema, alberi decisionali 
 funziona meglio della regressione logistica. 
 Venendo al classificatore KNN. 
 Di nuovo, tutto quello che devi fare è farlo 
 chiama il classificatore del vicino K, questa funzione. 
 E devi adattarlo al set di dati di allenamento. 
 Se calcoli la precisione per un classificatore KNN, 
 in realtà otteniamo una buona precisione. 
 Sul set di dati di allenamento, 
 otteniamo una precisione del 95%. 
 E sul set di dati di test, è al 100%. 
 Questo è davvero buono, perché il nostro set di dati di test 
 effettivamente raggiunto una maggiore precisione 
 rispetto a un set di dati di addestramento. 
 Ora tutto questo dipende dal valore di K 
 che hai scelto per KNN. 
 Ora, ho detto che usi il metodo del gomito 
 per scegliere il valore K nel vicino K più vicino. 
 Discuterò il metodo del gomito nella prossima sezione. 

English: 
So, don't worry if you
haven't understood that yet.
Now, we're also using a
naive Bayes classifier.
Here we're using a Gaussian
naive Bayes classifier.
Gaussian is basically a type
of naive Bayes classifier.
I'm not going to go into depth of this,
because it'll just extend our
session too much more longer.
Okay.
And if you want to know more about this,
I'll leave a link in the description box.
You can read all about the
caution naive Bayes classifier.
Now, the math behind this is the same.
It uses naive Bayes, it uses
the Bayes Theorem itself.
Now again, we're gonna call this class,
and then we're going to run our data,
training data on it.
So using the naive Bayes classifier,
we're getting an accuracy of 0.86
on the training data set.
And on the testing data set,
we're getting 67% accuracy.
Okay.
Now let's do the same thing
with support vector machines.
Importing the support vector classifier.

Italian: 
 Quindi, non preoccuparti se non l'hai ancora capito. 
 Ora stiamo usando anche un ingenuo classificatore Bayes. 
 Qui stiamo usando un classificatore di Bayes ingenuo gaussiano. 
 Il gaussiano è fondamentalmente un tipo di classificatore ingenuo di Bayes. 
 Non ho intenzione di approfondire questo argomento, 
 perché prolungherà la nostra sessione ancora di più. 
 Va bene. 
 E se vuoi saperne di più su questo, 
 Lascio un collegamento nella casella della descrizione. 
 Puoi leggere tutto sul classificatore ingenuo di Bayes. 
 Ora, la matematica dietro a questo è la stessa. 
 Usa l'ingenuo Bayes, usa il teorema di Bayes stesso. 
 Ora di nuovo, chiameremo questa classe, 
 e poi eseguiremo i nostri dati, 
 dati di addestramento su di esso. 
 Quindi, usando l'ingenuo classificatore di Bayes, 
 stiamo ottenendo una precisione di 0,86 
 sul set di dati di addestramento. 
 E sul set di dati di test, otteniamo una precisione del 67%. 
 Va bene. 
 Ora facciamo la stessa cosa con le macchine vettoriali di supporto. 
 Importazione del classificatore del vettore di supporto. 

English: 
And we are fitting the training
data into the algorithm.
We're getting an accuracy of around 61%
on the training data set and
33% on the testing data set.
Now guys, this accuracy and all
depends also on the problem statement.
It depends on the type of data
that support vector machines get.
Usually, SVM is very
good on large data sets.
Now since we have a very
small data set over here,
it's sort of obvious by
the accuracy, so less.
So guys, these were a couple
of classification algorithms
that I showed you here.
Now, because our KNN classifier
classified our data set more accurately
we'll look at the predictions
that the KNN classifier mean.
Okay
Now we're storing all our predicted values
in the predict variable.
now in order to show you the accuracy
of the KNN model,
we're going to us something
known as the confusion matrix.
So, a confusion matrix is a table
that is often used to describe

Italian: 
 E stiamo inserendo i dati di addestramento nell'algoritmo. 
 Stiamo ottenendo una precisione di circa il 61% 
 sul set di dati di addestramento e il 33% sul set di dati di test. 
 Ora ragazzi, questa precisione e tutto il resto 
 dipende anche dall'affermazione del problema. 
 Dipende dal tipo di dati 
 che supportano le macchine vettoriali. 
 Di solito, SVM è molto buono su grandi set di dati. 
 Dato che abbiamo un set di dati molto piccolo qui, 
 è abbastanza ovvio dalla precisione, quindi meno. 
 Quindi ragazzi, questi erano un paio di algoritmi di classificazione 
 che ti ho mostrato qui. 
 Ora, perché il nostro classificatore KNN 
 classificato il nostro set di dati in modo più accurato 
 esamineremo le previsioni che il classificatore KNN significa. 
 Va bene 
 Ora stiamo archiviando tutti i nostri valori previsti 
 nella variabile di previsione. 
 ora per mostrarti l'accuratezza 
 del modello KNN, 
 stiamo andando a noi qualcosa conosciuto come la matrice di confusione. 
 Quindi, una matrice di confusione è una tabella 
 che è spesso usato per descrivere 

Italian: 
 le prestazioni di un modello di classificazione. 
 Quindi, matrice di confusione in realtà 
 rappresenta una rappresentazione tabellare 
 dei valori effettivi rispetto a quelli previsti. 
 Quindi, quando disegni una matrice di confusione 
 sui valori effettivi rispetto a quelli previsti 
 per il classificatore KNN, 
 questo è l'aspetto della matrice di confusione. 
 Ora, abbiamo quattro righe qui. 
 Se vedi, abbiamo quattro righe. 
 La prima riga rappresenta le mele, 
 il secondo, il mandarino, il terzo rappresenta i limoni, 
 e quarto, arance. 
 Quindi questo quattro valore corrisponde a zero virgola zero, 
 il che significa che era in grado di classificare correttamente 
 tutte e quattro le mele. 
 Va bene. 
 Questo valore rappresenta una virgola uno, 
 il che significa che il nostro classificatore è classificato correttamente 
 questo come mandarini. 
 Questa matrice viene disegnata sui valori effettivi 
 rispetto ai valori previsti. 
 Ora, se guardi il sommario della matrice di confusione, 
 otterremo qualcosa noto come richiamo di precisione, 

English: 
the performance of a classification model.
So, confusion matrix actually
represents a tabular representation
of actual versus predicted values.
So when you draw a confusion matrix
on the actual versus predicted values
for the KNN classifier,
this is what the confusion
matrix looks like.
Now, we have four rows over here.
If you see, we have four rows.
The first row represents apples,
second, mandarin, third represents lemons,
and fourth, oranges.
So this four value corresponds
to zero comma zero,
meaning that it was
correctly able to classify
all the four apples.
Okay.
This one value represents one comma one,
meaning that our classifier
correctly classified
this as mandarins.
This matrix is drawn on actual values
versus predicted values.
Now, if you look at the summary
of the confusion matrix,
we'll get something known
as precision recall,

English: 
f1-score and support.
Precision is basically the ratio
of the correctly predicted
positive observations
to the total predicted
positive observations.
So the correctly predicted
positive observations are four,
and there are total of four apples
in the testing data set.
So that's where I get a precision of one.
Okay.
Recall on the other hand
is the ratio of correctly
predicted positive observations
to all the observations in the class.
Again, we've correctly
classified four apples,
and there are a total of four apples.
F1-score is nothing but
the weighted average
of your precision and your recall.
Okay, and your support basically denotes
the number of data points
that were correctly classified.
So, in our KNN algorithm,
since we got 100% accuracy,
all our data points were
correctly classified.
So, 15 out of 15 were correctly classified
because we have 100% accuracy.
So that's how you read a confusion matrix.

Italian: 
 Punteggio f1 e supporto. 
 La precisione è fondamentalmente il rapporto 
 delle osservazioni positive previste correttamente 
 rispetto al totale delle osservazioni positive previste. 
 Quindi le osservazioni positive previste correttamente sono quattro, 
 e ci sono un totale di quattro mele 
 nel set di dati di prova. 
 Quindi è qui che ottengo una precisione di uno. 
 Va bene. 
 Ricorda d'altra parte 
 è il rapporto tra le osservazioni positive previste correttamente 
 a tutte le osservazioni in classe. 
 Ancora una volta, abbiamo classificato correttamente quattro mele, 
 e ci sono un totale di quattro mele. 
 Il punteggio di F1 non è altro che la media ponderata 
 della tua precisione e del tuo richiamo. 
 Ok, e il tuo supporto fondamentalmente denota 
 il numero di punti dati 
 che sono stati classificati correttamente. 
 Quindi, nel nostro algoritmo KNN, poiché abbiamo ottenuto una precisione del 100%, 
 tutti i nostri punti dati sono stati classificati correttamente. 
 Quindi, 15 su 15 sono stati classificati correttamente 
 perché abbiamo una precisione del 100%. 
 Quindi è così che leggi una matrice di confusione. 

Italian: 
 Ok, hai quattro misure importanti, 
 precisione, richiamo, punteggio f1 e supporto. 
 Il punteggio F1 è solo il rapporto o la media ponderata 
 della tua precisione e del tuo richiamo. 
 Quindi la precisione è fondamentalmente quella correttamente prevista 
 osservazioni positive rispetto al totale previsto 
 osservazioni positive. 
 Il richiamo è un rapporto del previsto 
 osservazioni positive a tutte le tue osservazioni. 
 Quindi ragazzi, era tutto per la demo 
 di algoritmi di classificazione, 
 discutiamo algoritmi di regressione 
 e abbiamo discusso gli algoritmi di classificazione. 
 Ora è il momento di parlare di senza supervisione 
 algoritmi di apprendimento. 
 Sotto algoritmi di apprendimento non supervisionati 
 può provare a risolvere i problemi di clustering. 
 E l'algoritmo di clustering più importante che esiste, 
 noto come K-significa clustering. 
 Quindi discuteremo l'algoritmo K-means, 
 e mostrarti anche una demo in cui eseguiremo 
 l'algoritmo di clustering, 
 e stai vedendo come è stato implementato per risolvere un problema. 
 Ora, l'obiettivo principale dell'algoritmo K-means 

English: 
Okay, you have four important measures,
precision, recall, f1-score, and support.
F1-score is just the ratio
or the weighted average
of your precision and your recall.
So precision is basically
the correctly predicted
positive observations
to the total predicted
positive observations.
Recall is a ratio of the predicted
positive observations to
all your observations.
So guys, that was it for the demo
of classification algorithms,
we discuss regression algorithms
and we discussed
classification algorithms.
Now it's time to talk about unsupervised
learning algorithms.
Under unsupervised learning algorithms
may try to solve clustering problems.
And the most important
clustering algorithm there is,
known as K-means clustering.
So we're going to discuss
the K-means algorithm,
and also show you a demo
where we'll be executing
the clustering algorithm,
and you're seeing how it
implemented to solve a problem.
Now, the main aim of the K-means algorithm

English: 
is to group similar elements
or data points in to a cluster.
So it is basically the process by which
objects are classified
interest a predefined number of groups,
so that they are much
dissimilar as possible
from one group to another group,
but as much similar as
possible within each group.
Now what I mean is let's
say you're trying to cluster
this population into
four different groups,
such that each group has people within
a specified range of age.
Let's say group one is of people
between the age 18 and 22.
Similarly, group two is between 23 and 35.
Group three is 36 and 39
or something like that.
So let's say you're trying to cluster
people into different
groups based on their age.
So for such problems, you can make use
of the K-means clustering algorithm.
One of the major applications
of the clustering algorithm
is seen in targeted marketing.
I don't know how many of you are aware
of targeted marketing.

Italian: 
 consiste nel raggruppare elementi o punti dati simili in un cluster. 
 Quindi è fondamentalmente il processo mediante il quale 
 gli oggetti sono classificati 
 interessare un numero predefinito di gruppi, 
 in modo che siano molto dissimili possibile 
 da un gruppo a un altro gruppo, 
 ma quanto più possibile simile all'interno di ciascun gruppo. 
 Quello che voglio dire è che diciamo che stai cercando di raggruppare 
 questa popolazione in quattro diversi gruppi, 
 in modo tale che ogni gruppo abbia persone all'interno 
 un intervallo di età specificato. 
 Supponiamo che il gruppo uno sia di persone di età compresa tra 18 e 22 anni. 
 Allo stesso modo, il gruppo due è compreso tra 23 e 35. 
 Il gruppo tre è 36 e 39 o qualcosa del genere. 
 Quindi diciamo che stai cercando di raggruppare 
 persone in gruppi diversi in base alla loro età. 
 Quindi per tali problemi, puoi farne uso 
 dell'algoritmo di clustering K-means. 
 Una delle principali applicazioni dell'algoritmo di clustering 
 è visto nel marketing mirato. 
 Non so quanti di voi ne siano consapevoli 
 di marketing mirato. 

Italian: 
 Il marketing mirato consiste nel commercializzare un prodotto specifico 
 a un pubblico specifico. 
 Diciamo che stai cercando di vendere vestiti eleganti 
 o un bel set di borse e tutto il resto. 
 E il pubblico perfetto per questo prodotto 
 sarebbero adolescenti. 
 Sarebbero persone di età compresa tra 16 e 21 o 18 anni. 
 Quindi questo è il marketing target. 
 Il tuo prodotto è commercializzato a un pubblico specifico 
 che potrebbe interessarti. 
 Questo è il marketing mirato. 
 Quindi K significa che il clustering è utilizzato principalmente nel marketing mirato. 
 Molti siti di e-commerce come Amazon, Flipkart, eBay. 
 Tutti questi fanno uso di algoritmi di clustering 
 per indirizzare il pubblico giusto. 
 Ora vediamo come funziona il clustering K-means. 
 Ora la K in K-indica il numero di cluster. 
 Diciamo che ti do un set di dati contenente 20 punti, 
 e vuoi raggruppare questo set di dati in quattro cluster. 
 Ciò significa che il tuo K sarà uguale a quattro. 
 Quindi K sta sostanzialmente per il numero di cluster 

English: 
Targeted marketing is all about
marketing a specific product
to a specific audience.
Let's say you're trying
to sell fancy clothes
or a fancy set of bags and all of that.
And the perfect audience for such product
would be teenagers.
It would be people around
the age of 16 to 21 or 18.
So that is what target
marketing is all about.
Your product is marketed
to a specific audience
that might be interested in it.
That is what targeted marketing is.
So K means clustering is use
majorly in targeted marketing.
A lot of eCommerce websites
like Amazon, Flipkart, eBay.
All of these make use
of clustering algorithms
in order to target the right audience.
Now let's see how the
K-means clustering works.
Now the K in K-means denotes
the number of clusters.
Let's say I give you a data
set containing 20 points,
and you want to cluster this
data set into four clusters.
That means your K will be equal to four.
So K basically stands for
the number of clusters

Italian: 
 nel tuo set di dati, 
 o il numero di cluster che desideri formare. 
 Inizi definendo il numero K. 
 Ora per ciascuno di questi cluster, 
 sceglierai un centroide. 
 Quindi per ogni cluster, 
 ci sono quattro cluster nel nostro set di dati. 
 Per ciascuno di questi cluster, 
 selezionerai casualmente uno dei punti dati 
 come centroide. 
 Ora quello che farai è iniziare 
 calcolare la distanza da quel centroide 
 a ogni altro punto in quel gruppo. 
 Mentre continui a calcolare il centroide 
 e la distanza tra il centroide 
 e altri punti dati in quel cluster, 
 il tuo centroide continua a cambiare, 
 perché stai cercando di raggiungere la media di quel cluster. 
 Ogni volta che cerchi di raggiungere la media del cluster, 
 il centroide continua a spostarsi, 
 perché il centroide continua a convergere e continua a spostarsi. 
 Vediamo di capire come funziona K-means. 
 Diciamo che questo set di dati, questo ci viene dato. 
 Diciamo che se ti vengono dati punti casuali come questi 
 e ci viene chiesto l'algoritmo K-means su questo. 
 Quindi il tuo primo passo sarà 
 per decidere il numero di cluster che desideri creare. 

English: 
in your data set,
or the number of clusters
you want to form.
You start by defining the number K.
Now for each of these clusters,
you're going to choose a centroid.
So for every cluster,
there are four cluster in our data set.
For each of these clusters,
you'll randomly select
one of the data points
as a centroid.
Now what you'll do is you'll start
computing the distance from that centroid
to every other point in that cluster.
As you keep computing the centroid
and the distance between the centroid
and other data points in that cluster,
your centroid keep shifting,
because you're trying to get
to the average of that cluster.
Whenever you're trying to get
to the average of the cluster,
the centroid keeps shifting,
because the centroid keeps
converging and it keeps shifting.
Let's try to understand how K-means works.
Let's say that this data
set, this is given to us.
Let's say if you're given
random points like these
and you're asked to us
K-means algorithm on this.
So your first step will be
to decide the number of
clusters you want to create.

English: 
So let's say I wanna create
three different clusters.
So my K value will be equal to three.
The next step will be to provide
centroids of all the clusters.
What you'll do is initially
you'll randomly pick
three data points as your centroids
for your three different clusters.
So basically, this red denotes
the centroid for one cluster.
Blue denotes a centroid
for another cluster.
And this green dot denotes the centroid
for another cluster.
Now what happens in K-means,
the algorithm will calculate
the Euclidean distance of
the points from each centroid
and assign the points
to the closest cluster.
Now since we had three centroids here,
now what you're gonna do is
you're going to calculate the distance
from each and every data point
to all the centroids,
and you're going to check which data point
is closest to which centroid.
So let's say your data point A
is closest to the blue centroid.
So you're going to assign the data point A
to the blue cluster.
So based on the distance
between the centroid and the cluster,

Italian: 
 Quindi diciamo che voglio creare tre diversi cluster. 
 Quindi il mio valore K sarà uguale a tre. 
 Il prossimo passo sarà fornire 
 centroidi di tutti i cluster. 
 Quello che farai è inizialmente scegliere a caso 
 tre punti dati come centroidi 
 per i tuoi tre diversi cluster. 
 Quindi, fondamentalmente, questo rosso denota il centroide per un cluster. 
 Il blu indica un centroide per un altro cluster. 
 E questo punto verde indica il centroide 
 per un altro cluster. 
 Ora cosa succede in K-significa, 
 l'algoritmo calcolerà 
 la distanza euclidea dei punti da ciascun centroide 
 e assegna i punti al cluster più vicino. 
 Dato che qui abbiamo tre centroidi, 
 ora quello che farai è 
 calcolerai la distanza 
 da ogni punto dati 
 a tutti i centroidi, 
 e controllerai quale punto dati 
 è il più vicino a quale centroide. 
 Quindi diciamo che il tuo punto dati A 
 è il più vicino al centroide blu. 
 Quindi assegnerai il punto dati A 
 al grappolo blu. 
 Quindi in base alla distanza 
 tra il centroide e l'ammasso, 

Italian: 
 formerai tre diversi cluster. 
 Ora di nuovo, calcolerai il centroide 
 e formerai un nuovo cluster 
 che proviene da cluster migliori, 
 perché stai ricalcolando tutti quei centroidi. 
 Fondamentalmente, i tuoi centroidi rappresentano 
 la media di ciascuno dei tuoi cluster. 
 Quindi devi essere sicuro 
 che la tua media è effettivamente il centroide di ogni cluster. 
 Quindi continuerai a ricalcolare questi centroidi 
 finché la posizione del tuo centroide non cambia. 
 Ciò significa che il tuo centroide è in realtà il principale 
 o la media di quel particolare cluster. 
 Ecco come funziona K-means. 
 È molto semplice. 
 Tutto quello che devi fare è iniziare 
 definendo il valore K. 
 Dopodiché, devi farlo in modo casuale 
 scegli il numero di centroidi del caso. 
 Quindi calcolerai la distanza media 
 di ciascuno dei punti dati dai centroidi, 
 e stai per assegnare un punto dati 
 al centroide a cui è più vicino. 
 Ecco come funziona K-means. 
 È un processo molto semplice. 
 Tutto quello che devi fare è che noi dobbiamo continuare a iterare, 
 e devi ricalcolare il valore del centroide 

English: 
you're going to form
three different clusters.
Now again, you're going
to calculate the centroid
and you're going to form a new cluster
which is from better clusters,
because you're recomputing
all those centroids.
Basically, your centroids represent
the mean of each of your cluster.
So you need to make sure
that your mean is actually
the centroid of each cluster.
So you'll keep recomputing this centroids
until the position of your
centroid does not change.
That means that your
centroid is actually the main
or the average of that particular cluster.
So that's how K-means works.
It's very simple.
All you have to do is you have to start
by defining the K value.
After that, you have to randomly
pick the number of case centroids.
Then you're going to
calculate the average distance
of each of the data
points from the centroids,
and you're going to assign a data point
to the centroid it is closest to.
That's how K-means works.
It's a very simple process.
All you have to do is us
have to keep iterating,
and you have to recompute
the centroid value

English: 
until the centroid value does not change,
until you get a constant centroid value.
Now guys, again, in K-means,
you make use of distance
measures like Euclidean.
I've already discussed what
Euclidean is all about.
So, to summarize how K-means works,
you start by picking
the number of clusters.
Then you pick a centroid.
After that, you calculate the distance
of the objects to the centroid.
Then you group the data
points into specific clusters
based on their distance.
You have to keep computing the centroid
until each data point is
assigned to the closest cluster,
so that's how K-means works.
Now let's look at the elbow method.
The elbow method is basically
used in order to find out
the most optimum k value
for a particular problem.
So the elbow method is
quite simple actually.
You start off by computing
the sum of squared errors
for some values of K.
Now sum of squared error is basically
the sum of the squared distance

Italian: 
 finché il valore del centroide non cambia, 
 finché non si ottiene un valore del centroide costante. 
 Ora ragazzi, di nuovo, in K-significa, 
 usi misure di distanza come euclidee. 
 Ho già discusso di cosa sia Euclideo. 
 Quindi, per riassumere come funziona K-means, 
 inizi scegliendo il numero di cluster. 
 Quindi scegli un centroide. 
 Dopodiché, calcoli la distanza 
 degli oggetti al centroide. 
 Quindi raggruppa i punti dati in cluster specifici 
 in base alla loro distanza. 
 Devi continuare a calcolare il centroide 
 fino a quando ogni punto dati non viene assegnato al cluster più vicino, 
 ecco come funziona K-means. 
 Ora diamo un'occhiata al metodo del gomito. 
 Il metodo del gomito è fondamentalmente utilizzato per scoprirlo 
 il valore k più ottimale per un problema particolare. 
 Quindi il metodo del gomito è abbastanza semplice in realtà. 
 Si inizia calcolando la somma degli errori al quadrato 
 per alcuni valori di K. 
 Ora la somma dell'errore al quadrato è fondamentalmente 
 la somma della distanza al quadrato 

Italian: 
 tra ogni membro del cluster e il suo centroide. 
 Quindi fondamentalmente calcoli la somma degli errori al quadrato 
 per diversi valori di K. 
 Ad esempio, puoi considerare il valore K. 
 come due, quattro, sei, otto, 10, 12. 
 Considera tutti questi valori, 
 calcolare la somma degli errori al quadrato per ciascuno di questi valori. 
 Ora se tracci il tuo valore K. 
 contro la tua somma di errori al quadrato, 
 vedrai che l'errore diminuisce all'aumentare di K. 
 Questo perché il numero di cluster aumenta. 
 Se il numero di cluster aumenta, 
 significa che la distorsione si riduce. 
 La distorsione continua a diminuire 
 all'aumentare del numero di cluster. 
 Questo perché più cluster hai, 
 più vicino sarà ciascun centroide con i suoi punti dati. 
 Quindi, man mano che continui ad aumentare il numero di cluster, 
 diminuirà anche la tua distorsione. 
 Quindi l'idea del metodo del gomito è scegliere la K. 
 in cui la distorsione diminuisce bruscamente. 
 Quindi se guardi questo grafico a K uguale a quattro, 
 la distorsione diminuisce bruscamente. 

English: 
between each member of the
cluster and its centroid.
So you basically calculate
the sum of squared errors
for different values of K.
For example, you can consider K value
as two, four, six, eight, 10, 12.
Consider all these values,
compute the sum of squared
errors for each of these values.
Now if you plot your K value
against your sum of squared errors,
you will see that the error
decreases as K gets larger.
This is because the number
of clusters increase.
If the number of clusters increases,
it means that the distortion gets smaller.
The distortion keeps decreasing
as the number of clusters increase.
That's because the more clusters you have,
the closer each centroid
will be with its data points.
So as you keep increasing
the number of clusters,
your distortion will also decrease.
So the idea of the elbow
method is to choose the K
at which the distortion
decreases abruptly.
So if you look at this
graph at K equal to four,
the distortion is abruptly decreasing.

English: 
So this is how you find the value of K.
When your distortion drops abruptly,
that is the most optimal K value
you should be choosing for
your problem statement.
So let me repeat the idea
behind the elbow method.
You're just going to graph the
number of clusters you have
versus the squared sum of errors.
This graph will basically
give you the distortion.
Now the distortion
obviously going to decrease
if you increase the number of clusters,
and there is gonna be
one point in this graph
wherein the distortion
decreases very abruptly.
Now for that point, you need
to find out the value of K,
and that'll be your most optimal K value.
That's how you choose your K-means K value
and your KNN K value as well.
So guys, this is how the elbow method is.
It's very simple and it
can be easily implemented.
Now we're gonna look at a small demo
which involves K-means.
This is actually a very interesting demo.
Now guys, one interesting application
of clustering is in color
compression with images.

Italian: 
 Quindi è così che trovi il valore di K. 
 Quando la tua distorsione cala bruscamente, 
 questo è il valore K più ottimale 
 dovresti scegliere per la tua dichiarazione del problema. 
 Quindi lasciatemi ripetere l'idea alla base del metodo del gomito. 
 Stai solo per rappresentare graficamente il numero di cluster che hai 
 rispetto alla somma al quadrato degli errori. 
 Questo grafico fondamentalmente ti darà la distorsione. 
 Ora la distorsione ovviamente va a diminuire 
 se aumenti il ​​numero di cluster, 
 e ci sarà un punto in questo grafico 
 in cui la distorsione diminuisce molto bruscamente. 
 A questo punto, devi scoprire il valore di K, 
 e questo sarà il tuo valore K più ottimale. 
 È così che scegli il tuo valore K significa K. 
 e anche il tuo valore KNN K. 
 Quindi ragazzi, ecco com'è il metodo del gomito. 
 È molto semplice e può essere facilmente implementato. 
 Ora guarderemo una piccola demo 
 che coinvolge i mezzi K. 
 Questa è in realtà una demo molto interessante. 
 Ora ragazzi, un'applicazione interessante 
 del clustering è nella compressione del colore con le immagini. 

Italian: 
 Ad esempio, immagina di avere un'immagine 
 con milioni di colori in esso. 
 Nella maggior parte delle immagini, un gran numero di colori sarà inutilizzato, 
 e molti dei pixel nell'immagine 
 avrà colori simili o addirittura identici. 
 Ora hai troppi colori nella tua immagine 
 rende molto difficile per l'elaborazione delle immagini un'analisi dell'immagine. 
 Quindi questa è un'area in cui i mezzi K vengono applicati molto spesso. 
 Viene applicato nella segmentazione delle immagini, nell'analisi delle immagini, 
 compressione delle immagini e così via. 
 Allora cosa faremo in questa demo 
 useremo un'immagine 
 dal set di dati scikit-learn. 
 Ok, è un'immagine precostruita, 
 e per questo dovrai installare il pacchetto cuscino. 
 Useremo un'immagine 
 formano il modulo del set di dati scikit-learn. 
 Quindi inizieremo importando le librerie come al solito, 
 e caricheremo la nostra immagine come Cina. 
 L'immagine è china.jpg, 
 e lo caricheremo in una variabile chiamata china. 
 Quindi se vuoi guardare la forma della nostra immagine, 
 puoi eseguire questo comando. 
 Quindi otterremo un valore tridimensionale. 

English: 
For example, imagine you have an image
with millions of colors in it.
In most images, a large number
of colors will be unused,
and many of the pixels in the image
will have similar or
even identical colors.
Now having too many colors in your image
makes it very hard for image
processing an image analysis.
So this is one area where
K-means is applied very often.
It's applied in image
segmentation, image analysis,
image compression, and so on.
So what we're gonna do in this demo
is we are going to use an image
from the scikit-learn data set.
Okay, it is a prebuilt image,
and you will require to install
the pillow package for this.
We're going to use an image
form the scikit-learn data set module.
So we'll begin by importing
the libraries as usual,
and we'll be loading our image as china.
The image is china.jpg,
and we'll be loading this
in a variable called china.
So if you wanna look at
the shape of our image,
you can run this command.
So we're gonna get a
three-dimensional value.

Italian: 
 Quindi otteniamo 427 virgola 640 virgola tre. 
 Ora questo è fondamentalmente un array tridimensionale 
 di dimensioni, altezza, larghezza e RGB. 
 Contiene contributi rossi, blu, verdi, 
 come numeri interi da zero a 255. 
 Quindi, i valori dei tuoi pixel vanno da zero a 255, 
 e penso che zero stia per il tuo nero, 
 e 255 rappresenta il bianco se non sbaglio. 
 E fondamentalmente, questo è ciò che denota questa forma di matrice. 
 Ora in un modo possiamo visualizzare questo set di pixel 
 è come una nuvola di punti in uno spazio colore tridimensionale. 
 Quindi quello che faremo è rimodellare i dati 
 e riscalare il colore, 
 in modo che si trovino tra zero e uno. 
 Quindi l'output di questo sarà ora un array bidimensionale. 
 Quindi, fondamentalmente, possiamo visualizzare questi pixel 
 in questo spazio colore. 
 Ora quello che faremo è provare 
 e traccia i nostri pixel. 
 Abbiamo un set di dati davvero enorme 
 che contiene circa 16 milioni di possibili colori. 
 Quindi questo denota un set di dati molto, molto grande. 

English: 
So we're getting 427
comma 640 comma three.
Now this is basically a
three dimensional array
of size, height, width, and RGB.
It contains red, blue,
green contributions,
as integers from zero to 255.
So, your pixel values
range between zero and 255,
and I think zero stands for your black,
and 255 represents white if I'm not wrong.
And basically, that's what
this array shape denotes.
Now one way we can view this set of pixels
is as a cloud of points in a
three dimensional color space.
So what we'll do is we
will reshape the data
and rescale the color,
so that they lie between zero and one.
So the output of this will be
a two dimensional array now.
So basically, we can
visualize these pixels
in this color space.
Now what we're gonna do is we're gonna try
and plot our pixels.
We have a really huge data set
which contains around 16
million possible colors.
So this denotes a very,
very large data set.

English: 
So, let me show you what it looks like.
We have red against green
and red against blue.
These are our RGB value,
and we can have around 16 million possible
combination of colors.
The data set is way too
large or us to compute.
So what we'll do is we will
reduce these 16 million colors
to just 16 colors.
We can do that by using
K-means clustering,
because we can cluster similar
colors into similar groups.
So this is exactly where
we'll be importing K-means.
Now, one thing to note here is
because we're dealing with
a very large data set,
we will use the MinibatchKMeans.
This operates on subsets of the data
to compute the results more
quickly and more accurately,
just like the K-means algorithm,
because I told you this
data set is really huge.
Even though this is a single image,
the number of pixel combinations
can come up to 16 million,
which is a lot.
Now each pixel is
considered as a data point
when you've taken image
into consideration.

Italian: 
 Quindi, lascia che ti mostri come appare. 
 Abbiamo rosso contro verde e rosso contro blu. 
 Questi sono il nostro valore RGB, 
 e possiamo avere circa 16 milioni possibili 
 combinazione di colori. 
 Il set di dati è troppo grande o noi per il calcolo. 
 Quindi quello che faremo è ridurre questi 16 milioni di colori 
 a soli 16 colori. 
 Possiamo farlo utilizzando K-means clustering, 
 perché possiamo raggruppare colori simili in gruppi simili. 
 Quindi questo è esattamente dove importeremo K-means. 
 Ora, una cosa da notare qui è 
 perché abbiamo a che fare con un set di dati molto ampio, 
 useremo MinibatchKMeans. 
 Funziona su sottoinsiemi di dati 
 per calcolare i risultati in modo più rapido e accurato, 
 proprio come l'algoritmo K-means, 
 perché ti ho detto che questo set di dati è davvero enorme. 
 Anche se questa è una singola immagine, 
 il numero di combinazioni di pixel può arrivare fino a 16 milioni, 
 che è molto. 
 Ora ogni pixel viene considerato come un punto dati 
 quando hai preso in considerazione l'immagine. 

English: 
When you have data points and data values,
that's different.
When you're starting an image
for image classification
or image segmentation,
each and every pixel is considered.
So, basically, you're building matrices
of all of these pixel values.
So having 16 million pixels
is a very huge data set.
So, for that reason, we'll
be using the MinibatchKMeans.
It's very similar to K-means.
The only difference is that it'll operate
on subsets of the data.
Because the data set is too
huge, it'll operate on subsets.
So, basically, we're making use of K-means
in order to cluster these 16 million
color combinations into just 16 colors.
So basically, we're gonna form 16 clusters
in this data set.
Now, the result is the
recoloring of the original pixel
where every pixel is assigned the color
of its closest cluster center.
Let's say that there
are a couple of colors
which are very close to green.
So we're going to cluster
all of these similar colors
into one cluster.

Italian: 
 Quando si dispone di punti dati e valori di dati, 
 è diverso. 
 Quando si avvia un'immagine per la classificazione delle immagini 
 o segmentazione di immagini, 
 ogni pixel viene considerato. 
 Quindi, fondamentalmente, stai costruendo matrici 
 di tutti questi valori di pixel. 
 Quindi avere 16 milioni di pixel è un set di dati enorme. 
 Quindi, per questo motivo, utilizzeremo MinibatchKMeans. 
 È molto simile a K-means. 
 L'unica differenza è che funzionerà 
 su sottoinsiemi di dati. 
 Poiché il set di dati è troppo grande, funzionerà su sottoinsiemi. 
 Quindi, fondamentalmente, stiamo usando i mezzi K. 
 per raggruppare questi 16 milioni 
 combinazioni di colori in soli 16 colori. 
 Quindi fondamentalmente formeremo 16 cluster 
 in questo set di dati. 
 Ora, il risultato è la ricolorazione del pixel originale 
 dove a ogni pixel viene assegnato il colore 
 del suo centro del cluster più vicino. 
 Diciamo che ci sono un paio di colori 
 che sono molto vicini al verde. 
 Quindi raggrupperemo tutti questi colori simili 
 in un cluster. 

English: 
We'll keep doing this
until we get 16 clusters.
So, obviously, to do this, we'll be using
the clustering method, K-means.
Let me show you what
the output looks like.
So, basically, this was the original image
from the scikit data set,
and this is the 16-color segmented image.
Basically, we have only 16 colors here.
Here we can have around 16 million colors.
Here there are only 16 colors.
If you can't also, you can
only see particular colors.
Now obviously there's a lot
of distortion over here,
but this is how you study an image.
Remove all the extra contrast
that is there in an image.
You try to reduce the pixel
to a smaller set of data as possible.
The more varied pixels you have,
the harder it is going to be for you
to study the image for analysis.
Now, obviously, there are some details
which are lost in this.
But overall, the image
is still recognizable.
So here, basically, we've compressed this
with a compression factor
of around one million,
because each cluster will have around
one million data points in it,
or pixel values in it, or pixels in it.

Italian: 
 Continueremo a farlo fino a quando non avremo 16 cluster. 
 Quindi, ovviamente, per fare questo, useremo 
 il metodo di clustering, K-means. 
 Lascia che ti mostri come appare l'output. 
 Quindi, fondamentalmente, questa era l'immagine originale 
 dal set di dati scikit, 
 e questa è l'immagine segmentata a 16 colori. 
 Fondamentalmente, abbiamo solo 16 colori qui. 
 Qui possiamo avere circa 16 milioni di colori. 
 Qui ci sono solo 16 colori. 
 Se non puoi anche tu, puoi vedere solo colori particolari. 
 Ora ovviamente c'è molta distorsione qui, 
 ma è così che studi un'immagine. 
 Rimuovi tutto il contrasto extra presente in un'immagine. 
 Provi a ridurre il pixel 
 a un insieme di dati più piccolo possibile. 
 I pixel più vari che hai, 
 più difficile sarà per te 
 studiare l'immagine per l'analisi. 
 Ora, ovviamente, ci sono alcuni dettagli 
 che si perdono in questo. 
 Ma nel complesso, l'immagine è ancora riconoscibile. 
 Quindi qui, fondamentalmente, abbiamo compresso questo 
 con un fattore di compressione di circa un milione, 
 perché ogni cluster avrà intorno 
 un milione di punti dati in esso, 
 o valori di pixel in esso, o pixel in esso. 

English: 
Now this is an interesting
application of K-means.
There are actually better ways
you can compress information on image.
So, basically, I showed you this example
because I want you to understand
the power of K-means algorithm.
You can cluster a data
set that is this huge
into just 16 colors.
Initially, there were 16 million,
and now you can cluster it to 16 colors.
So guys, K-means plays a very huge role
in computer vision image processing,
object detection, and so on.
It's a very important algorithm
when it comes to detecting objects.
So in self-driving cars and all
can make use of such algorithms.
So guys, that was all
about unsupervised learning
and supervised learning.
Now it's the last type
of machine learning,
which is reinforcement learning.
Now this is actually
a very interesting part
of machine learning,
and it is quite difference from
supervised and unsupervised.
So we'll be discussing all the concepts
that are involved in
reinforcement learning.
And also reinforcement learning
is a little more advanced.
When I say advanced, I
mean that it's been used

Italian: 
 Questa è un'interessante applicazione di K-means. 
 In realtà ci sono modi migliori 
 puoi comprimere le informazioni sull'immagine. 
 Quindi, fondamentalmente, ti ho mostrato questo esempio 
 perché voglio che tu capisca 
 la potenza dell'algoritmo K-means. 
 Puoi raggruppare un set di dati così enorme 
 in soli 16 colori. 
 Inizialmente, c'erano 16 milioni, 
 e ora puoi raggrupparlo in 16 colori. 
 Quindi ragazzi, K-means gioca un ruolo molto importante 
 nell'elaborazione delle immagini per visione artificiale, 
 rilevamento di oggetti e così via. 
 È un algoritmo molto importante 
 quando si tratta di rilevare oggetti. 
 Quindi nelle auto a guida autonoma e tutto il resto 
 può fare uso di tali algoritmi. 
 Quindi ragazzi, era tutta una questione di apprendimento senza supervisione 
 e apprendimento supervisionato. 
 Ora è l'ultimo tipo di apprendimento automatico, 
 che è l'apprendimento per rinforzo. 
 Ora questo è in realtà 
 una parte molto interessante dell'apprendimento automatico, 
 ed è molto diverso da supervisionato e non supervisionato. 
 Quindi discuteremo tutti i concetti 
 coinvolti nell'apprendimento per rinforzo. 
 E anche l'apprendimento per rinforzo 
 è un po 'più avanzato. 
 Quando dico avanzato, intendo che è stato utilizzato 

English: 
in applications such as self-driving cars
and is also a part of
a lot of deep learning applications,
such as AlphaGo and so on.
So, reinforcement learning
has a different concept to it itself.
So we'll be discussing
all the concepts under it.
So just to brush up your information
about reinforcement learning,
reinforcement learning is
a part of machine learning
where an agent is put in
an unknown environment,
and he learns how to
behave in this environment
by performing certain actions
and observing the rewards
which it gets from these actions.
Reinforcement learning is all about taking
an appropriate action in
order to maximize the reward
in a particular situation.
Now let's understand
reinforcement learning
with an analogy.
Let's consider a scenario
wherein a baby is learning how to walk.
This scenario can go about
in two different ways.
The first is baby starts walking
and it makes it to the candy.
And since the candy is the end goal,
the baby is very happy and it's positive.

Italian: 
 in applicazioni come auto a guida autonoma 
 ed è anche una parte di 
 molte applicazioni di deep learning, 
 come AlphaGo e così via. 
 Quindi, apprendimento per rinforzo 
 ha un concetto diverso rispetto a se stesso. 
 Quindi discuteremo tutti i concetti sottostanti. 
 Quindi solo per rispolverare le tue informazioni 
 sull'apprendimento per rinforzo, 
 l'apprendimento per rinforzo fa parte dell'apprendimento automatico 
 dove un agente si trova in un ambiente sconosciuto, 
 e impara a comportarsi in questo ambiente 
 eseguendo determinate azioni e osservando le ricompense 
 che ottiene da queste azioni. 
 L'apprendimento per rinforzo consiste nel prendere 
 un'azione appropriata per massimizzare la ricompensa 
 in una situazione particolare. 
 Ora capiamo l'apprendimento per rinforzo 
 con un'analogia. 
 Consideriamo uno scenario 
 in cui un bambino sta imparando a camminare. 
 Questo scenario può svolgersi in due modi diversi. 
 Il primo è che il bambino inizia a camminare 
 e lo fa per le caramelle. 
 E poiché le caramelle sono l'obiettivo finale, 
 il bambino è molto felice ed è positivo. 

Italian: 
 Significa che il bambino è felice 
 e ha ricevuto una ricompensa positiva. 
 Ora, il secondo modo in cui questo può entrare 
 è che il bambino inizia a camminare, 
 ma cade a causa di qualche ostacolo tra. 
 È davvero carino. 
 Quindi il bambino si fa male e non arriva alle caramelle. 
 È negativo perché il bambino è triste 
 e riceve una ricompensa negativa. 
 Quindi, proprio come noi umani impariamo dai nostri errori 
 per tentativi ed errori, 
 anche l'apprendimento per rinforzo è simile. 
 Qui abbiamo un agente, 
 e in questo caso l'agente è il bambino, 
 e la ricompensa sono le caramelle 
 con molti ostacoli in mezzo. 
 L'agente dovrebbe trovare 
 il miglior percorso possibile per raggiungere la ricompensa. 
 Questo è l'obiettivo principale dell'apprendimento per rinforzo. 
 Ora il processo di apprendimento per rinforzo 
 ha due componenti importanti. 
 Ha qualcosa noto come agente 
 e qualcosa noto come ambiente. 
 Ora l'ambiente è 
 l'ambiente in cui agisce l'agente, 
 e l'agente rappresenta il 
 algoritmo di apprendimento per rinforzo. 

English: 
Meaning, the baby is happy
and it received a positive reward.
Now, the second way this can go in
is that the baby starts walking,
but it falls due to some hurdle between.
That's really cute.
So the baby gets hurt and
it doesn't get to the candy.
It's negative because the baby is sad
and it receives a negative reward.
So just like how we humans
learn from our mistakes
by trial and error,
reinforcement learning is also similar.
Here we have an agent,
and in this case, the agent is the baby,
and the reward is the candy
with many hurdles in between.
The agent is supposed to find
the best possible path
to reach the reward.
That is the main goal of
reinforcement learning.
Now the reinforcement learning process
has two important components.
It has something known as an agent
and something known as an environment.
Now the environment is
the setting that the agent is acting on,
and the agent represents the
reinforcement learning algorithm.

English: 
The whole reinforcement
learning is basically the agent.
The environment is the setting
in which you place the agent,
and it is the setting
wherein the agent takes various action.
The reinforcement learning process
starts when the environment
sends a state to the agent.
Now the agent, based on
the observations it makes,
it takes an action in
response to that state.
Now, in turn, the environment
will send the next state
and the respective
reward back to the agent.
Now the agent will update its knowledge
with the reward returned
by the environment
to evaluate its last actions.
The loop continues until the environment
sends a terminal state
which means that the
agent has accomplished
all of its task.
To understand this better,
let's suppose that our agent
is playing Counter Strike.
The reinforcement learning process
can be broken down into a couple of steps.
The first step is the
reinforcement learning agent,
which is basically the player,
he collects a state, S
naught, from the environment.
So whenever you're playing Counter Strike,

Italian: 
 L'intero apprendimento per rinforzo è fondamentalmente l'agente. 
 L'ambiente fa da cornice 
 in cui collochi l'agente, 
 ed è l'ambientazione 
 in cui l'agente intraprende varie azioni. 
 Il processo di apprendimento per rinforzo 
 si avvia quando l'ambiente invia uno stato all'agente. 
 Ora l'agente, in base alle osservazioni che fa, 
 esegue un'azione in risposta a quello stato. 
 Ora, a sua volta, l'ambiente invierà lo stato successivo 
 e la rispettiva ricompensa all'agente. 
 Ora l'agente aggiornerà la sua conoscenza 
 con la ricompensa restituita dall'ambiente 
 per valutare le sue ultime azioni. 
 Il ciclo continua fino all'ambiente 
 invia uno stato terminale 
 il che significa che l'agente ha realizzato 
 tutto il suo compito. 
 Per capirlo meglio, 
 supponiamo che il nostro agente stia giocando a Counter Strike. 
 Il processo di apprendimento per rinforzo 
 può essere suddiviso in un paio di passaggi. 
 Il primo passo è l'agente di apprendimento per rinforzo, 
 che è fondamentalmente il giocatore, 
 raccoglie uno stato, S nulla, dall'ambiente. 
 Quindi ogni volta che giochi a Counter Strike, 

English: 
you start off with
stage zero or stage one.
You start off from the first level.
Now based on this state, S naught,
the reinforcement learning agent
will take an action, A naught.
So guys, action can be
anything that causes a result.
Now if the agent moves
left or right in the game,
that is also considered as an action.
So initially, the action will be random,
because the agent has no
clue about the environment.
Let's suppose that you're
playing Counter Strike
for the first time.
You have no idea about how to play it,
so you'll just start randomly.
You'll just go with whatever,
whichever action you think is right.
Now the environment is now in a stage one.
After passing stage zero,
the environment will go into stage one.
Once the environment updates
the stage to stage on,
the reinforcement learning agent
will get a reward R one
from the environment.
This reward can be anything
like additional points
or you'll get additional weapons
when you're playing Counter Strike.
Now this reinforcement
learning loop will go on

Italian: 
 inizi con la fase zero o la fase uno. 
 Inizi dal primo livello. 
 Ora sulla base di questo stato, niente, 
 l'agente di apprendimento per rinforzo 
 farà un'azione, niente. 
 Quindi ragazzi, l'azione può essere qualsiasi cosa che provochi un risultato. 
 Ora se l'agente si sposta a sinistra oa destra nel gioco, 
 anche questo è considerato un'azione. 
 Quindi, inizialmente, l'azione sarà casuale, 
 perché l'agente non ha idea dell'ambiente. 
 Supponiamo che tu stia giocando a Counter Strike 
 per la prima volta. 
 Non hai idea di come suonarlo, 
 quindi inizierai in modo casuale. 
 Andrai con qualunque cosa 
 qualunque azione pensi sia giusta. 
 Ora l'ambiente è ora in una fase uno. 
 Dopo aver superato lo stadio zero, 
 l'ambiente entrerà nella fase uno. 
 Una volta che l'ambiente aggiorna il palco su cui mettere in scena, 
 l'agente di apprendimento per rinforzo 
 riceverà una ricompensa R dall'ambiente. 
 Questa ricompensa può essere qualcosa di simile a punti aggiuntivi 
 o otterrai armi aggiuntive 
 quando giochi a Counter Strike. 
 Ora questo ciclo di apprendimento per rinforzo andrà avanti 

English: 
until the agent is dead or
reaches the destination,
and it continuously outputs
a sequence of state action and rewards.
This exactly how
reinforcement learning works.
It starts with the agent
being put in an environment,
and the agent will randomly take
some action in state zero.
After taking an action,
depending on his action,
he'll either get a reward
and move on to state number one,
or he will either die and
go back to the same state.
So this will keep happening
until the agent reaches the last stage,
or he dies or reaches his destination.
That's exactly how
reinforcement learning works.
Now reinforcement learning is the logic
behind a lot of games these days.
It's being implemented in
various games, such as Dota.
A lot of you who play
Dota might know this.
Now let's talk about a couple of
reinforcement learning
definitions or terminologies.
So, first, we have something
known as the agent.
Like I mentioned, an agent
is the reinforcement learning algorithm
that learns from trial and error.
An agent is the one
that takes actions like,
for example, a solider in Counter Strike

Italian: 
 finché l'agente non è morto o raggiunge la destinazione, 
 ed emette continuamente 
 una sequenza di azioni e ricompense statali. 
 Questo è esattamente il modo in cui funziona l'apprendimento per rinforzo. 
 Inizia con l'agente che viene inserito in un ambiente, 
 e l'agente prenderà a caso 
 qualche azione in stato zero. 
 Dopo aver eseguito un'azione, a seconda della sua azione, 
 o riceverà una ricompensa 
 e passare allo stato numero uno, 
 oppure morirà e tornerà nello stesso stato. 
 Quindi questo continuerà a succedere 
 fino a quando l'agente non raggiunge l'ultima fase, 
 oppure muore o arriva a destinazione. 
 È esattamente così che funziona l'apprendimento per rinforzo. 
 Ora l'apprendimento per rinforzo è la logica 
 dietro a molti giochi in questi giorni. 
 Viene implementato in vari giochi, come Dota. 
 Molti di voi che interpretano Dota potrebbero saperlo. 
 Ora parliamo di un paio di 
 definizioni o terminologie dell'apprendimento per rinforzo. 
 Quindi, per prima cosa, abbiamo qualcosa noto come agente. 
 Come ho detto, un agente 
 è l'algoritmo di apprendimento per rinforzo 
 che impara da tentativi ed errori. 
 Un agente è quello che intraprende azioni come, 
 per esempio, un soldato in Counter Strike 

English: 
navigating through the game,
going right, left, and all of that.
Is the agent taking some action?
The environment is because the world
through which the agent moves.
Now the environment, basically,
takes the agent's current
state and action as input,
and returns the agent's reward
and its next state as the output.
Next, we have something known as action.
All the possible steps
that an agent can take
is considered as an action.
Next, we have something known as state.
Now the current condition
returned by the environment
is known as a state.
Reward is an instant
return from the environment
to apprise the last action
of the reinforcement learning agent.
All of these terms are
pretty understandable.
Next, we have something known as policy.
Now, policy is the approach
that the agent uses
to determine the next action
based on the current state.
Policy is basically the approach
with which you go around
in the environment.
Next, we have something known as value.

Italian: 
 navigando nel gioco, 
 andando a destra, a sinistra e tutto il resto. 
 L'agente sta intraprendendo un'azione? 
 L'ambiente è perché il mondo 
 attraverso cui si muove l'agente. 
 Ora l'ambiente, fondamentalmente, 
 prende come input lo stato e l'azione correnti dell'agente, 
 e restituisce la ricompensa dell'agente 
 e il suo stato successivo come output. 
 Successivamente, abbiamo qualcosa noto come azione. 
 Tutti i passaggi possibili che un agente può intraprendere 
 è considerata un'azione. 
 Successivamente, abbiamo qualcosa noto come stato. 
 Ora la condizione attuale restituita dall'ambiente 
 è conosciuto come uno stato. 
 La ricompensa è un ritorno immediato dall'ambiente 
 per apprendere l'ultima azione 
 dell'agente di apprendimento per rinforzo. 
 Tutti questi termini sono abbastanza comprensibili. 
 Successivamente, abbiamo qualcosa noto come politica. 
 Ora, la politica è l'approccio utilizzato dall'agente 
 per determinare l'azione successiva 
 in base allo stato attuale. 
 La politica è fondamentalmente l'approccio 
 con cui ti muovi nell'ambiente. 
 Successivamente, abbiamo qualcosa noto come valore. 

English: 
Now, the expected long-term
return with a discount,
as opposed to the short-term rewards R,
is known as value.
Now, terms like discount and value,
I'll be discussing in the upcoming slides.
Action-value is also very
similar to the value,
except it takes an extra parameter
known as the current action.
Don't worry about action and Q value.
We'll talk about all of
this in the upcoming slides.
So make yourself familiar
with these terms,
because we'll be seeing a
whole lot of them this session.
So, before we move any further,
let's discuss a couple of more
reinforcement learning concepts.
Now we have something known
as the reward maximization.
So if you haven't realized it already,
the basic aim of
reinforcement learning agent
is to maximize the report.
How does this happen?
Let's try to understand this
in a little more detail.
So, basically the agent
works based on the theory
of reward maximization.
Now that's exactly why
the agent must be trained
in such a way that he
takes the best action,
so that the reward is maximal.

Italian: 
 Ora, l'atteso rendimento a lungo termine con uno sconto, 
 al contrario dei premi a breve termine R, 
 è noto come valore. 
 Ora, termini come sconto e valore, 
 Discuterò nelle prossime diapositive. 
 Il valore dell'azione è anche molto simile al valore, 
 tranne che richiede un parametro aggiuntivo 
 nota come azione corrente. 
 Non preoccuparti dell'azione e del valore Q. 
 Di tutto questo parleremo nelle prossime diapositive. 
 Quindi familiarizza con questi termini, 
 perché ne vedremo molti in questa sessione. 
 Quindi, prima di andare avanti, 
 discutiamo ancora un paio 
 concetti di apprendimento per rinforzo. 
 Ora abbiamo qualcosa noto come massimizzazione della ricompensa. 
 Quindi se non l'hai già capito, 
 l'obiettivo fondamentale dell'agente di apprendimento per rinforzo 
 è massimizzare il rapporto. 
 Come avviene questo? 
 Proviamo a capirlo un po 'più in dettaglio. 
 Quindi, fondamentalmente l'agente funziona in base alla teoria 
 di massimizzazione della ricompensa. 
 Questo è esattamente il motivo per cui l'agente deve essere addestrato 
 in modo tale da intraprendere l'azione migliore, 
 in modo che la ricompensa sia massima. 

English: 
Now let me explain a reward maximization
with a small example.
Now in this figure, you
can see there is a fox,
there is some meat, and there is a tiger.
Our reinforcement
learning agent is the fox.
His end goal is to eat
the maximum amount of meat
before being eaten by the tiger.
Now because the fox is a very clever guy,
he eats the meat that is closer to him,
rather than the meat which
is close to the tiger,
because the closer he gets to the tiger,
the higher are his
chances of getting killed.
That's pretty obvious.
Even if the reward near the
tiger are bigger meat chunks,
that'll be discounted.
This is exactly what discount is.
We just discussed it
in the previous slide.
This is done because of
the uncertainty factor
that the tiger might
actually kill the fox.
Now the next thing to
understand is how discounting
of a reward works.
Now, in order to understand discounting,
we define a discount rate called gamma.
The value of gamma is
between zero and one.
And the smaller the gamma,

Italian: 
 Ora lascia che ti spieghi una massimizzazione della ricompensa 
 con un piccolo esempio. 
 Ora in questa figura, puoi vedere che c'è una volpe, 
 c'è della carne e c'è una tigre. 
 Il nostro agente di apprendimento per rinforzo è la volpe. 
 Il suo obiettivo finale è mangiare la massima quantità di carne 
 prima di essere mangiato dalla tigre. 
 Ora, poiché la volpe è un ragazzo molto intelligente, 
 mangia la carne che gli è più vicina, 
 piuttosto che la carne che è vicina alla tigre, 
 perché più si avvicina alla tigre, 
 maggiori sono le sue possibilità di essere ucciso. 
 È abbastanza ovvio. 
 Anche se la ricompensa vicino alla tigre sono pezzi di carne più grandi, 
 che sarà scontato. 
 Questo è esattamente ciò che è lo sconto. 
 Ne abbiamo appena discusso nella diapositiva precedente. 
 Questo viene fatto a causa del fattore di incertezza 
 che la tigre potrebbe effettivamente uccidere la volpe. 
 Ora la prossima cosa da capire è come fare sconti 
 di una ricompensa funziona. 
 Ora, per capire lo sconto, 
 definiamo un tasso di sconto chiamato gamma. 
 Il valore di gamma è compreso tra zero e uno. 
 E più piccola è la gamma, 

English: 
the larger the discount and so on.
Now don't worry about these concepts,
gamma and all of that.
We'll be seeing that in
our practical demo today.
So let's move on and
discuss another concept
known as exploration and
exploitation trade-off.
Now guys, before that, I
hope all of you understood
reward maximization.
Basically, the main aim
behind reinforcement learning
is to maximize the rewards
that an agent can get.
Now, one of the most important concepts
in reinforcement learning is
the exploration and
exploitation trade-off.
Now, exploration, like the name suggests,
it's about exploring and capturing
more information about an environment.
On the other hand, exploitation is about
using the already known
exploited information
to heighten your reward.
Now consider the same example
that we saw previously.
So here the fox eats only the meat chunks
which are close to him.
He doesn't eat the bigger meat chunks
which are at the top,
even though the bigger meat chunks
would get him more reward.

Italian: 
 maggiore è lo sconto e così via. 
 Ora non preoccuparti di questi concetti, 
 gamma e tutto il resto. 
 Lo vedremo oggi nella nostra demo pratica. 
 Quindi andiamo avanti e discutiamo un altro concetto 
 noto come trade-off di esplorazione e sfruttamento. 
 Ora ragazzi, prima di quello, spero che tutti voi abbiate capito 
 massimizzazione della ricompensa. 
 Fondamentalmente, l'obiettivo principale dietro l'apprendimento per rinforzo 
 è massimizzare le ricompense che un agente può ottenere. 
 Ora, uno dei concetti più importanti 
 nell'apprendimento per rinforzo lo è 
 il trade-off tra esplorazione e sfruttamento. 
 Ora, l'esplorazione, come suggerisce il nome, 
 si tratta di esplorare e catturare 
 ulteriori informazioni su un ambiente. 
 D'altra parte, si tratta di sfruttamento 
 utilizzando le informazioni già note sfruttate 
 per aumentare la tua ricompensa. 
 Consideriamo ora lo stesso esempio 
 che abbiamo visto in precedenza. 
 Quindi qui la volpe mangia solo i pezzi di carne 
 che gli sono vicini. 
 Non mangia i pezzi di carne più grandi 
 che sono in alto, 
 anche se i pezzi di carne più grandi 
 gli avrebbe procurato una ricompensa maggiore. 

English: 
So if the fox only focuses
on the closest reward,
he will never reach
the big chunks of meat.
This process is known as exploitation.
But if the fox decide to explore a bit,
it can find the bigger reward,
which is the big chunk of meat.
This is known as exploration.
So this is the difference
between exploitation
and exploration.
It's always best if the agent
explores the environment,
tries to figure out a
way in which we can get
the maximum number of rewards.
Now let's discuss
another important concept
in reinforcement learning,
which is known as the
Markov's decision process.
Basically, the mathematical
approach for mapping
a solution in reinforcement learning
is called Markov's decision process.
It's the mathematics behind
reinforcement learning.
Now, in a way, the purpose
of reinforcement learning
is to solve a Markov's decision process.
Now in order to get a solution,
there are a set of parameters
in a Markov's decision process.
There's a set of actions A,
there's a set of states S,

Italian: 
 Quindi se la volpe si concentra solo sulla ricompensa più vicina, 
 non raggiungerà mai i grossi pezzi di carne. 
 Questo processo è noto come sfruttamento. 
 Ma se la volpe decide di esplorare un po ', 
 può trovare la ricompensa più grande, 
 che è il grosso pezzo di carne. 
 Questo è noto come esplorazione. 
 Quindi questa è la differenza tra lo sfruttamento 
 ed esplorazione. 
 È sempre meglio se l'agente esplora l'ambiente, 
 cerca di capire un modo in cui possiamo ottenere 
 il numero massimo di premi. 
 Ora parliamo di un altro concetto importante 
 nell'apprendimento per rinforzo, 
 che è noto come processo decisionale di Markov. 
 Fondamentalmente, l'approccio matematico per la mappatura 
 una soluzione nell'apprendimento per rinforzo 
 si chiama processo decisionale di Markov. 
 È la matematica dietro l'apprendimento per rinforzo. 
 Ora, in un certo senso, lo scopo dell'apprendimento per rinforzo 
 è risolvere il processo decisionale di Markov. 
 Ora, per ottenere una soluzione, 
 ci sono una serie di parametri 
 in un processo decisionale di Markov. 
 C'è una serie di azioni A, 
 c'è un insieme di stati S, 

English: 
a reward R, policy pi, and value V.
Also, this image represents
how a reinforcement learning works.
There's an agent.
The agent take some
action on the environment.
The environment, in turn,
will reward the agent,
and it will give him the next state.
That's how reinforcement learning works
so to sum everything up,
what happens in Markov's decision process
and reinforcement learning is
the agent has to take an action A
to transition from the start state
to the end state S.
While doing so, the agent
will receive some reward R
for each action he takes.
Now the series of action
that are taken by the agent
define the policy and
the rewards collected
to find the value.
The main goal here is
to maximize the rewards
by choosing the optimum policy.
So you're gonna choose
the best possible approach
in order to maximize the rewards.
That's the main aim of
Markov's decision process.
To understand Markov's decision process,
let's look at a small example.

Italian: 
 una ricompensa R, politica pi e un valore V. 
 Inoltre, questa immagine rappresenta 
 come funziona un apprendimento per rinforzo. 
 C'è un agente. 
 L'agente intraprende un'azione sull'ambiente. 
 L'ambiente, a sua volta, premierà l'agente, 
 e gli darà il prossimo stato. 
 È così che funziona l'apprendimento per rinforzo 
 quindi per riassumere tutto, 
 cosa succede nel processo decisionale di Markov 
 e l'apprendimento per rinforzo lo è 
 l'agente deve intraprendere un'azione A 
 per passare dallo stato iniziale 
 allo stato finale S. 
 Mentre lo fa, l'agente riceverà una ricompensa R 
 per ogni azione che intraprende. 
 Ora la serie di azioni intraprese dall'agente 
 definire la politica e le ricompense raccolte 
 per trovare il valore. 
 L'obiettivo principale qui è massimizzare i premi 
 scegliendo la politica ottimale. 
 Quindi sceglierai il miglior approccio possibile 
 al fine di massimizzare i premi. 
 Questo è l'obiettivo principale del processo decisionale di Markov. 
 Per comprendere il processo decisionale di Markov, 
 diamo un'occhiata a un piccolo esempio. 

English: 
I'm sure all of you already know
about the shortest path problem.
We all had such problems
and concepts in math
to find the shortest path.
Now consider this representation
over here, this figure.
Here, our goal is to
find the shortest path
between two nodes.
Let's say we're trying to find
the shortest path between
node A and node D.
Now each edge, as you can see,
has a number linked with it.
This number denotes the cost to traverse
through that edge.
So we need to choose a
policy to travel from A to D
in such a way that our cost is minimum.
So in this problem, the set of states are
denoted by the nodes A, B, C, D.
The action is to traverse
from one node to the other.
For example, if you're going from to A C,
there is an action.
C to B is an action.
B to D is another action.
The reward is the cost
represented by each edge.
Policy is the path taken
to reach the destination.
So we need to make sure
that we choose a policy

Italian: 
 Sono sicuro che lo sapete già tutti 
 sul problema del percorso più breve. 
 Avevamo tutti questi problemi e concetti in matematica 
 per trovare il percorso più breve. 
 Ora considera questa rappresentazione qui, questa figura. 
 Qui, il nostro obiettivo è trovare il percorso più breve 
 tra due nodi. 
 Diciamo che stiamo cercando di trovare 
 il percorso più breve tra il nodo A e il nodo D. 
 Ora ogni bordo, come puoi vedere, 
 ha un numero ad esso collegato. 
 Questo numero indica il costo per attraversare 
 attraverso quel bordo. 
 Quindi dobbiamo scegliere una politica per viaggiare da A a D 
 in modo tale che il nostro costo sia minimo. 
 Quindi in questo problema, l'insieme degli stati sono 
 indicato dai nodi A, B, C, D. 
 L'azione è passare da un nodo all'altro. 
 Ad esempio, se stai passando da ad AC, 
 c'è un'azione. 
 Da C a B è un'azione. 
 Da B a D è un'altra azione. 
 La ricompensa è il costo rappresentato da ogni vantaggio. 
 La politica è la strada intrapresa per raggiungere la destinazione. 
 Quindi dobbiamo assicurarci di scegliere una politica 

English: 
in such a way that our cost is minimal.
So what you can do is you
can start off at node A,
and you can take baby steps
to reach your destination.
Initially, only the next
possible node is visible to you.
So from A, you can either go to B
or you can go to C.
So if you follow the greedy approach
and take the most optimum step,
which is choosing A to C,
instead of choosing A to B to C.
Now you're at node C
and you want to traverse to node D.
Again, you must choose
your path very wisely.
So if you traverse from A to C,
and C to B, and B to D,
your cost is the lest.
But if you traverse from A to C to D,
your cost will actually increase.
Now you need to choose a policy
that will minimize your cost over here.
So let's say, for example, the agent
chose A to C to D.
It came to node C, and
then it directly chose D.
Now the policy followed by
our agent in this problem
is exploitation type,
because we didn't explore the other notes.

Italian: 
 in modo tale che il nostro costo sia minimo. 
 Quindi quello che puoi fare è iniziare dal nodo A, 
 e puoi fare piccoli passi per raggiungere la tua destinazione. 
 Inizialmente, solo il prossimo nodo possibile è visibile per te. 
 Quindi da A, puoi andare a B 
 oppure puoi andare a C. 
 Quindi se segui l'approccio avido 
 e fai il passo più ottimale, 
 che sta scegliendo da A a C, 
 invece di scegliere da A a B a C. 
 Ora sei al nodo C 
 e vuoi passare al nodo D. 
 Di nuovo, devi scegliere il tuo percorso molto saggiamente. 
 Quindi se attraversi da A a C, 
 e da C a B e da B a D, 
 il tuo costo è il minimo. 
 Ma se attraversi da A a C a D, 
 il tuo costo aumenterà effettivamente. 
 Ora devi scegliere una politica 
 che ridurrà al minimo i costi qui. 
 Quindi diciamo, ad esempio, l'agente 
 ha scelto da A a C a D. 
 È arrivato al nodo C, quindi ha scelto direttamente D. 
 Ora la politica seguita dal nostro agente in questo problema 
 è il tipo di sfruttamento, 
 perché non abbiamo esplorato le altre note. 

English: 
We just selected three nodes
and we traversed through them.
And the policy we followed is not actually
an optimal policy.
We must always explore more
to find out the optimal policy.
Even if the other nodes are
not giving us any more reward
or is actually increasing our cost,
we still have to explore and find out
if those paths are actually better.
That policy is actually better.
The method that we implemented here
is known as the policy-based learning.
Now the aim here is to
find the best policy
among all the possible policies.
So guys, apart from policy-based,
we also have value-based approach
and action-based approach.
Value based emphasizes on
maximizing the rewards.
And in action base, we emphasize
on each action taken by the agent.
Now a point to note is that
all of these learning approaches
have a simple end goal.
The end goal is to
effectively guide the agent
through the environment,
and acquire the most number of rewards.
So this was very simple to understand
Markov's decision process,

Italian: 
 Abbiamo appena selezionato tre nodi e li abbiamo attraversati. 
 E la politica che abbiamo seguito in realtà non lo è 
 una politica ottimale. 
 Dobbiamo sempre esplorare di più 
 per scoprire la politica ottimale. 
 Anche se gli altri nodi non ci stanno dando più ricompense 
 o sta effettivamente aumentando il nostro costo, 
 dobbiamo ancora esplorare e scoprire 
 se quei percorsi sono effettivamente migliori. 
 Questa politica è effettivamente migliore. 
 Il metodo che abbiamo implementato qui 
 è noto come apprendimento basato sulle politiche. 
 Ora l'obiettivo qui è trovare la migliore politica 
 tra tutte le possibili politiche. 
 Quindi ragazzi, a parte le politiche 
 abbiamo anche un approccio basato sul valore 
 e approccio basato sull'azione. 
 Basato sul valore enfatizza la massimizzazione dei premi. 
 E in base all'azione, sottolineiamo 
 su ogni azione intrapresa dall'agente. 
 Ora un punto da notare è questo 
 tutti questi approcci di apprendimento hanno un semplice obiettivo finale. 
 L'obiettivo finale è guidare efficacemente l'agente 
 attraverso l'ambiente, 
 e ottieni il maggior numero di ricompense. 
 Quindi questo è stato molto semplice da capire 
 Il processo decisionale di Markov, 

English: 
exploitation and exploration trade-off,
and we also discussed
the different reinforcement
learning definitions.
I hope all of this was understandable.
Now let's move on and understand
an algorithm known as
Q-learning algorithm.
So guys, Q-learning is one of
the most important algorithms
in reinforcement learning.
And we'll discuss this algorithm
with the help of a small example.
We'll study this example,
and then we'll implement the
same example using Python,
and we'll see how it works.
So this is how our
demonstration looks for now.
Now the problem statement
is to place an agent
in any one of the rooms numbered
zero, one, two, three, and four.
And the goal is for the agent
to reach outside the building,
which is room number five.
So, basically, this zero,
one, two, three, four
represents the building,
and five represents a room
which is outside the building.
Now all these rooms
are connected by those.
Now these gaps that you
see between the rooms
are basically those,

Italian: 
 compromesso tra sfruttamento ed esplorazione, 
 e abbiamo anche discusso 
 le diverse definizioni di apprendimento per rinforzo. 
 Spero che tutto questo sia stato comprensibile. 
 Ora andiamo avanti e capiamo 
 un algoritmo noto come algoritmo Q-learning. 
 Quindi ragazzi, il Q-learning è uno degli algoritmi più importanti 
 nell'apprendimento per rinforzo. 
 E discuteremo di questo algoritmo 
 con l'aiuto di un piccolo esempio. 
 Studieremo questo esempio, 
 e poi implementeremo lo stesso esempio usando Python, 
 e vedremo come funziona. 
 Quindi questo è come appare la nostra dimostrazione per ora. 
 Ora la dichiarazione del problema è posizionare un agente 
 in una qualsiasi delle stanze numerate 
 zero, uno, due, tre e quattro. 
 E l'obiettivo è per l'agente 
 raggiungere l'esterno dell'edificio, 
 che è la stanza numero cinque. 
 Quindi, fondamentalmente, questo zero, uno, due, tre, quattro 
 rappresenta l'edificio, 
 e cinque rappresenta una stanza che si trova all'esterno dell'edificio. 
 Ora tutte queste stanze sono collegate da quelle. 
 Ora questi spazi vuoti che vedi tra le stanze 
 sono fondamentalmente quelli, 

English: 
and each room is numbered
from zero to four.
The outside of the building
can be taught of as a big room
which is room number five.
Now if you've noticed this diagram,
the door number one and door number four
lead directly to room number five.
From one, you can directly go to five,
and from four, also, you
can directly go to five.
But if you want to go to
five from room number two,
then you'll first have to
go to room number three,
room number one, and
then room number five.
So these are indirect links.
Direct links are from room
number one and room number four.
So I hope all of you are clear
with the problem statement.
You're basically going to have
a reinforcement learning agent,
and than agent has to
traverse through all the rooms
in such a way that he
reaches room number five.
To solve this problem,
first, what we'll do is
we'll represent the rooms
on a graph.
Now each room is denoted as anode,
and the links that are connecting
these nodes are the doors.
Alright, so we have node one to five,
and the links between each of these nodes
represent the doors.

Italian: 
 e ogni stanza è numerata da zero a quattro. 
 L'esterno dell'edificio 
 può essere insegnato come una grande stanza 
 che è la stanza numero cinque. 
 Ora, se hai notato questo diagramma, 
 la porta numero uno e la porta numero quattro 
 conducono direttamente alla stanza numero cinque. 
 Da uno, puoi passare direttamente a cinque, 
 e da quattro, inoltre, puoi passare direttamente a cinque. 
 Ma se vuoi andare al cinque dalla stanza numero due, 
 poi dovrai prima andare nella stanza numero tre, 
 stanza numero uno, e poi stanza numero cinque. 
 Quindi questi sono collegamenti indiretti. 
 I collegamenti diretti provengono dalla stanza numero uno e dalla stanza numero quattro. 
 Quindi spero che tutti voi siate chiari con l'affermazione del problema. 
 Fondamentalmente avrai 
 un agente di apprendimento per rinforzo, 
 e poi l'agente deve attraversare tutte le stanze 
 in modo tale da raggiungere la stanza numero cinque. 
 Risolvere questo problema, 
 in primo luogo, quello che faremo è rappresenteremo le stanze 
 su un grafico. 
 Ora ogni stanza è indicata come anodo, 
 e i collegamenti che collegano questi nodi sono le porte. 
 Va bene, quindi abbiamo il nodo da uno a cinque, 
 e i collegamenti tra ciascuno di questi nodi 
 rappresentano le porte. 

English: 
So, for example, if you look
at this graph over here,
you can see that there
is a direct connection
from one to five,
meaning that you can directly
go from room number one
to your goal, which is room number five.
So if you want to go from
room number three to five,
you can either go to room number one,
and then go to five,
or you can go from room
number three to four,
and then to five.
So guys, remember, end goal
is to reach room number five.
Now to set the room number
five as the goal state,
what we'll do is we'll
associate a reward value
to each door.
The doors that lead
immediately to the goal
will have an instant reward of 100.
So, basically, one to five
will have a reward of hundred,
and four to five will also
have a reward of hundred.
Now other doors that are not directly
connected to the target room
will have a zero reward,
because they do not directly
lead us to that goal.
So let's say you placed the
agent in room number three.
So to go from room number three to one,
the agent will get a reward of zero.
And to go from one to five,

Italian: 
 Quindi, ad esempio, se guardi questo grafico qui, 
 puoi vedere che c'è una connessione diretta 
 da uno a cinque, 
 il che significa che puoi passare direttamente dalla stanza numero uno 
 al tuo obiettivo, che è la stanza numero cinque. 
 Quindi, se vuoi passare dalla stanza numero tre alla stanza cinque, 
 puoi andare alla stanza numero uno, 
 e poi vai a cinque, 
 oppure puoi passare dalla stanza numero tre alla quattro, 
 e poi alle cinque. 
 Quindi ragazzi, ricordate, l'obiettivo finale è raggiungere la stanza numero cinque. 
 Ora, per impostare la stanza numero cinque come stato obiettivo, 
 quello che faremo è associare un valore di ricompensa 
 ad ogni porta. 
 Le porte che portano subito al traguardo 
 avrà una ricompensa istantanea di 100. 
 Quindi, in pratica, da uno a cinque avrà una ricompensa di cento, 
 e da quattro a cinque avranno anche una ricompensa di cento. 
 Ora altre porte che non sono direttamente 
 collegato alla stanza di destinazione 
 avrà una ricompensa zero, 
 perché non ci portano direttamente a questo obiettivo. 
 Quindi supponiamo che tu abbia messo l'agente nella stanza numero tre. 
 Quindi, per passare dalla stanza numero tre a una, 
 l'agente riceverà una ricompensa pari a zero. 
 E per passare da uno a cinque, 

Italian: 
 l'agente riceverà una ricompensa di cento. 
 Ora perché le porte sono a doppio senso 
 le due frecce sono assegnate ad ogni stanza. 
 Puoi vedere una freccia che va verso la stanza 
 e uno proveniente dalla stanza. 
 Quindi ogni freccia contiene una ricompensa istantanea 
 come mostrato in questa figura. 
 Ora ovviamente la stanza numero cinque 
 tornerà a se stesso con una ricompensa di cento, 
 e tutti gli altri collegamenti diretti alla stanza obiettivo 
 porterà una ricompensa di cento. 
 Ora in Q-learning, l'obiettivo è raggiungere lo stato 
 con la più alta ricompensa. 
 In modo che se l'agente arriva all'obiettivo, 
 rimarrà lì per sempre. 
 Quindi spero che tutti voi siate chiari con questo diagramma. 
 Ora, le terminologie in Q-learning 
 includere due termini, stato e azione. 
 Ok, la tua stanza rappresenta fondamentalmente lo stato. 
 Quindi se sei nello stato due, 
 in pratica significa che sei nella stanza numero due. 
 Ora l'azione è fondamentalmente il momento dell'agente 
 da una stanza all'altra. 
 Diciamo che stai andando dalla stanza numero due 
 alla stanza numero tre. 
 Questa è fondamentalmente un'azione. 
 Consideriamo ora qualche altro esempio. 

English: 
the agent will get a reward of hundred.
Now because the doors are two-way,
the two arrows are assigned to each room.
You can see an arrow
going towards the room
and one coming from the room.
So each arrow contains an instant reward
as shown in this figure.
Now of course room number five
will loop back to itself
with a reward of hundred,
and all other direct
connections to the goal room
will carry a reward of hundred.
Now in Q-learning, the
goal is to reach the state
with the highest reward.
So that if the agent arrives at the goal,
it will remain there forever.
So I hope all of you are
clear with this diagram.
Now, the terminologies in Q-learning
include two terms, state and action.
Okay, your room basically
represents the state.
So if you're in state two,
it basically means that
you're in room number two.
Now the action is basically
the moment of the agent
from one room to the other room.
Let's say you're going
from room number two
to room number three.
That is basically an action.
Now let's consider some more example.

English: 
Let's say you place the
agent in room number two
and he has to get to the goal.
So your initial state
will be state number two
or room number two.
Then from room number two,
you'll go to room number three,
which is state three.
Then from state three, you can
either go back to state two
or go to state one or state four.
If you go to state four, from
there you can directly go to
your goal room, which is five.
This is how the agent
is going to traverse.
Now in order to depict the
rewards that you're going to get,
we're going to create a matrix
known as the reward matrix.
Okay, this is represented by R
or also known as the R matrix.
Now the minus one in this
table represents null values.
That is basically where there isn't a link
between the nodes that is
represented as minus one.
Now there is no link
between zero and zero.
That's why it's minus one.
Now if you look at this diagram,
there is no direct link from zero to one.
That's why I've put minus
one over here as well.
But if you look at zero comma four,
we have a value of zero over here,

Italian: 
 Supponiamo che tu metta l'agente nella stanza numero due 
 e deve arrivare alla meta. 
 Quindi il tuo stato iniziale sarà lo stato numero due 
 o la stanza numero due. 
 Poi dalla stanza numero due, andrai alla stanza numero tre, 
 che è lo stato tre. 
 Quindi dallo stato tre, puoi tornare allo stato due 
 o vai allo stato uno o allo stato quattro. 
 Se vai allo stato quattro, da lì puoi andare direttamente a 
 la tua stanza degli obiettivi, che è cinque. 
 Questo è il modo in cui l'agente attraverserà. 
 Ora, per descrivere i premi che riceverai, 
 creeremo una matrice nota come matrice della ricompensa. 
 Ok, questo è rappresentato da R 
 o anche noto come matrice R. 
 Ora il meno in questa tabella rappresenta i valori nulli. 
 Questo è fondamentalmente dove non c'è un collegamento 
 tra i nodi rappresentati come meno uno. 
 Ora non c'è alcun collegamento tra zero e zero. 
 Ecco perché è meno uno. 
 Ora se guardi questo diagramma, 
 non esiste un collegamento diretto da zero a uno. 
 Ecco perché ho messo anche meno uno qui. 
 Ma se guardi zero virgola quattro, 
 abbiamo un valore di zero qui, 

English: 
which means that you can
traverse from zero to four,
but your reward is going to be zero,
because four is not your goal state.
However, if you look at the matrix,
look at one comma five.
In one comma five, we have
a reward value of hundred.
This is because you can directly go
from room number one to five,
and five is the end goal.
That's why we've assigned
a reward of hundred.
Similarly, for four comma five,
we have a reward of hundred.
And for five comma five,
we have a reward of hundred.
Zeroes basically represent other links,
but they are zero because they
do not lead to the end goal.
So I hope you all understood
the reward matrix.
It's very simple.
Now before we move any further,
we'll be creating another matrix
known as the equitable Q matrix.
Now the Q matrix basically
represents the memory
of what the agent has
learned through experience.
The rules of the Q matrix
will represent the current
state of the agent.
The columns will represent
the next possible actions
leading to the next state,

Italian: 
 il che significa che puoi attraversare da zero a quattro, 
 ma la tua ricompensa sarà zero, 
 perché quattro non è il tuo stato obiettivo. 
 Tuttavia, se guardi la matrice, 
 guarda un virgola cinque. 
 In una virgola cinque, abbiamo un valore di ricompensa di cento. 
 Questo perché puoi andare direttamente 
 dalla stanza numero uno alla cinque, 
 e cinque è l'obiettivo finale. 
 Ecco perché abbiamo assegnato una ricompensa di cento. 
 Allo stesso modo, per quattro virgola cinque, 
 abbiamo una ricompensa di cento. 
 E per cinque virgola cinque, 
 abbiamo una ricompensa di cento. 
 Gli zeri rappresentano fondamentalmente altri collegamenti, 
 ma sono zero perché non portano al traguardo finale. 
 Quindi spero che abbiate capito tutti la matrice della ricompensa. 
 È molto semplice. 
 Ora, prima di andare avanti, 
 creeremo un'altra matrice 
 nota come matrice Q equa. 
 Ora la matrice Q rappresenta fondamentalmente la memoria 
 di ciò che l'agente ha appreso attraverso l'esperienza. 
 Le regole della matrice Q 
 rappresenterà lo stato corrente dell'agente. 
 Le colonne rappresenteranno le prossime azioni possibili 
 portando allo stato successivo, 

English: 
and the formula to calculate the Q matrix
is this formula, right?
Here we have Q state comma action,
R state comma action,
which is nothing but the reward matrix.
Then we have a parameter
known as the Gamma parameter,
which I'll explain shortly.
And then we are multiplying
this with a maximum
of Q next state comma all actions.
Now don't worry if you haven't
understood this formula.
I'll explain this with a small example.
For now, let's understand
what a Gamma parameter is.
So, basically, the value of Gamma
will be between zero and one.
If Gamma is closer to zero,
it means that the agent
will tend to consider
only immediate rewards.
Now, if the Gamma is closer to one,
it means that the agent
will consider future rewards
with greater weight.
Now what exactly I'm trying to say is
if Gamma is closer to one,
then we'll be performing
something known as exploitation.
I hope you all remember what exploitation
and exploration trade-off is.
So, if your gamma is closer to zero,
it means that the agent
is not going to explore the environment.

Italian: 
 e la formula per calcolare la matrice Q 
 è questa formula, giusto? 
 Qui abbiamo l'azione virgola dello stato Q, 
 Azione virgola di stato R, 
 che non è altro che la matrice della ricompensa. 
 Quindi abbiamo un parametro noto come parametro Gamma, 
 che spiegherò a breve. 
 E poi lo stiamo moltiplicando per un massimo 
 di Q prossimo stato virgola tutte le azioni. 
 Ora non preoccuparti se non hai capito questa formula. 
 Lo spiego con un piccolo esempio. 
 Per ora, capiamo cos'è un parametro Gamma. 
 Quindi, fondamentalmente, il valore di Gamma 
 sarà compreso tra zero e uno. 
 Se Gamma è più vicino a zero, 
 significa che l'agente tenderà a considerare 
 solo ricompense immediate. 
 Ora, se la gamma è più vicina a uno, 
 significa che l'agente prenderà in considerazione le ricompense future 
 con maggior peso. 
 Quello che sto cercando di dire esattamente è 
 se Gamma è più vicino a uno, 
 poi eseguiremo qualcosa noto come sfruttamento. 
 Spero che ricordiate tutti quale sfruttamento 
 e il trade-off di esplorazione lo è. 
 Quindi, se la tua gamma è più vicina a zero, 
 significa che l'agente 
 non esplorerà l'ambiente. 

Italian: 
 Invece, sceglierà solo un paio di stati, 
 e attraverserà semplicemente quegli stati. 
 Ma se il tuo parametro gamma è più vicino a uno, 
 significa che l'agente attraverserà 
 attraverso tutti gli stati possibili, 
 nel senso che eseguirà l'esplorazione, 
 non sfruttamento. 
 Quindi più il tuo parametro gamma è vicino a uno, 
 più il tuo agente esplorerà. 
 Questo è esattamente ciò che è il parametro Gamma. 
 Se vuoi ottenere la migliore polizza, 
 è sempre pratico scegliere un parametro Gamma 
 che è più vicino a uno. 
 Vogliamo che l'agente esplori l'ambiente 
 per quanto possibile 
 in modo che possa ottenere la migliore politica e la massima ricompensa. 
 Spero che questo sia chiaro. 
 Ora lascia che te lo dica 
 cos'è un algoritmo di Q-learning passo dopo passo. 
 Quindi inizi l'algoritmo di Q-learning 
 impostando il parametro Gamma 
 e l'ambiente premia nella matrice R. 
 Ok, quindi, per prima cosa, avrai impostato questi due valori. 
 Abbiamo già calcolato la matrice della ricompensa. 
 Dobbiamo impostare il parametro Gamma. 
 Successivamente, inizializzerai la matrice Q su zero. 

English: 
Instead, it'll just
choose a couple of states,
and it'll just traverse
through those states.
But if your gamma
parameter is closer to one,
it means that the agent will traverse
through all possible states,
meaning that it'll perform exploration,
not exploitation.
So the closer your gamma
parameter is to one,
the more your agent will explore.
This is exactly what Gamma parameter is.
If you want to get the best policy,
it's always practical that
you choose a Gamma parameter
which is closer to one.
We want the agent to
explore the environment
as much as possible
so that it can get the best
policy and the maximum rewards.
I hope this is clear.
Now let me just tell you
what a Q-learning
algorithm is step by step.
So you begin the Q-learning algorithm
by setting the Gamma parameter
and the environment rewards in matrix R.
Okay, so, first, you'll
have set these two values.
We've already calculated
the reward matrix.
We need to set the Gamma parameter.
Next, you'll initialize
the matrix Q to zero.

Italian: 
 Perché lo fai? 
 Ora, se ricordi, l'ho detto 
 La matrice Q è fondamentalmente la memoria dell'agente. 
 Inizialmente, ovviamente, 
 l'agente non ha memoria dell'ambiente. 
 È nuovo per l'ambiente 
 e lo stai posizionando in modo casuale ovunque. 
 Quindi non ha memoria. 
 Ecco perché inizializzi la matrice Q a zero. 
 Dopodiché, selezionerai uno stato iniziale casuale, 
 e metti il ​​tuo agente in quello stato iniziale. 
 Quindi imposterai questo stato iniziale come stato corrente. 
 Ora dallo stato corrente, selezionerai alcune azioni 
 che ti condurrà allo stato successivo. 
 Quindi in pratica otterrai il valore Q massimo 
 per questo prossimo stato, 
 basato su tutte le possibili azioni che intraprendiamo. 
 Quindi continuerai a calcolare il valore di inclinazione 
 fino a raggiungere lo stato degli obiettivi. 
 Ora questo potrebbe creare un po 'di confusione, 
 quindi diamo un'occhiata a tutta questa cosa con un piccolo esempio. 
 Diciamo che prima inizierai 
 con l'impostazione del parametro Gamma. 
 Quindi sto impostando il mio parametro Gamma su 0,8 
 che è abbastanza vicino a uno. 

English: 
Now why do you do this?
Now, if you remember, I said that
Q matrix is basically
the memory of the agent.
Initially, obviously,
the agent has no memory
of the environment.
It's new to the environment
and you're placing it randomly anywhere.
So it has zero memory.
That's why you initialize
the matrix Q to zero.
After that, you'll select
a random initial state,
and you place your agent
in that initial state.
Then you'll set this initial
state as your current state.
Now from the current state,
you'll select some action
that will lead you to the next state.
Then you'll basically
get the maximum Q value
for this next state,
based on all the possible
actions that we take.
Then you'll keep computing the skew value
until you reach the goals state.
Now that might be a little bit confusing,
so let's look at this entire
thing with a small example.
Let's say that first, you're gonna begin
with setting your Gamma parameter.
So I'm setting my Gamma parameter to 0.8
which is pretty close to one.

English: 
This means that our agent
will explore the environment
as much as possible.
And also, I'm setting the
initial state as room one.
Meaning, I'm in state
one or I'm in room one.
So basically, your agent is
going to be in room number one.
The next step is to initialize
the Q matrix as zero matrix.
So this is a Q matrix.
You can see that
everything is set to zero,
because the agent has no memory at all.
He hasn't traversed to any node,
so he has no memory.
Now since the agent is in room one
he can either go to room number three
or he can go to room number five.
Let's randomly select room number five.
So, from room number five,
you're going to calculate
the maximum Q value
for the next state based
on all possible actions.
So all the possible actions
from room number five
is one, four, and five.
So, basically, the traversing
from Q one comma five,
that's why I put one comma five over here,
state comma action.
Your reward matrix will
have R one comma five.

Italian: 
 Ciò significa che il nostro agente esplorerà l'ambiente 
 per quanto possibile. 
 Inoltre, sto impostando lo stato iniziale come stanza uno. 
 Significa che sono nello stato uno o sono nella stanza uno. 
 Quindi, fondamentalmente, il tuo agente sarà nella stanza numero uno. 
 Il passaggio successivo consiste nell'inizializzare la matrice Q come matrice zero. 
 Quindi questa è una matrice Q. 
 Puoi vedere che tutto è impostato su zero, 
 perché l'agente non ha alcuna memoria. 
 Non ha raggiunto nessun nodo, 
 quindi non ha memoria. 
 Ora, poiché l'agente è nella stanza uno 
 può andare alla stanza numero tre 
 oppure può andare nella stanza numero cinque. 
 Selezioniamo a caso la stanza numero cinque. 
 Quindi, dalla stanza numero cinque, 
 calcolerai il valore Q massimo 
 per lo stato successivo in base a tutte le azioni possibili. 
 Quindi tutte le azioni possibili dalla stanza numero cinque 
 è uno, quattro e cinque. 
 Quindi, in pratica, l'attraversamento da Q una virgola cinque, 
 ecco perché ho messo una virgola cinque qui, 
 dichiara l'azione virgola. 
 La tua matrice di ricompensa avrà R una virgola cinque. 

Italian: 
 Ora R uno virgola cinque è fondamentalmente cento. 
 Ecco perché ne ho messi cento qui. 
 Ora il tuo parametro virgola è 0,8. 
 Allora, ragazzi, cosa ci faccio qui 
 sto solo sostituendo i valori in questa formula. 
 Quindi lasciami ripetere tutta questa cosa. 
 Azione virgola di stato Q. 
 Quindi sei nello stato numero uno, giusto? 
 E la tua azione è che vai nella stanza numero cinque. 
 Quindi l'azione virgola dello stato Q è una virgola cinque. 
 Ancora una volta, la tua matrice di ricompensa R una virgola cinque è cento. 
 Quindi qui ne metterai cento 
 più il tuo parametro Gamma. 
 Il tuo parametro Gamma è 0,8. 
 Quindi calcolerai il valore Q massimo 
 per lo stato successivo in base a tutte le azioni possibili. 
 Quindi diamo un'occhiata al prossimo stato. 
 Dalla stanza numero cinque, puoi andare in una delle due. 
 Puoi andare a quattro o puoi andare a cinque. 
 Quindi le tue azioni sono cinque virgola uno, cinque virgola quattro, 
 e cinque virgola cinque. 
 È esattamente quello che ho menzionato qui. 
 Q cinque virgola uno, Q cinque virgola quattro e Q cinque virgola cinque. 
 In pratica stai mettendo tutte le prossime azioni possibili 

English: 
Now R one comma five is basically hundred.
That's why I put hundred over here.
Now your comma parameter is 0.8.
So, guys, what I'm doing here
is I'm just substituting
the values in this formula.
So let me just repeat this whole thing.
Q state comma action.
So you're in state number one, correct?
And your action is you're
going to room number five.
So your Q state comma
action is one comma five.
Again, your reward matrix R
one comma five is hundred.
So here's you're gonna put hundred,
plus your Gamma parameter.
Your Gamma parameter is 0.8.
Then you're going to
calculate the maximum Q value
for the next state based
on all possible actions.
So let's look at the next state.
From room number five,
you can go to either one.
You can go to four or you can go to five.
So your actions are five
comma one, five comma four,
and five comma five.
That's exactly what I mentioned over here.
Q five comma one, Q five comma
four, and Q five comma five.
You're basically putting all
the next possible actions

English: 
from state number five.
From here, you'll calculate the maximum
Q value that you're
getting for each of these.
Now your Q value is zero,
because, initially, your
Q matrix is set to zero.
So you're going to get
zero for Q five comma one,
five comma four, and five comma five.
So that's why you'll get 0.8 and zero,
and hence your Q one comma
five becomes hundred.
This hundred comes from R one comma five.
I hope all of you understood this.
So next, what you'll do is you'll update
this one comma five
value in your Q matrix,
because you just calculated
Q one comma five.
So I've updated it over here.
Now for the next episode,
we'll start with a randomly
chosen initial state.
Again, let's say that we randomly
chose state number three.
Now from room number three,
you can either go to room
number one, two or four.
Let's randomly select room number one.
Now, from room number five,
you'll calculate the maximum Q value
for the next possible actions.

Italian: 
 dallo stato numero cinque. 
 Da qui calcolerai il massimo 
 Valore Q che ottieni per ciascuno di questi. 
 Ora il tuo valore Q è zero, 
 perché, inizialmente, la tua matrice Q è impostata su zero. 
 Quindi otterrai zero per Q cinque virgola uno, 
 cinque virgola quattro e cinque virgola cinque. 
 Ecco perché otterrai 0,8 e zero, 
 e quindi la tua Q una virgola cinque diventa cento. 
 Questo cento viene da R uno virgola cinque. 
 Spero che tutti voi lo abbiate capito. 
 Quindi, quello che farai è aggiornare 
 questo valore di una virgola cinque nella tua matrice Q, 
 perché hai appena calcolato Q una virgola cinque. 
 Quindi l'ho aggiornato qui. 
 Ora per il prossimo episodio, 
 inizieremo con uno stato iniziale scelto a caso. 
 Di nuovo, diciamo di aver scelto a caso lo stato numero tre. 
 Ora dalla stanza numero tre, 
 puoi andare alla stanza numero uno, due o quattro. 
 Selezioniamo casualmente la stanza numero uno. 
 Ora, dalla stanza numero cinque, 
 calcolerai il valore Q massimo 
 per le prossime azioni possibili. 

English: 
So let's calculate the Q formula for this.
So your Q state comma action
becomes three comma one,
because you're in state number three
and your action is you're
going to room number one.
So your R three comma one,
let's see what R three comma one is.
R three comma one is zero.
So you're going to put zero over here,
plus your Gamma parameter, which is 0.8,
and then you're going to check
the next possible actions
from room number one,
and you're going to
choose the maximum value
from these two.
So Q one comma three and Q one comma five
denote your next possible
actions from room number one.
So Q one comma three is zero,
but Q one comma five is hundred.
So we just calculated this
hundred in the previous step.
So, out of zero and hundred,
hundred is your maximum value,
so you're going to choose hundred.
Now 0.8 into hundred is nothing but 80.
So again, your Q matrix gets updated.
You see an 80 over here.
So, basically what you're doing
is as you're taking actions,
you're updating your Q value,

Italian: 
 Quindi calcoliamo la formula Q per questo. 
 Quindi l'azione virgola dello stato Q diventa tre virgola uno, 
 perché sei nello stato numero tre 
 e la tua azione è andare nella stanza numero uno. 
 Quindi la tua R tre virgola uno, 
 vediamo cos'è R tre virgola uno. 
 R tre virgola uno è zero. 
 Quindi metterai zero qui, 
 più il tuo parametro Gamma, che è 0,8, 
 e poi controllerai le prossime azioni possibili 
 dalla stanza numero uno, 
 e sceglierai il valore massimo 
 da questi due. 
 Quindi Q una virgola tre e Q una virgola cinque 
 denota le tue prossime azioni possibili dalla stanza numero uno. 
 Quindi Q una virgola tre è zero, 
 ma Q uno virgola cinque fa cento. 
 Quindi abbiamo appena calcolato questo centinaio nel passaggio precedente. 
 Quindi, su zero e cento, 
 cento è il tuo valore massimo, 
 quindi sceglierai cento. 
 Ora 0,8 in cento non è altro che 80. 
 Quindi, ancora una volta, la tua matrice Q viene aggiornata. 
 Vedi un 80 qui. 
 Quindi, in pratica, ciò che stai facendo è mentre intraprendi azioni, 
 stai aggiornando il tuo valore Q, 

Italian: 
 stai solo calcolando il valore Q ad ogni passaggio, 
 lo stai inserendo nella tua matrice Q 
 in modo che il tuo agente lo ricordi, 
 ok, quando sono passato dalla stanza numero uno alla stanza numero cinque, 
 Avevo un valore Q di cento. 
 Allo stesso modo, tre a uno mi ha dato un valore Q di 80. 
 Quindi, fondamentalmente, questa matrice Q rappresenta 
 il ricordo del tuo agente. 
 Spero che siate tutti chiari su questo. 
 Quindi fondamentalmente, cosa faremo 
 continueremo a iterare attraverso questo ciclo 
 finché non abbiamo attraversato tutti gli stati possibili 
 e raggiungere lo stato obiettivo, che è cinque. 
 Inoltre, il nostro obiettivo principale qui è trovare la politica più ottimale 
 per arrivare alla stanza numero cinque. 
 Ora implementiamo la stessa identica cosa usando Python. 
 Quindi quella era molta teoria. 
 Ora capiamo come si fa praticamente. 
 Va bene, quindi iniziamo importando la tua libreria. 
 Useremo la libreria NumPy qui. 
 Successivamente, importeremo la matrice R. 
 Abbiamo già creato la matrice R. 
 Questa è la matrice esatta che ti ho mostrato 
 un paio di minuti fa. 

English: 
you're just calculating
the Q value at every step,
you're putting it in your Q matrix
so that your agent remembers that,
okay, when I went from room
number one to room number five,
I had a Q value of hundred.
Similarly, three to one
gave me a Q value of 80.
So basically, this Q matrix represents
the memory of your agent.
I hope all of you are clear with this.
So basically, what we're gonna do
is we're gonna keep
iterating through this loop
until we've gone through
all possible states
and reach the goal state, which is five.
Also, our main aim here is to
find the most optimum policy
to get to room number five.
Now let's implement the exact
same thing using Python.
So that was a lot of theory.
Now let's understand how
this is done practically.
Alright, so we begin by
importing your library.
We're gonna be using the
NumPy library over here.
After that, we'll import the R matrix.
We've already created the R matrix.
This is the exact matrix that I showed you
a couple of minutes ago.

English: 
So I've created a matrix called R
and I've basically stored
all the rewards in it.
If you want to see the R
matrix, let me print it.
So, basically, this is your R matrix.
If you remember, node one to five,
you have a reward of hundred.
Node four to five, you
have a reward of hundred,
and five to five, you
have a reward of hundred,
because all of these nodes
directly lead us to the reward.
Correct?
Next, what we're doing is
we're creating a Q matrix
which is basically a six into six matrix.
Which represents all the
states, zero to five.
And this matrix is basically zero.
After, that we're setting
the Gamma parameter.
Now guys, you can play
around with this code,
and you know you can
change the comma parameter
to 0.7 or 0.9
and see how much more
the agent will explore
or whether you perform exploitation.
Here I've set the Gamma parameter 0.8
which is a pretty good number.

Italian: 
 Quindi ho creato una matrice chiamata R 
 e ho praticamente immagazzinato tutte le ricompense. 
 Se vuoi vedere la matrice R, fammela stampare. 
 Quindi, fondamentalmente, questa è la tua matrice R. 
 Se ricordi, dal nodo da uno a cinque, 
 hai una ricompensa di cento. 
 Nodo da quattro a cinque, hai una ricompensa di cento, 
 e cinque a cinque, hai una ricompensa di cento, 
 perché tutti questi nodi ci portano direttamente alla ricompensa. 
 Corretta? 
 Successivamente, quello che stiamo facendo è creare una matrice Q. 
 che è fondamentalmente una matrice da sei a sei. 
 Che rappresenta tutti gli stati, da zero a cinque. 
 E questa matrice è fondamentalmente zero. 
 Dopo, stiamo impostando il parametro Gamma. 
 Ora ragazzi, potete giocare con questo codice, 
 e sai che puoi cambiare il parametro della virgola 
 a 0,7 o 0,9 
 e vedere quanto altro esplorerà l'agente 
 o se esegui lo sfruttamento. 
 Qui ho impostato il parametro Gamma 0.8 
 che è un numero abbastanza buono. 

English: 
Now what I'm doing is I'm
setting the initial state as one.
You can randomly choose this state
according to your needs.
I've set the initial state as one.
Now, this function will basically give me
all the available actions
from my initial state.
Since I've set my initial state as one,
It'll give me all the possible actions.
Here what I'm doing is since
my initial state is one,
I'm checking in my row number one,
which value is equal to
zero or greater than zero.
Those denote my available actions.
So look at our row number one.
Here we have one zero and
we have a hundred over here.
This is one comma four and
this is one comma five.
So if you look at the row number one,
since I've selected the
initial state as one,
we'll consider row number one.
Okay, what I'm doing is in row number one,
I have two numbers which
are either equal to zero
or greater than zero.
These denote my possible actions.
One comma three has the value of zero

Italian: 
 Quello che sto facendo è impostare lo stato iniziale come uno. 
 Puoi scegliere a caso questo stato 
 secondo le tue esigenze. 
 Ho impostato lo stato iniziale come uno. 
 Ora, questa funzione fondamentalmente mi darà 
 tutte le azioni disponibili dal mio stato iniziale. 
 Da quando ho impostato il mio stato iniziale come uno, 
 Mi darà tutte le azioni possibili. 
 Ecco quello che sto facendo è che il mio stato iniziale è uno, 
 Sto controllando la mia fila numero uno, 
 quale valore è uguale a zero o maggiore di zero. 
 Quelle denotano le mie azioni disponibili. 
 Quindi guarda la nostra riga numero uno. 
 Qui abbiamo uno zero e ne abbiamo cento qui. 
 Questa è una virgola quattro e questa è una virgola cinque. 
 Quindi, se guardi la riga numero uno, 
 da quando ho selezionato lo stato iniziale come uno, 
 considereremo la riga numero uno. 
 Ok, quello che sto facendo è nella fila numero uno, 
 Ho due numeri che sono uguali a zero 
 o maggiore di zero. 
 Questi denotano le mie possibili azioni. 
 Una virgola tre ha il valore di zero 

Italian: 
 e una virgola cinque ha il valore di cento, 
 il che significa che l'agente 
 può andare alla stanza numero tre 
 oppure può andare nella stanza numero cinque. 
 Quello che sto cercando di dire è dalla stanza numero uno, 
 in pratica puoi andare alla stanza numero tre 
 o la stanza numero cinque. 
 Questo è esattamente quello che ho codificato qui. 
 Se ricordi la matrice della ricompensa, 
 da uno si può passare direttamente alla sola stanza numero tre 
 e la stanza numero cinque direttamente. 
 Ok, è esattamente quello che ho menzionato 
 nel mio codice qui. 
 Quindi questo fondamentalmente mi darà le azioni disponibili 
 dal mio stato attuale. 
 Ora una volta che mi sono trasferito al mio stato successivo, 
 Devo controllare le azioni disponibili da quello stato. 
 Quello che sto facendo qui è fondamentalmente questo. 
 Se ricordi 
 dalla stanza numero uno possiamo passare alla tre e alla cinque, giusto? 
 E dalle tre alle cinque 
 Selezionerò a caso lo stato. 
 E da quello stato, ho bisogno di scoprirlo 
 tutte le azioni possibili. 
 È esattamente quello che ho fatto qui. 
 Va bene. 
 Ora questo sceglierà casualmente un'azione per me 

English: 
and one comma five has
the value of hundred,
which means that the agent
can either go to room number three
or it can go to room number five.
What I'm trying to say
is from room number one,
you can basically go to room number three
or room number five.
This is exactly what I've coded over here.
If you remember the reward matrix,
from one you can traverse to
only room number three directly
and room number five directly.
Okay, that's exactly what I've mentioned
in my code over here.
So this will basically give
me the available actions
from my current state.
Now once I've moved to me next state,
I need to check the available
actions from that state.
What I'm doing over
here is basically this.
If you're remember,
from room number one, we can
go to three and five, correct?
And from three and five,
I'll randomly select the state.
And from that state, I need to find out
all possible actions.
That's exactly what I've done over here.
Okay.
Now this will randomly
choose an action for me

Italian: 
 da tutte le mie azioni disponibili. 
 Successivamente, dobbiamo aggiornare la nostra matrice Q, 
 a seconda delle azioni che abbiamo intrapreso, 
 se ti ricordi. 
 Quindi questo è esattamente ciò che questa funzione di aggiornamento è quattro. 
 Ora ragazzi, tutto questo serve per calcolare il valore Q. 
 Spero che tutti voi ricordiate la formula, 
 che è l'azione virgola dello stato Q, 
 Azione virgola di stato R più Gamma nel valore massimo. 
 Il valore massimo mi darà fondamentalmente il valore massimo 
 tra tutte le azioni possibili. 
 Fondamentalmente sto calcolando questa formula. 
 Ora questo aggiornerà solo la matrice Q. 
 Venendo alla fase di formazione, 
 quello che faremo è impostare un intervallo. 
 Qui ho impostato un intervallo di 10.000, 
 il che significa che il mio agente eseguirà 10.000 iterazioni. 
 Puoi impostarlo in base alle tue esigenze, 
 e 10.000 iterazioni sono un numero piuttosto enorme. 
 Quindi, fondamentalmente, il mio agente sta per passare 
 10.000 iterazioni possibili 
 al fine di trovare la migliore politica. 

English: 
from all my available actions.
Next, we need to update our Q matrix,
depending on the actions that we took,
if you remember.
So that's exactly what this
update function is four.
Now guys, this entire is
for calculating the Q value.
I hope all of you remember the formula,
which is Q state comma action,
R state comma action plus
Gamma into max value.
Max value will basically
give me the maximum value
out of the all possible actions.
I'm basically computing this formula.
Now this will just update the Q matrix.
Coming to the training phase,
what we're gonna do is we
are going to set a range.
Here I've set a range of 10,000,
meaning that my agent will
perform 10,000 iterations.
You can set this depending
on your own needs,
and 10,000 iteration is
a pretty huge number.
So, basically, my agent
is going to go through
10,000 possible iterations
in order to find the best policy.

Italian: 
 Questa è esattamente la stessa cosa che abbiamo fatto in precedenza. 
 Stiamo impostando lo stato attuale, 
 e poi stiamo scegliendo l'azione disponibile 
 dallo stato attuale. 
 Da lì, sceglieremo un'azione a caso. 
 Qui calcoleremo un valore Q 
 e aggiorneremo il valore Q nella matrice. 
 Tutto a posto. 
 E qui non sto facendo niente 
 ma sto stampando la matrice Q addestrata. 
 Questa era la fase di formazione. 
 Ora la fase di test, in pratica, 
 sceglierai a caso uno stato corrente. 
 Sceglierai uno stato attuale 
 e continuerai a girare 
 attraverso l'intero codice, 
 fino a raggiungere lo stato obiettivo, che è la stanza numero cinque. 
 Questo è esattamente quello che sto facendo in tutta questa faccenda. 
 Inoltre, alla fine, sto stampando la parte selezionata. 
 Questa è fondamentalmente la politica adottata dall'agente 
 per raggiungere la stanza numero cinque. 
 Ora, se imposto lo stato corrente come uno, 
 dovrebbe darmi la migliore politica 
 per raggiungere la stanza numero cinque dalla stanza numero uno. 
 Va bene, eseguiamo questo codice, 
 e vediamo se ce lo sta dando. 

English: 
Now this is the exact same
thing that we did earlier.
We're setting the current state,
and then we're choosing
the available action
from the current state.
The from there, we'll
choose an action at random.
Here we'll calculate a Q value
and we'll update the
Q value in the matrix.
Alright.
And here I'm doing nothing,
but I'm printing the trained Q matrix.
This was the training phase.
Now the testing phase, basically,
you're going to randomly
choose a current state.
You're gonna choose a current state,
and you're going to keep looping
through this entire code,
until you reach the goal state,
which is room number five.
That's exactly what I'm
doing in this whole thing.
Also, in the end, I'm
printing the selected part.
That is basically the
policy that the agent took
to reach room number five.
Now if I set the current state as one,
it should give me the best policy
to reach to room number
five from room number one.
Alright, let's run this code,
and let's see if it's giving us that.

English: 
Now before that happens, I
want you to check and tell me
which is the best possible way
to get from room number
one to room number five.
It's obviously directly like this.
One to five is the best policy
to get from room number one
to room number five.
So we should get an
output of one comma five.
That's exactly what we're getting
this is a Q matrix with all the Q values,
and here we are getting the selected path.
So if your current state is one,
your best policy is to
go from one to five.
Now, if you want to
change your current state,
let's say we set the current state to two.
And before we run the code,
let's see which is the best possible way
to get to room number
five from room number two.
From room number two, you can go to three,
then you can go to one, and
then you can go to five.
This will give you a reward of hundred,
or you can go to room number three,
then go to four, and then go to five.
This will also give you
a reward of hundred.
Our path should be something like that.
Let's save it and let's run the file.

Italian: 
 Ora, prima che ciò accada, voglio che tu controlli e me lo dica 
 che è il miglior modo possibile 
 per passare dalla stanza numero uno alla stanza numero cinque. 
 Ovviamente è proprio così. 
 Uno a cinque è la migliore politica da ottenere dalla camera numero uno 
 alla stanza numero cinque. 
 Quindi dovremmo ottenere un output di una virgola cinque. 
 È esattamente quello che stiamo ottenendo 
 questa è una matrice Q con tutti i valori Q, 
 e qui stiamo ottenendo il percorso selezionato. 
 Quindi, se il tuo stato attuale è uno, 
 la tua migliore politica è passare da uno a cinque. 
 Ora, se vuoi cambiare il tuo stato attuale, 
 diciamo di aver impostato lo stato corrente su due. 
 E prima di eseguire il codice, 
 vediamo qual è il miglior modo possibile 
 per arrivare alla stanza numero cinque dalla stanza numero due. 
 Dalla stanza numero due, puoi andare alla tre, 
 poi puoi andare a uno, e poi puoi andare a cinque. 
 Questo ti darà una ricompensa di cento, 
 oppure puoi andare nella stanza numero tre, 
 poi vai a quattro e poi vai a cinque. 
 Questo ti darà anche una ricompensa di cento. 
 Il nostro percorso dovrebbe essere qualcosa del genere. 
 Salviamolo ed eseguiamo il file. 

Italian: 
 Quindi, in pratica, dalla fase due, 
 dirai tre, poi quattro, 
 e poi alle cinque. 
 Questo è il nostro miglior percorso possibile 
 dalla stanza due alla stanza numero cinque. 
 Quindi, ragazzi, è proprio così 
 l'algoritmo di apprendimento Q funziona, 
 e questa era una semplice implementazione 
 dell'intero esempio che ti ho appena detto. 
 Ora, se qualcuno di voi ha ancora dei dubbi 
 per quanto riguarda l'apprendimento Q o l'apprendimento per rinforzo, 
 assicurati di commentarli nella sezione commenti, 
 e cercherò di rispondere a tutti i tuoi dubbi. 
 No, abbiamo finito con l'apprendimento automatico. 
 Abbiamo completato l'intero modello di machine learning. 
 Abbiamo capito l'apprendimento per rinforzo, 
 apprendimento supervisionato, apprendimento non supervisionato e così via. 
 Prima di arrivare all'apprendimento profondo, 
 Voglio chiarire un malinteso molto comune. 
 Molte persone si confondono 
 tra machine learning AI e deep learning, 
 perché, sai, l'intelligenza artificiale, 
 machine learning e deep learning 
 sono applicazioni molto comuni. 
 Ad esempio, Siri è un'applicazione 
 dell'intelligenza artificiale, 
 machine learning e deep learning. 

English: 
So, basically, from stage two,
you're going to say three, then to four,
and then to five.
This is our best possible path
from two to room number five.
So, guys, this is exactly how
the Q learning algorithm works,
and this was a simple implementation
of the entire example
that I just told you.
Now if any of you still have doubts
regarding Q learning or
reinforcement learning,
make sure you comment them
in the comment section,
and I'll try to answer all of your doubts.
No we're done with machine learning.
We've completed the whole
machine learning model.
We've understood reinforcement learning,
supervised learning,
unsupervised learning, and so on.
Before I'll get to deep learning,
I want to clear a very
common misconception.
A lot of people get confused
between AI machine
learning and deep learning,
because, you know,
artificial intelligence,
machine learning and deep learning
are very common applications.
For example, Siri is an application
of artificial intelligence,
machine learning, and deep learning.

English: 
So how are these three connected?
Are they the same thing or how exactly
is the relationship between
artificial intelligence,
machine learning, and deep learning?
This is what I'll be discussing.
now artificial intelligence
is basically the science
of getting machines to mimic
the behavior of human beings.
But when it comes to machine learning,
machine learning is a subset
of artificial intelligence
that focuses on getting
machines to make decisions
by feeding them data.
That's exactly what machine learning is.
It is a subset of artificial intelligence.
Deep learning, on the other hand,
is a subset of machine learning
that uses the concept of neural networks
to solve complex problems.
So, to sum it up, artificial intelligence,
machine learning, and deep learning,
are interconnected fields.
Machine learning and deep learning
aids artificial intelligence
by providing a set of
algorithms and neural networks
to solve data-driven problems.

Italian: 
 Allora come sono collegati questi tre? 
 Sono la stessa cosa o come esattamente 
 è il rapporto tra intelligenza artificiale, 
 machine learning e deep learning? 
 Questo è ciò di cui parlerò. 
 ora l'intelligenza artificiale è fondamentalmente la scienza 
 di fare in modo che le macchine imitino il comportamento degli esseri umani. 
 Ma quando si tratta di machine learning, 
 l'apprendimento automatico è un sottoinsieme dell'intelligenza artificiale 
 che si concentra sul convincere le macchine a prendere decisioni 
 fornendo loro dati. 
 Questo è esattamente ciò che è l'apprendimento automatico. 
 È un sottoinsieme dell'intelligenza artificiale. 
 L'apprendimento profondo, d'altra parte, 
 è un sottoinsieme dell'apprendimento automatico 
 che utilizza il concetto di reti neurali 
 per risolvere problemi complessi. 
 Quindi, per riassumere, l'intelligenza artificiale, 
 machine learning e deep learning, 
 sono campi interconnessi. 
 Apprendimento automatico e apprendimento profondo 
 aiuta l'intelligenza artificiale 
 fornendo una serie di algoritmi e reti neurali 
 per risolvere problemi basati sui dati. 

Italian: 
 Ecco come AI, machine learning e deep learning 
 sono correlati. 
 Spero che tutti voi abbiate chiarito le vostre idee sbagliate 
 e dubbi su AI, ML e deep learning. 
 Ora diamo un'occhiata al nostro prossimo argomento, 
 che è i limiti dell'apprendimento automatico. 
 Ora la prima limitazione è l'apprendimento automatico 
 non è in grado di gestire dati di dimensioni elevate. 
 Qui è dove l'input e l'output sono molto grandi. 
 Quindi la gestione e l'elaborazione di questo tipo di dati 
 diventa molto complesso 
 e richiede molte risorse. 
 Questo è anche noto come la maledizione della dimensionalità. 
 Quindi, per capirlo in termini più semplici, 
 guarda l'immagine mostrata in questa diapositiva. 
 Considera una linea di cento iarde 
 e diciamo che hai lasciato cadere una moneta da qualche parte sulla linea. 
 Ora è abbastanza comodo per te trovare la moneta 
 semplicemente camminando lungo la linea. 
 Questo è molto semplice perché viene considerata questa linea 
 come entità monodimensionale. 
 Adesso, considera di averlo fatto 
 un quadrato di cento iarde, 

English: 
That's how AI, machine
learning, and deep learning
are related.
I hope all of you have
cleared your misconceptions
and doubts about AI,
ML, and deep learning.
Now let's look at our next topic,
which is limitations of machine learning.
Now the first limitation
is machine learning
is not capable enough to
handle high dimensional data.
This is where the input and
the output is very large.
So handling and processing
such type of data
becomes very complex
and it takes up a lot of resources.
This is also sometimes known
as the curse of dimensionality.
So, to understand this in simpler terms,
look at the image shown on this slide.
Consider a line of hundred yards
and let's say that you dropped
a coin somewhere on the line.
Now it's quite convenient
for you to find the coin
by simply walking along the line.
This is very simple because
this line is considered
as single dimensional entity.
Now next, you consider that you have
a square of hundred yards,

English: 
and let's say you dropped a
coin somewhere in between.
Now it's quite evident that
you're going to take more time
to find the coin within that square
as compared to the previous scenario.
The square is, let's say,
a two dimensional entity.
Let's take it a step ahead
and let's consider a cube.
Okay, let's say there's
a cube of 500 yards
and you have dropped a coin
somewhere in between this cube.
Now it becomes even more difficult
for you to find the coin this time,
because this is a three
dimensional entity.
So, as your dimension increases,
the problem becomes more complex.
So if you observe that the complexity
is increasing the increase
in your dimensions,
and in real life, the
high dimensional data
that we're talking about
has thousands of dimensions
that makes it very complex
to handle and process.
and a high dimensional data
can easily be found in used
cases like image processing,
natural language processing,
image translation, and so on.
Now in K-means itself,
we saw that we had 16
million possible colors.

Italian: 
 e diciamo che hai lasciato cadere una moneta da qualche parte nel mezzo. 
 Ora è abbastanza evidente che impiegherai più tempo 
 per trovare la moneta all'interno di quel quadrato 
 rispetto allo scenario precedente. 
 Il quadrato è, diciamo, un'entità bidimensionale. 
 Facciamo un passo avanti e consideriamo un cubo. 
 Ok, supponiamo che ci sia un cubo di 500 iarde 
 e hai lasciato cadere una moneta da qualche parte tra questo cubo. 
 Adesso diventa ancora più difficile 
 per te per trovare la moneta questa volta, 
 perché questa è un'entità tridimensionale. 
 Quindi, man mano che la tua dimensione aumenta, 
 il problema diventa più complesso. 
 Quindi se osservi che la complessità 
 sta aumentando l'aumento delle tue dimensioni, 
 e nella vita reale, i dati ad alta dimensione 
 di cui stiamo parlando ha migliaia di dimensioni 
 ciò lo rende molto complesso da gestire ed elaborare. 
 e un alto dato dimensionale 
 può essere facilmente trovato in casi usati come l'elaborazione delle immagini, 
 elaborazione del linguaggio naturale, traduzione di immagini e così via. 
 Ora in K-significa stesso, 
 abbiamo visto che avevamo 16 milioni di colori possibili. 

Italian: 
 Sono molti dati. 
 Ecco perché l'apprendimento automatico è limitato. 
 Non può essere utilizzato nel processo di riconoscimento delle immagini 
 perché il riconoscimento delle immagini e le immagini hanno molti pixel 
 e hanno molti dati ad alta dimensione. 
 Ecco perché l'apprendimento automatico diventa molto restrittivo 
 quando si tratta di tali casi d'uso. 
 Ora la seconda grande sfida è raccontare al computer 
 quali sono le caratteristiche che dovrebbe cercare 
 che giocherà un ruolo importante 
 nel prevedere il risultato e nell'ottenere una buona precisione. 
 Ora questo processo è noto come estrazione di funzionalità. 
 Ora fornire dati grezzi all'algoritmo raramente funziona, 
 e questo è il motivo per cui l'estrazione di funzionalità 
 è una parte fondamentale del flusso di lavoro di machine learning. 
 Ora la sfida per il programmatore qui aumenta 
 perché l'efficacia dell'algoritmo 
 dipende da quanto è perspicace il programmatore. 
 In qualità di programmatore, 
 devi dire alla macchina che queste sono le caratteristiche. 
 E a seconda di queste caratteristiche, 
 devi prevedere il risultato. 
 È così che funziona l'apprendimento automatico. 

English: 
That is a lot of data.
So this is why machine
learning is restricted.
It cannot be used in the
process of image recognition
because image recognition and
images have a lot of pixels
and they have a lot of
high dimensional data.
That's why machine learning
becomes very restrictive
when it comes to such uses cases.
Now the second major challenge
is to tell the computer
what are the features it should look for
that will play an important role
in predicted the outcome and
in getting a good accuracy.
Now this process is something
known as feature extraction.
Now feeding raw data to
the algorithm rarely works,
and this is the reason
why feature extraction
is a critical part of
machine learning workflow.
Now the challenge for the
programmer here increases
because the effectiveness of the algorithm
depends on how insightful
the programmer is.
As a programmer,
you have to tell the machine
that these are the features.
And depending on these features,
you have to predict the outcome.
That's how machine learning works.

Italian: 
 Finora, in tutte le nostre demo, 
 abbiamo visto che stavamo fornendo variabili predittive. 
 stavamo fornendo variabili di input 
 questo ci aiuterà a prevedere il risultato. 
 Stavamo cercando di trovare correlazioni tra variabili, 
 e stiamo cercando di scoprire la variabile 
 questo è molto importante per prevedere la variabile di output. 
 Quindi questa diventa una sfida per il programmatore. 
 Ecco perché è molto difficile da applicare 
 modello di machine learning a problemi complessi 
 come il riconoscimento di oggetti, il riconoscimento della grafia, 
 elaborazione del linguaggio naturale e così via. 
 Adesso tutti questi problemi 
 e tutte queste limitazioni nell'apprendimento automatico 
 ha portato all'introduzione del deep learning. 
 Ora discuteremo dell'apprendimento profondo. 
 Ora il deep learning è uno degli unici metodi 
 con cui possiamo superare le sfide 
 di estrazione delle caratteristiche. 
 Questo perché i modelli di deep learning 
 sono in grado di imparare a concentrarsi 
 sulle giuste caratteristiche da soli, 
 che richiede pochissima guida da parte del programmatore. 
 Fondamentalmente, l'apprendimento profondo imita il modo in cui funziona il nostro cervello. 

English: 
So far, in all our demos,
we saw that we were providing
predictor variables.
we were providing input variables
that will help us predict the outcome.
We were trying to find
correlations between variables,
and we're trying to find out the variable
that is very important in
predicting the output variable.
So this becomes a challenge
for the programmer.
That's why it's very difficult to apply
machine learning model to complex problems
like object recognition,
handwriting recognition,
natural language processing, and so on.
Now all these problems
and all these limitations
in machine learning
led to the introduction of deep learning.
Now we're gonna discuss
about deep learning.
Now deep learning is
one of the only methods
by which we can overcome the challenges
of feature extraction.
This is because deep learning models
are capable of learning to focus
on the right features by themselves,
which requires very little
guidance from the programmer.
Basically, deep learning mimics
the way our brain functions.

English: 
That is it learns from experience.
So in deep learning, what happens is
feature extraction happens automatically.
You need very little
guidance by the programmer.
So deep learning will learn the model,
and it will understand which
feature or which variable
is important in predicting the outcome.
Let's say you have millions
of predictor variables
for a particular problem statement.
How are you going to sit down and
understand the significance
of each of these predictor variables
it's going to be almost impossible
to sit down with so many features.
That's why we have deep learning.
Whenever there's high dimensionality data
or whenever the data is really large
and it has a lot of features
and a lot of predictor
variables, we use deep learning.
Deep learning will extract
features on its own
and understand which
features are important
in predicting your output.
So that's the main idea
behind deep learning.
Let me give you a small example also.
Suppose we want to make a system
that can recognize the
face of different people
in an image.
Okay, so, basically,
we're creating a system

Italian: 
 Cioè si impara dall'esperienza. 
 Quindi, nell'apprendimento profondo, ciò che accade è 
 l'estrazione delle caratteristiche avviene automaticamente. 
 Hai bisogno di pochissima guida da parte del programmatore. 
 Quindi il deep learning imparerà il modello, 
 e capirà quale caratteristica o quale variabile 
 è importante per prevedere il risultato. 
 Supponiamo che tu abbia milioni di variabili predittive 
 for a particular problem statement. 
 How are you going to sit down and 
 understand the significance 
 of each of these predictor variables 
 it's going to be almost impossible 
 to sit down with so many features. 
 That's why we have deep learning. 
 Whenever there's high dimensionality data 
 or whenever the data is really large 
 and it has a lot of features 
 and a lot of predictor variables, we use deep learning. 
 Deep learning will extract features on its own 
 and understand which features are important 
 in predicting your output. 
 So that's the main idea behind deep learning. 
 Let me give you a small example also. 
 Suppose we want to make a system 
 that can recognize the face of different people 
 in an image. 
 Okay, so, basically, we're creating a system 

English: 
that can identify the faces of
different people in in image.
If we solve this by using
the typical machine learning algorithms,
we'll have to define
facial features like eyes,
nose, ears, et cetera.
Okay, and then the system will identify
which features are more
important for which person.
Now, if you consider deep
learning for the same example,
deep learning will automatically
find out the features
which are important for classification,
because it uses the
concept of neural networks,
whereas in machine learning we have to
manually define these features on our own.
That's the main difference
between deep learning
and machine learning.
Now the next question is
how does deep learning work?
Now when people started
coming up with deep learning,
their main aim was to
re-engineer the human brain.
Okay, deep learning studies
the basic unit of a brain
called the brain cell or a neuron.
All of you biology students
will know what I'm talking about.
So, basically, deep learning is inspired
from our brain structure.

Italian: 
 that can identify the faces of different people in in image. 
 If we solve this by using 
 the typical machine learning algorithms, 
 we'll have to define facial features like eyes, 
 nose, ears, et cetera. 
 Okay, and then the system will identify 
 which features are more important for which person. 
 Now, if you consider deep learning for the same example, 
 deep learning will automatically find out the features 
 which are important for classification, 
 because it uses the concept of neural networks, 
 whereas in machine learning we have to 
 manually define these features on our own. 
 That's the main difference between deep learning 
 and machine learning. 
 Now the next question is how does deep learning work? 
 Now when people started coming up with deep learning, 
 their main aim was to re-engineer the human brain. 
 Okay, deep learning studies the basic unit of a brain 
 called the brain cell or a neuron. 
 All of you biology students 
 will know what I'm talking about. 
 So, basically, deep learning is inspired 
 from our brain structure. 

Italian: 
 Okay, in our brains, we have something known as neurons, 
 and these neurons are replicated in deep learning 
 as artificial neurons, 
 which are also called perceptrons. 
 Now, before we understand how artificial neural networks 
 or artificial neurons work, 
 let's understand how these biological neurons work, 
 because I'm not sure how many of you 
 are bio students over here. 
 So let's understand the functionality of biological neurons 
 and how we can mimic this functionality 
 in a perceptron or in an artificial neuron. 
 So, guys, if you loo at this image, 
 this is basically an image of a biological neuron. 
 If you focus on the structure of the biological neuron, 
 it has something known dendrites. 
 These dendrites are basically used to receive inputs. 
 Now the inputs are basically found in the cell body, 
 and it's passed on the next biological neuron. 
 So, through dendrites, you're going to receive signals 
 from other neurons, basically, input. 
 Then the cell body will sum up all these inputs, 

English: 
Okay, in our brains, we have
something known as neurons,
and these neurons are
replicated in deep learning
as artificial neurons,
which are also called perceptrons.
Now, before we understand how
artificial neural networks
or artificial neurons work,
let's understand how these
biological neurons work,
because I'm not sure how many of you
are bio students over here.
So let's understand the
functionality of biological neurons
and how we can mimic this functionality
in a perceptron or in
an artificial neuron.
So, guys, if you loo at this image,
this is basically an image
of a biological neuron.
If you focus on the structure
of the biological neuron,
it has something known dendrites.
These dendrites are basically
used to receive inputs.
Now the inputs are basically
found in the cell body,
and it's passed on the
next biological neuron.
So, through dendrites, you're
going to receive signals
from other neurons, basically, input.
Then the cell body will
sum up all these inputs,

English: 
and the axon will transmit
this input to other neurons.
The axon will fire up
through some threshold,
and it will get passed
onto the next neuron.
So similar to this, a perceptron
or an artificial neuron
receives multiple inputs,
and applies various
transformations and functions
and provides us an output.
These multiple inputs are
nothing but your input variables
or your predictor variables.
You're feeding input data
to an artificial neuron
or to a perceptron,
and this perceptron will apply
various functions and transformations,
and it will give you an output.
Now just like our brain consists of
multiple connected neurons
called neural networks,
we also build something known as
a network of artificial neurons
called artificial neural networks.
So that's the basic concept
behind deep learning.
To sum it up, what
exactly is deep learning?
Now deep learning is a collection of
statistical machine learning techniques
used to learn feature
hierarchies based on the concept

Italian: 
 and the axon will transmit this input to other neurons. 
 The axon will fire up through some threshold, 
 and it will get passed onto the next neuron. 
 So similar to this, a perceptron or an artificial neuron 
 receives multiple inputs, 
 and applies various transformations and functions 
 and provides us an output. 
 These multiple inputs are nothing but your input variables 
 or your predictor variables. 
 You're feeding input data to an artificial neuron 
 or to a perceptron, 
 and this perceptron will apply 
 various functions and transformations, 
 and it will give you an output. 
 Now just like our brain consists of 
 multiple connected neurons called neural networks, 
 we also build something known as 
 a network of artificial neurons 
 called artificial neural networks. 
 So that's the basic concept behind deep learning. 
 To sum it up, what exactly is deep learning? 
 Now deep learning is a collection of 
 statistical machine learning techniques 
 used to learn feature hierarchies based on the concept 

Italian: 
 of artificial neural networks. 
 So the main idea behind deep learning 
 is artificial neural networks 
 which work exactly like how our brain works. 
 Now in this diagram, you can see that 
 there are a couple of layers. 
 The first layer is known as the input layer. 
 This is where you'll receive all the inputs. 
 The last layer is known as the output layer 
 which provides your desired output. 
 Now, all the layers which are there between your input layer 
 and your output layer are known as the hidden layers. 
 Now, they can be any number of hidden layers, 
 thanks to all the resources that we have these days. 
 So you can have hundreds of hidden layers in between. 
 Now, the number of hidden layers 
 and the number of perceptrons in each of these layers 
 will entirely depend on the problem 
 or on the use case that you're trying to solve. 
 So this is basically how deep learning works. 
 So let's look at the example that we saw earlier. 
 Here what we want to do is we want to perform 
 image recognition using deep networks. 
 First, what we're gonna do is we are going to pass 

English: 
of artificial neural networks.
So the main idea behind deep learning
is artificial neural networks
which work exactly like
how our brain works.
Now in this diagram, you can see that
there are a couple of layers.
The first layer is known
as the input layer.
This is where you'll
receive all the inputs.
The last layer is known
as the output layer
which provides your desired output.
Now, all the layers which are
there between your input layer
and your output layer are
known as the hidden layers.
Now, they can be any
number of hidden layers,
thanks to all the resources
that we have these days.
So you can have hundreds of
hidden layers in between.
Now, the number of hidden layers
and the number of perceptrons
in each of these layers
will entirely depend on the problem
or on the use case that
you're trying to solve.
So this is basically
how deep learning works.
So let's look at the
example that we saw earlier.
Here what we want to do
is we want to perform
image recognition using deep networks.
First, what we're gonna
do is we are going to pass

English: 
this high dimensional
data to the input layer.
To mach the dimensionality
of the input data,
the input layer will contain
multiple sub layers of perceptrons
so that it consume the entire input.
Okay, so you'll have multiple
sub layers of perceptrons.
Now, the output received
from the input layer
will contain patterns and
will only be able to identify
the edges of the images,
based on the contrast levels.
This output will then be fed
to hidden layer number one
where it'll be able to
identify facial features
like your eyes, nose,
ears, and all of that.
Now from here, the output will be fed
to hidden layer number two,
where it will be able to form entire faces
it'll go deeper into face recognition,
and this output of the hidden layer
will be sent to the output layer
or any other hidden layer that is there
before the output layer.
Now, finally, the output layer
will perform classification,
based on the result that you'd get
from your previous layers.

Italian: 
 this high dimensional data to the input layer. 
 To mach the dimensionality of the input data, 
 the input layer will contain 
 multiple sub layers of perceptrons 
 so that it consume the entire input. 
 Okay, so you'll have multiple sub layers of perceptrons. 
 Now, the output received from the input layer 
 will contain patterns and will only be able to identify 
 the edges of the images, based on the contrast levels. 
 This output will then be fed to hidden layer number one 
 where it'll be able to identify facial features 
 like your eyes, nose, ears, and all of that. 
 Now from here, the output will be fed 
 to hidden layer number two, 
 where it will be able to form entire faces 
 it'll go deeper into face recognition, 
 and this output of the hidden layer 
 will be sent to the output layer 
 or any other hidden layer that is there 
 before the output layer. 
 Now, finally, the output layer will perform classification, 
 based on the result that you'd get 
 from your previous layers. 

Italian: 
 So, this is exactly how deep learning works. 
 This is a small analogy that I use 
 to make you understand what deep learning is. 
 Now let's understand what a single layer perceptron is. 
 So like I said, perceptron is basically 
 an artificial neuron. 
 For something known as single layer 
 and multiple layer perceptron, 
 we'll first focus on single layer perceptron. 
 Now before I explain what a perceptron really is, 
 you should known that perceptrons are linear classifiers. 
 A single layer perceptron 
 is a linear or a binary classifier. 
 It is used mainly in supervised learning, 
 and it helps to classify the given input data 
 into separate classes. 
 So this diagram basically represents a perceptron. 
 A perceptron has multiple inputs. 
 It has a set of inputs labeled X one, X two, 
 until X n. 
 Now each of these input is given a specific weight. 
 Okay, so W one represents the weight of input X one. 

English: 
So, this is exactly how
deep learning works.
This is a small analogy that I use
to make you understand
what deep learning is.
Now let's understand what a
single layer perceptron is.
So like I said, perceptron is basically
an artificial neuron.
For something known as single layer
and multiple layer perceptron,
we'll first focus on
single layer perceptron.
Now before I explain what
a perceptron really is,
you should known that perceptrons
are linear classifiers.
A single layer perceptron
is a linear or a binary classifier.
It is used mainly in supervised learning,
and it helps to classify
the given input data
into separate classes.
So this diagram basically
represents a perceptron.
A perceptron has multiple inputs.
It has a set of inputs
labeled X one, X two,
until X n.
Now each of these input is
given a specific weight.
Okay, so W one represents
the weight of input X one.

English: 
W two represents the weight
of input X two, and so on.
Now how you assign these weights
is a different thing altogether.
But for now, you need
to know that each input
is assigned a particular weightage.
Now what a perceptron does
is it computes some functions
on these weighted inputs, and
it will give you the output.
So, basically, these weighted inputs
go through something known as summation.
Okay, summation is nothing but the product
of each of your input with
its respective weight.
Now after the summation is done,
this passed onto transfer function.
A transfer function is nothing
but an activation function.
I'll be discussing more
about this in a minute.
The activation function.
And from the activation function,
you'll get the outputs
Y one, Y two, and so on.
So guys, you need to
understand four important parts
in a perceptron.
So, firstly, you have the input values.
You have X one, X two, X three.
You have something known
as weights and bias,
and then you have something
known as the net sum
and finally the activation function.
Now, all the inputs X

Italian: 
 W two represents the weight of input X two, and so on. 
 Now how you assign these weights 
 is a different thing altogether. 
 But for now, you need to know that each input 
 is assigned a particular weightage. 
 Now what a perceptron does is it computes some functions 
 on these weighted inputs, and it will give you the output. 
 So, basically, these weighted inputs 
 go through something known as summation. 
 Okay, summation is nothing but the product 
 of each of your input with its respective weight. 
 Now after the summation is done, 
 this passed onto transfer function. 
 A transfer function is nothing but an activation function. 
 I'll be discussing more about this in a minute. 
 The activation function. 
 And from the activation function, 
 you'll get the outputs Y one, Y two, and so on. 
 So guys, you need to understand four important parts 
 in a perceptron. 
 So, firstly, you have the input values. 
 You have X one, X two, X three. 
 You have something known as weights and bias, 
 and then you have something known as the net sum 
 and finally the activation function. 
 Now, all the inputs X 

English: 
are multiplied with
the respective weights.
So, X one will be multiplied with W one.
This is known as the summation.
After this, you'll add
all the multiplied values,
and we'll call them as the weighted sum.
This is done using the summation function.
Now we'll apply the weighted sum
to a correct activation function.
Now, a lot of people have a confusion
about activation function.
Activation function is also
known as the transfer function.
Now, in order to understand
activation function,
this word stems from the way neurons
in a human brain work.
The neuron becomes activate
only after a certain potential is reached.
That threshold is known as
the activation protection.
Therefore, mathematically,
it can be represented by a function
that reaches saturation after a threshold.
Okay, we have a lot of
activation functions
like signum, sigmoid,
tan, hedge, and so on.
You can think of activation function
as a function that maps the input

Italian: 
 are multiplied with the respective weights. 
 So, X one will be multiplied with W one. 
 This is known as the summation. 
 After this, you'll add all the multiplied values, 
 and we'll call them as the weighted sum. 
 This is done using the summation function. 
 Now we'll apply the weighted sum 
 to a correct activation function. 
 Now, a lot of people have a confusion 
 about activation function. 
 Activation function is also known as the transfer function. 
 Now, in order to understand activation function, 
 this word stems from the way neurons 
 in a human brain work. 
 The neuron becomes activate 
 only after a certain potential is reached. 
 That threshold is known as the activation protection. 
 Therefore, mathematically, 
 it can be represented by a function 
 that reaches saturation after a threshold. 
 Okay, we have a lot of activation functions 
 like signum, sigmoid, tan, hedge, and so on. 
 You can think of activation function 
 as a function that maps the input 

English: 
to the respective output.
And now I also spoke
about weights and bias.
Now why do we assign weights
to each of these inputs?
What weights do is they show a strength
of a particular input,
or how important a particular input
is for predicting the final output.
So, basically, the weightage of an input
denotes the importance of that input.
Now, our bias basically allows us
to shift the activation function
in order to get a precise output.
So that was all about perceptrons.
Now in order to make you
understand perceptrons better,
let's look at a small analogy.
Suppose that you wanna go to a party
happening near your hose.
Now your decision will
depend on a set of factors.
First is how is the weather.
Second probably is your
wife, or your girlfriend,
or your boyfriend going with you.
And third, is there any
public transport available?
Let's say these are the three factors
that you're going to consider
before you go to a party.
So, depending on these predictor variables

Italian: 
 to the respective output. 
 And now I also spoke about weights and bias. 
 Now why do we assign weights to each of these inputs? 
 What weights do is they show a strength 
 of a particular input, 
 or how important a particular input 
 is for predicting the final output. 
 So, basically, the weightage of an input 
 denotes the importance of that input. 
 Now, our bias basically allows us 
 to shift the activation function 
 in order to get a precise output. 
 So that was all about perceptrons. 
 Now in order to make you understand perceptrons better, 
 let's look at a small analogy. 
 Suppose that you wanna go to a party 
 happening near your hose. 
 Now your decision will depend on a set of factors. 
 First is how is the weather. 
 Second probably is your wife, or your girlfriend, 
 or your boyfriend going with you. 
 And third, is there any public transport available? 
 Let's say these are the three factors 
 that you're going to consider before you go to a party. 
 So, depending on these predictor variables 

Italian: 
 or these features, 
 you're going to decide whether you're going to stay at home 
 or go and party. 
 Now, how is the weather is going to be your first input. 
 We'll represent this with a value X one. 
 Is your wife going with you is another input X two. 
 Any public transport is available 
 is your another input X three. 
 Now, X one will have two values, one and zero. 
 One represents that the weather is good. 
 Zero represents weather is bad. 
 Similarly, one represents that your wife is going, 
 and zero represents that your wife is not going. 
 And in X three, again, one represents that 
 there is public transport, 
 and zero represents that there is no public transport. 
 Now your output will either be one or zero. 
 One means you are going to the party, 
 and zero means you will be sitting at home. 
 Now in order to understand weightage, 
 let's say that the most important factor for you 
 is your weather. 
 If the weather is good, 
 it means that you will 100% go to the party. 

English: 
or these features,
you're going to decide whether
you're going to stay at home
or go and party.
Now, how is the weather is
going to be your first input.
We'll represent this with a value X one.
Is your wife going with
you is another input X two.
Any public transport is available
is your another input X three.
Now, X one will have two
values, one and zero.
One represents that the weather is good.
Zero represents weather is bad.
Similarly, one represents
that your wife is going,
and zero represents that
your wife is not going.
And in X three, again, one represents that
there is public transport,
and zero represents that
there is no public transport.
Now your output will
either be one or zero.
One means you are going to the party,
and zero means you will
be sitting at home.
Now in order to understand weightage,
let's say that the most
important factor for you
is your weather.
If the weather is good,
it means that you will
100% go to the party.

Italian: 
 Now if you weather is not good, 
 you've decided that you'll sit at home. 
 So the maximum weightage is for your weather variable. 
 So if your weather is really good, 
 you will go to the party. 
 It is a very important factor in order to understand 
 whether you're going to sit at home 
 or you're going to go to the party. 
 So, basically, if X one equal to one, 
 your output will be one. 
 Meaning that if your weather is good, 
 you'll go to the party. 
 Now let's randomly assign weights to each of our input. 
 W one is the weight associated with input X one. 
 W two is the weight with X two 
 and W three is the weight associated with X three. 
 Let's say that your W one is six, 
 your W two is two, and W three is two. 
 Now by using the activation function, 
 you're going to set a threshold of five. 
 Now this means that it will fire 
 when the weather is good 
 and won't fire if the weather is bad, 
 irrespective of the other inputs. 
 Now here, because your weightage is six, 
 so, basically, if you consider your first input 

English: 
Now if you weather is not good,
you've decided that you'll sit at home.
So the maximum weightage is
for your weather variable.
So if your weather is really good,
you will go to the party.
It is a very important
factor in order to understand
whether you're going to sit at home
or you're going to go to the party.
So, basically, if X one equal to one,
your output will be one.
Meaning that if your weather is good,
you'll go to the party.
Now let's randomly assign
weights to each of our input.
W one is the weight
associated with input X one.
W two is the weight with X two
and W three is the weight
associated with X three.
Let's say that your W one is six,
your W two is two, and W three is two.
Now by using the activation function,
you're going to set a threshold of five.
Now this means that it will fire
when the weather is good
and won't fire if the weather is bad,
irrespective of the other inputs.
Now here, because your weightage is six,
so, basically, if you
consider your first input

English: 
which has a weightage of six,
that means you're 100% going to go.
Let's say you're considering
only the second input.
This means that you're not going to go,
because your weightage is two
and your threshold is five.
So if your weightage is
below your threshold,
it means that you're not going to go.
Now let's consider another scenario
where our threshold is three.
This means that it'll fire
when either X one is high
or the other two inputs are high.
Now W two is associated with
your wife is going or not.
Let's say the weather is bad
and you have no public transportation,
meaning that your x one
and x three is zero,
and only your x two is one.
Now if your x two is one,
your weightage is going to be two.
If your weightage is two,
you will not go because the
threshold value is set to three.
The threshold value is
set in such a way that
if X two and X three
are combined together,
only then you'll go,
or only if x one is true, then you'll go.
So you're assigning
threshold in such a way that

Italian: 
 which has a weightage of six, 
 that means you're 100% going to go. 
 Let's say you're considering only the second input. 
 This means that you're not going to go, 
 because your weightage is two and your threshold is five. 
 So if your weightage is below your threshold, 
 it means that you're not going to go. 
 Now let's consider another scenario 
 where our threshold is three. 
 This means that it'll fire 
 when either X one is high 
 or the other two inputs are high. 
 Now W two is associated with your wife is going or not. 
 Let's say the weather is bad 
 and you have no public transportation, 
 meaning that your x one and x three is zero, 
 and only your x two is one. 
 Now if your x two is one, 
 your weightage is going to be two. 
 If your weightage is two, 
 you will not go because the threshold value is set to three. 
 The threshold value is set in such a way that 
 if X two and X three are combined together, 
 only then you'll go, 
 or only if x one is true, then you'll go. 
 So you're assigning threshold in such a way that 

English: 
you will go for sure
if the weather is good.
This is how you assign threshold.
This is nothing but your
activation function.
So guys, I hope all of you understood,
the most amount of weightage
is associated with the
input that is very important
in predicting your output.
This is exactly how a perceptron works.
Now let's look at the
limitations of a perceptron.
Now in a perceptron, there
are no hidden layers.
There's only an input layer,
and there is an output layer.
We have no hidden layers in between.
And because of this, you cannot classify
non-linearly separable data points.
Okay, if you have data,
like in this figure,
how will you separate this.
You cannot use a perceptron to do this.
Alright, so complex problems that involve
a lot of parameters cannot be solved
by a single layer perceptron.
That's why we need something known as
multiple layer perceptron.
So now we'll discuss something known as
multilayer perceptron.

Italian: 
 you will go for sure if the weather is good. 
 This is how you assign threshold. 
 This is nothing but your activation function. 
 So guys, I hope all of you understood, 
 the most amount of weightage 
 is associated with the input that is very important 
 in predicting your output. 
 This is exactly how a perceptron works. 
 Now let's look at the limitations of a perceptron. 
 Now in a perceptron, there are no hidden layers. 
 There's only an input layer, 
 and there is an output layer. 
 We have no hidden layers in between. 
 And because of this, you cannot classify 
 non-linearly separable data points. 
 Okay, if you have data, like in this figure, 
 how will you separate this. 
 You cannot use a perceptron to do this. 
 Alright, so complex problems that involve 
 a lot of parameters cannot be solved 
 by a single layer perceptron. 
 That's why we need something known as 
 multiple layer perceptron. 
 So now we'll discuss something known as 
 multilayer perceptron. 

English: 
A multilayer perceptron
has the same structure
of a single layer perceptron,
but with one or more hidden layer.
Okay, and that's why it's
consider as a deep neural network.
So in a single layer perceptron,
we had only input layer, output layer.
We didn't have any hidden layer.
Now when it comes to
multi-layer perceptron,
there are hidden layers in between,
and then there is the output layer.
It was in this similar
manner, like I said,
first, you'll have the
input X one, X two, X three,
and so on.
And each of these inputs
will be assigned some weight.
W one, W two, W three, and so on.
Then you'll calculate
the weighted summation
of each of these inputs and their weights.
After that, you'll send
them to the transformation
or the activation function,
and you'll finally get the output.
Now, the only thing is
that you'll have multiple
hidden layers in between,
one or more than one hidden layers.
So, guys, this is how a
multilayer perceptron works.
It works on the concept of
feed forward neural networks.

Italian: 
 A multilayer perceptron has the same structure 
 of a single layer perceptron, 
 but with one or more hidden layer. 
 Okay, and that's why it's consider as a deep neural network. 
 So in a single layer perceptron, 
 we had only input layer, output layer. 
 We didn't have any hidden layer. 
 Now when it comes to multi-layer perceptron, 
 there are hidden layers in between, 
 and then there is the output layer. 
 It was in this similar manner, like I said, 
 first, you'll have the input X one, X two, X three, 
 e così via. 
 And each of these inputs will be assigned some weight. 
 W one, W two, W three, and so on. 
 Then you'll calculate the weighted summation 
 of each of these inputs and their weights. 
 After that, you'll send them to the transformation 
 or the activation function, 
 and you'll finally get the output. 
 Now, the only thing is that you'll have multiple 
 hidden layers in between, 
 one or more than one hidden layers. 
 So, guys, this is how a multilayer perceptron works. 
 It works on the concept of feed forward neural networks. 

Italian: 
 Feed forward means every node at each level 
 or each layer is connected to every other node. 
 So that's what feed forward networks are. 
 Now when it comes to assigning weights, 
 what we do is we randomly assign weights. 
 Initially we have input X one, X two, X three. 
 We randomly assign some weight W one, W two, W three, 
 e così via. 
 Now it's always necessary that whatever weights 
 we assign to our input, 
 those weights are actually correct, 
 meaning that those weights are company significant 
 in predicting your output. 
 So how a multilayer perceptron works is 
 a set of inputs are passed to the first hidden layer. 
 Now the activations from that layer are passed 
 through the next layer. 
 And from that layer, it's passed to the next hidden layer, 
 until you reach the output layer. 
 From the output layer, you'll form the two classes, 
 class one and class two. 
 Basically, you'll classify your input into 
 one of the two classes. 
 So that's how a multilayer perceptron works. 

English: 
Feed forward means
every node at each level
or each layer is connected
to every other node.
So that's what feed forward networks are.
Now when it comes to assigning weights,
what we do is we randomly assign weights.
Initially we have input
X one, X two, X three.
We randomly assign some
weight W one, W two, W three,
and so on.
Now it's always necessary
that whatever weights
we assign to our input,
those weights are actually correct,
meaning that those weights
are company significant
in predicting your output.
So how a multilayer perceptron works is
a set of inputs are passed
to the first hidden layer.
Now the activations from
that layer are passed
through the next layer.
And from that layer, it's
passed to the next hidden layer,
until you reach the output layer.
From the output layer,
you'll form the two classes,
class one and class two.
Basically, you'll classify your input into
one of the two classes.
So that's how a multilayer
perceptron works.

English: 
A very important concept the
multiple layer perceptron
is back propagation.
Now what is back propagation.
Back propagation algorithm is
a supervised learning method
for multilayer perceptrons.
Okay, now why do we need back propagation?
So guys, when we are
designing a neural network
in the beginning, we initialize weights
with some random values, or
any variable for that fact.
Now, obviously, we need to
make sure that these weights
actually are correct,
meaning that these weights
show the significance
of each predictor variable.
These weights have to fit our model
in such a way that our
output is very precise.
So let's say that we randomly selected
some weights in the beginning,
but our model output
is much more different
than our actual output,
meaning that our error value is very huge.
So how will you reduce this error.
Basically, what you need to do is
we need to somehow explain to the model
that we need to change the weight
in such a way that the
error becomes minimum.

Italian: 
 A very important concept the multiple layer perceptron 
 is back propagation. 
 Now what is back propagation. 
 Back propagation algorithm is 
 a supervised learning method for multilayer perceptrons. 
 Okay, now why do we need back propagation? 
 So guys, when we are designing a neural network 
 in the beginning, we initialize weights 
 with some random values, or any variable for that fact. 
 Now, obviously, we need to make sure that these weights 
 actually are correct, 
 meaning that these weights show the significance 
 of each predictor variable. 
 These weights have to fit our model 
 in such a way that our output is very precise. 
 So let's say that we randomly selected 
 some weights in the beginning, 
 but our model output is much more different 
 than our actual output, 
 meaning that our error value is very huge. 
 So how will you reduce this error. 
 Basically, what you need to do is 
 we need to somehow explain to the model 
 that we need to change the weight 
 in such a way that the error becomes minimum. 

English: 
So the main thing is the
weight and your error
is very highly related.
The weightage that you give to each input
will show how much error
is there in your output,
because the most significant variables
will have the highest weightage.
And if the weightage is not correct,
then your output is also not correct.
Now, back propagation is a
way to update your weights
in such a way that your outcome is precise
and your error is reduced.
So, in short back
propagation is used to train
a multilayer perceptron.
It's basically use to update your weights
in such a way that your
output is more precise,
and that your error is reduced.
So training a neural network
is all about back propagation.
So the most common deep learning algorithm
for supervised training of
the multilayer perceptron
is known as back propagation.
So, after calculating the
weighted sum of inputs
and passing them through
the activation function,
we propagate backwards
and update the weights
to reduce the error.

Italian: 
 So the main thing is the weight and your error 
 is very highly related. 
 The weightage that you give to each input 
 will show how much error is there in your output, 
 because the most significant variables 
 will have the highest weightage. 
 And if the weightage is not correct, 
 then your output is also not correct. 
 Now, back propagation is a way to update your weights 
 in such a way that your outcome is precise 
 and your error is reduced. 
 So, in short back propagation is used to train 
 a multilayer perceptron. 
 It's basically use to update your weights 
 in such a way that your output is more precise, 
 and that your error is reduced. 
 So training a neural network is all about back propagation. 
 So the most common deep learning algorithm 
 for supervised training of the multilayer perceptron 
 is known as back propagation. 
 So, after calculating the weighted sum of inputs 
 and passing them through the activation function, 
 we propagate backwards and update the weights 
 to reduce the error. 

Italian: 
 E 'così semplice. 
 So in the beginning, you're going to assign some weights 
 to each of your input. 
 Now these inputs will go through the activation function 
 and it'll go through all the hidden layers 
 and give us an output. 
 Now when you get the output, 
 the output is not very precise, 
 or it is not the desired output. 
 So what you'll do is you'll propagate backwards, 
 and you start updating your weights 
 in such a way that your error 
 is as minimum as possible. 
 So, I'm going to repeat this once more. 
 So the idea behind back propagation 
 is to choose weights in such a way 
 that your error gets minimized. 
 To understand this, we'll look at a small example. 
 Let's say that we have a data set which has these labels. 
 Okay, your input is zero, one, two, 
 but your desired output is zero, one, and four 
 now the output of your model 
 when W equal to three is like this. 
 Notice the difference between your model output 
 and your desired output. 
 So, your model output is three, 

English: 
It's as simple as that.
So in the beginning, you're
going to assign some weights
to each of your input.
Now these inputs will go
through the activation function
and it'll go through all the hidden layers
and give us an output.
Now when you get the output,
the output is not very precise,
or it is not the desired output.
So what you'll do is
you'll propagate backwards,
and you start updating your weights
in such a way that your error
is as minimum as possible.
So, I'm going to repeat this once more.
So the idea behind back propagation
is to choose weights in such a way
that your error gets minimized.
To understand this, we'll
look at a small example.
Let's say that we have a data
set which has these labels.
Okay, your input is zero, one, two,
but your desired output
is zero, one, and four
now the output of your model
when W equal to three is like this.
Notice the difference
between your model output
and your desired output.
So, your model output is three,

English: 
but your desired output is two.
Similarly, when your model output is six,
your desired output is
supposed to be four.
Now let's calculate the error
when weight is equal to three.
The error is zero over here
because your desired output is zero,
and your model output is also zero.
Now the error in the second case is one.
Basically, your model output
minus your desired output.
Three minus two, your error is one.
Similarly, your error for
the third input is two,
which is six minus four.
When you take the square,
this is actually a very huge difference,
your error becomes larger.
Now what we need to do
is we need to update the weight value
in such a way that our error decreases.
Now here we've considered
the weight as four.
So when you consider the weight as four,
your model output becomes
zero, four, and eight.
Your desired output is
zero, two, and four.
So your model output becomes
zero, four, and eight,
which is a lot.
So guys, I hope you all know

Italian: 
 but your desired output is two. 
 Similarly, when your model output is six, 
 your desired output is supposed to be four. 
 Now let's calculate the error when weight is equal to three. 
 The error is zero over here 
 because your desired output is zero, 
 and your model output is also zero. 
 Now the error in the second case is one. 
 Basically, your model output minus your desired output. 
 Three minus two, your error is one. 
 Similarly, your error for the third input is two, 
 which is six minus four. 
 When you take the square, 
 this is actually a very huge difference, 
 your error becomes larger. 
 Now what we need to do 
 is we need to update the weight value 
 in such a way that our error decreases. 
 Now here we've considered the weight as four. 
 So when you consider the weight as four, 
 your model output becomes zero, four, and eight. 
 Your desired output is zero, two, and four. 
 So your model output becomes zero, four, and eight, 
 which is a lot. 
 So guys, I hope you all know 

Italian: 
 how to calculate the output over here. 
 What I'm doing is I'm multiplying the input 
 with your weightage. 
 The weightage is four, 
 so zero into four will give me zero. 
 One into four will give me four, 
 and two into four will give me eight. 
 That's how I'm getting my model output over here. 
 For now, this is how I'm getting the output over here. 
 That's how you calculate your weightage. 
 Now, here, if you see that our desire output 
 is supposed to be zero, two, and four, 
 but we're getting an output of zero, four, and eight. 
 So our error is actually increasing 
 as we increase our weight. 
 Our error four W equal to four 
 have become zero, four, and 16, 
 whereas the error for W equal to three, 
 zero, one, and four. 
 I mean the square error. 
 So if you look at this, as we increase our weightage, 
 our error is increasing. 
 So, obviously, we know that 
 there is no point in increasing the value of W further. 
 But if we decrease the value of W, 
 our error actually decreases. 

English: 
how to calculate the output over here.
What I'm doing is I'm
multiplying the input
with your weightage.
The weightage is four,
so zero into four will give me zero.
One into four will give me four,
and two into four will give me eight.
That's how I'm getting my
model output over here.
For now, this is how I'm
getting the output over here.
That's how you calculate your weightage.
Now, here, if you see
that our desire output
is supposed to be zero, two, and four,
but we're getting an output
of zero, four, and eight.
So our error is actually increasing
as we increase our weight.
Our error four W equal to four
have become zero, four, and 16,
whereas the error for W equal to three,
zero, one, and four.
I mean the square error.
So if you look at this, as
we increase our weightage,
our error is increasing.
So, obviously, we know that
there is no point in increasing
the value of W further.
But if we decrease the value of W,
our error actually decreases.

English: 
Alright, if we give a weightage of two,
our error decreases.
If we can find a relationship
between our weight and error,
basically, if you increase the weight,
your error also increases.
If you decrease the weight,
your error also decreases.
Now what we did here
is we first initialize
some random value to W,
and then we propagated forward.
Then we notice that there is some error.
And to reduce that error,
we propagated backwards
and increase the value of W.
After that, we notice that
the error has increased,
and we came to know that we
can't increase the w value.
Obviously, if your error is increasing
with increasing your weight,
you will not increase the weight.
So again, we propagated backwards,
and we decreased the W value.
So, after that, we noticed
that the error has reduced.
So what we're trying
is we're trying to get
the value of weight in such a way
that the error becomes
as minimum as possible
so we need to figure out whether we need
to increase or decrease thew eight value.

Italian: 
 Alright, if we give a weightage of two, 
 our error decreases. 
 If we can find a relationship between our weight and error, 
 basically, if you increase the weight, 
 your error also increases. 
 If you decrease the weight, your error also decreases. 
 Now what we did here is we first initialize 
 some random value to W, 
 and then we propagated forward. 
 Then we notice that there is some error. 
 And to reduce that error, we propagated backwards 
 and increase the value of W. 
 After that, we notice that the error has increased, 
 and we came to know that we can't increase the w value. 
 Obviously, if your error is increasing 
 with increasing your weight, 
 you will not increase the weight. 
 So again, we propagated backwards, 
 and we decreased the W value. 
 So, after that, we noticed that the error has reduced. 
 So what we're trying is we're trying to get 
 the value of weight in such a way 
 that the error becomes as minimum as possible 
 so we need to figure out whether we need 
 to increase or decrease thew eight value. 

English: 
Once we know that, we keep
on updating the weight value
in that direction,
until the error becomes minimum.
Now you might reach a point where
if you further update the weight,
the error will again increase.
At that point, you need to stop.
Okay, at that point
is where your final weight value is there.
So, basically, this
graph denotes that point.
Now this point is nothing
but the global loss minimum.
If you update the weights further,
your error will also increase.
Now you need to find out where
your global loss minimum is,
and that is where your
optimum weight lies.
So let me summarize the steps for you.
First, you'll calculate the error.
This is how far your model output is
from your actual output.
Then you'll check whether the error
is minimized or not.
After that, if the error is very huge,
then you'll update the weight,
and you'll check the error again.
You'll repeat the process
until the error becomes minimum
now once you reach the
global loss minimum,

Italian: 
 Once we know that, we keep on updating the weight value 
 in that direction, 
 until the error becomes minimum. 
 Now you might reach a point where 
 if you further update the weight, 
 the error will again increase. 
 At that point, you need to stop. 
 Okay, at that point 
 is where your final weight value is there. 
 So, basically, this graph denotes that point. 
 Now this point is nothing but the global loss minimum. 
 If you update the weights further, 
 your error will also increase. 
 Now you need to find out where your global loss minimum is, 
 and that is where your optimum weight lies. 
 So let me summarize the steps for you. 
 First, you'll calculate the error. 
 This is how far your model output is 
 from your actual output. 
 Then you'll check whether the error 
 is minimized or not. 
 After that, if the error is very huge, 
 then you'll update the weight, 
 and you'll check the error again. 
 You'll repeat the process until the error becomes minimum 
 now once you reach the global loss minimum, 

English: 
you'll stop updating the weights,
and we'll finalize your weight value.
This is exactly how
back propagation works.
Now in order to tell you
mathematically what we're doing
is we're using a method
known as gradient descent.
Okay, this method is used
to adjust all the weights in the network
with an aim of reducing the
error at the output layer.
So how gradient descent
optimize our works is
the first step is you
will calculate the error
by considering the below equation.
Here you're subtracting the
summation of your actual output
from your network output.
Step two is based on the error you get,
you will calculate the
rate of change of error
with respect to the change in the weight.
The learning rate is
something that you set
in the beginning itself.
Step three is based on
this change in weight,
you will calculate the new weight.
Alright, your updated
weight will be your weight
plus the rate of change of weight.
So guys, that was all about
back propagation and weight update.

Italian: 
 you'll stop updating the weights, 
 and we'll finalize your weight value. 
 This is exactly how back propagation works. 
 Now in order to tell you mathematically what we're doing 
 is we're using a method known as gradient descent. 
 Okay, this method is used 
 to adjust all the weights in the network 
 with an aim of reducing the error at the output layer. 
 So how gradient descent optimize our works is 
 the first step is you will calculate the error 
 by considering the below equation. 
 Here you're subtracting the summation of your actual output 
 from your network output. 
 Step two is based on the error you get, 
 you will calculate the rate of change of error 
 with respect to the change in the weight. 
 The learning rate is something that you set 
 in the beginning itself. 
 Step three is based on this change in weight, 
 you will calculate the new weight. 
 Alright, your updated weight will be your weight 
 plus the rate of change of weight. 
 So guys, that was all about 
 back propagation and weight update. 

Italian: 
 Now let's look at the limitations of feed forward network. 
 So far, we were discussing the multiple layer perceptron, 
 which uses the feed forward network. 
 Let's discuss the limitations of these 
 feed forward networks. 
 Now let's consider an example of image classification. 
 Okay, let's say you've trained the neural network 
 to classify images of various animals. 
 Now let's consider an example. 
 Here the first output is an elephant. 
 We have an elephant. 
 And this output will have nothing to do 
 with the previous output, which is a dog. 
 This means that the output at time T 
 is independent of the output at time T minus one. 
 Now consider this scenario 
 where you will require the use 
 of previously obtained output. 
 Okay, the concept is very similarly to reading a book. 
 As you turn every page, you need 
 an understanding of the previous pages 
 if you want to make sense of the information, 
 then you need to know what you learned before. 
 That's exactly what you're doing right now. 

English: 
Now let's look at the limitations
of feed forward network.
So far, we were discussing
the multiple layer perceptron,
which uses the feed forward network.
Let's discuss the limitations of these
feed forward networks.
Now let's consider an example
of image classification.
Okay, let's say you've
trained the neural network
to classify images of various animals.
Now let's consider an example.
Here the first output is an elephant.
We have an elephant.
And this output will have nothing to do
with the previous output, which is a dog.
This means that the output at time T
is independent of the
output at time T minus one.
Now consider this scenario
where you will require the use
of previously obtained output.
Okay, the concept is very
similarly to reading a book.
As you turn every page, you need
an understanding of the previous pages
if you want to make
sense of the information,
then you need to know
what you learned before.
That's exactly what
you're doing right now.

Italian: 
 In order to understand deep learning, 
 you have to understand machine learning. 
 So, basically, with the feed forward network 
 the new output at time T plus one 
 has nothing to do with the output at time T, 
 or T minus one, or T minus two. 
 So feed forward networks cannot be used 
 while predicting a word in a sentence, 
 as it will have absolutely no relationship 
 with the previous set of words. 
 So, a feed forward network cannot be used in 
 use cases wherein you have to predict the outcome 
 based on your previous outcome. 
 So, in a lot of use cases, 
 your previous output will also determine your next output. 
 So, for such cases, you may not make use 
 of feed forward network. 
 Now, what modification can you make 
 so that your network can learn 
 from your previous mistakes. 
 For this, we have solution. 
 So, a solution to this is recurrent neural networks. 
 So, basically, let's say you have an input 
 at time T minus one, 
 and you'll get some output when you feed it to the network. 

English: 
In order to understand deep learning,
you have to understand machine learning.
So, basically, with the
feed forward network
the new output at time T plus one
has nothing to do with
the output at time T,
or T minus one, or T minus two.
So feed forward networks cannot be used
while predicting a word in a sentence,
as it will have absolutely no relationship
with the previous set of words.
So, a feed forward
network cannot be used in
use cases wherein you have
to predict the outcome
based on your previous outcome.
So, in a lot of use cases,
your previous output will also
determine your next output.
So, for such cases, you may not make use
of feed forward network.
Now, what modification can you make
so that your network can learn
from your previous mistakes.
For this, we have solution.
So, a solution to this is
recurrent neural networks.
So, basically, let's say you have an input
at time T minus one,
and you'll get some output when
you feed it to the network.

Italian: 
 Now, some information from this input at T minus one 
 is fed to the next input, 
 which is input at time T. 
 Some information from this output 
 is fed into the next input, 
 which is input at T plus one. 
 So, basically, you keep feeding information 
 from the previous input to the next input. 
 That's how recurrent neural networks really work. 
 So recurrent networks 
 are a type of artificial neural networks 
 designed to recognize patterns in sequence of data, 
 such as text, genomes, handwriting, spoken words, 
 time series data, sensors, stock markets, 
 and government agencies. 
 So, guys, recurrent neural networks are actually 
 a very important part of deep learning, 
 because recurring neural networks have 
 applications in a lot of domains. 
 Okay, in time series and in stock markets, 
 the main network that I use 
 are recurrent neural networks, 
 because each of your inputs are correlated 
 now to better understand recurrent neural networks, 
 let's consider a small example 

English: 
Now, some information from
this input at T minus one
is fed to the next input,
which is input at time T.
Some information from this output
is fed into the next input,
which is input at T plus one.
So, basically, you keep
feeding information
from the previous input to the next input.
That's how recurrent neural
networks really work.
So recurrent networks
are a type of artificial neural networks
designed to recognize
patterns in sequence of data,
such as text, genomes,
handwriting, spoken words,
time series data, sensors, stock markets,
and government agencies.
So, guys, recurrent neural
networks are actually
a very important part of deep learning,
because recurring neural networks have
applications in a lot of domains.
Okay, in time series and in stock markets,
the main network that I use
are recurrent neural networks,
because each of your inputs are correlated
now to better understand
recurrent neural networks,
let's consider a small example

Italian: 
 let's say that you go to the gym regularly, 
 and the trainer has given you 
 a schedule for your workout. 
 So basically, the exercises are repeated 
 after every third day. 
 Okay, this is what your schedule looks like. 
 So, make a note that all these exercises are repeated 
 in a proper order or in a sequence every week 
 first, let us use a feedforward network 
 to try and predict the type of exercises 
 that we're going to do. 
 The inputs here are Day of the week, the month, 
 and your health status. 
 Okay, so, neural network has to be trained 
 using these inputs to provide us with the prediction 
 of the exercise that we should do. 
 Now let's try and understand the same thing using 
 recurrent neural networks. 
 In recurrent neural networks, 
 what we'll do is we'll consider the inputs 
 of the previous day. 
 Okay, so if you did a shoulder workout yesterday, 
 then you can do a bicep exercise today, 
 and this goes on for the rest of the week. 
 However, if you happen to miss a day at the gym, 
 the data from the previously attended time stamps 
 can be considered. 

English: 
let's say that you go
to the gym regularly,
and the trainer has given you
a schedule for your workout.
So basically, the exercises are repeated
after every third day.
Okay, this is what your
schedule looks like.
So, make a note that all
these exercises are repeated
in a proper order or in
a sequence every week
first, let us use a feedforward network
to try and predict the type of exercises
that we're going to do.
The inputs here are Day
of the week, the month,
and your health status.
Okay, so, neural network has to be trained
using these inputs to provide
us with the prediction
of the exercise that we should do.
Now let's try and understand
the same thing using
recurrent neural networks.
In recurrent neural networks,
what we'll do is we'll consider the inputs
of the previous day.
Okay, so if you did a
shoulder workout yesterday,
then you can do a bicep exercise today,
and this goes on for the rest of the week.
However, if you happen
to miss a day at the gym,
the data from the previously
attended time stamps
can be considered.

English: 
It can be done like this.
So, if a model is
trained based on the data
it can obtain from the previous exercise,
the output on the model
will be extremely accurate.
In such cases, if you
need to do know the output
at T minus one in order to
predict the output at T.
In such cases, recurrent neural
networks are very essential.
So, basically, I'm feeding some inputs
through the neural networks.
You'll go through a few functions,
and you'll get the output.
So, basically, you're
predicting the output
based on past information
or based on your past input.
So that's how recurrent
neural networks work.
Now let's look at another
type of neural network
known as convolutional neural network.
To understand why we need
convolutional neural networks,
let's look at an analogy.
How do you think a
computer reads an image?
Consider this image.
This is a New York skyline image.
On the first glance,
you'll see a lot of buildings
and a lot of colors.

Italian: 
 It can be done like this. 
 So, if a model is trained based on the data 
 it can obtain from the previous exercise, 
 the output on the model will be extremely accurate. 
 In such cases, if you need to do know the output 
 at T minus one in order to predict the output at T. 
 In such cases, recurrent neural networks are very essential. 
 So, basically, I'm feeding some inputs 
 through the neural networks. 
 You'll go through a few functions, 
 and you'll get the output. 
 So, basically, you're predicting the output 
 based on past information or based on your past input. 
 So that's how recurrent neural networks work. 
 Now let's look at another type of neural network 
 known as convolutional neural network. 
 To understand why we need convolutional neural networks, 
 let's look at an analogy. 
 How do you think a computer reads an image? 
 Consider this image. 
 This is a New York skyline image. 
 On the first glance, 
 you'll see a lot of buildings and a lot of colors. 

Italian: 
 How does a computer process this image? 
 The image is actually broken down into three color channels, 
 which is the red, green, and blue. 
 It reads in the form of RGB values. 
 Now each of these color channels are mapped 
 with the image's pixel 
 then the computer will recognize the value 
 associated with each pixel, 
 and determine the size of the image. 
 Now for the black and white images, 
 there is only one channel, 
 but the concept is still the same. 
 The thing is we cannot make use of 
 fully connected networks when it comes to 
 convolutional neural networks. 
 I'll tell you why. 
 Now consider the first input image. 
 Okay, first image has size about 
 28 into 28 into three pixels. 
 And if we input this to a neural network, 
 we'll get about 2,352 weights 
 in the first hidden layer itself. 
 Now consider another example. 
 Okay, let's say we have an image 
 of 200 into 200 into three pixels. 
 So the size of your first hidden layer 
 becomes around 120,000. 

English: 
How does a computer process this image?
The image is actually broken
down into three color channels,
which is the red, green, and blue.
It reads in the form of RGB values.
Now each of these color
channels are mapped
with the image's pixel
then the computer will recognize the value
associated with each pixel,
and determine the size of the image.
Now for the black and white images,
there is only one channel,
but the concept is still the same.
The thing is we cannot make use of
fully connected networks when it comes to
convolutional neural networks.
I'll tell you why.
Now consider the first input image.
Okay, first image has size about
28 into 28 into three pixels.
And if we input this to a neural network,
we'll get about 2,352 weights
in the first hidden layer itself.
Now consider another example.
Okay, let's say we have an image
of 200 into 200 into three pixels.
So the size of your first hidden layer
becomes around 120,000.

English: 
Now if this is just
the first hidden layer,
imagine the number of
neurons that you need
to process an entire complex image set.
This leads to something
known as overfitting,
because all of the hidden
layers are connected.
They're massively connected.
There's connection between
each and every node.
Because of this, we face overfitting.
We have way too much of data.
We have to use way too many neurons,
which is not practical.
So that's why we have something known as
convolutional neural networks.
Now convolutional neural networks,
like any other neural network
are made up of neurons with
learnable weights and basis.
So each neuron receives several input.
It takes a weighted sum over them,
and it gets passed on through
some activation function,
and finally responds with an output.
So, the concept in
convolutional neural networks
is that the neuron in a particular layer
will only be connected to a small region
of the layer before it.
Not all the neurons will be connected
in a fully-connected manner,

Italian: 
 Now if this is just the first hidden layer, 
 imagine the number of neurons that you need 
 to process an entire complex image set. 
 This leads to something known as overfitting, 
 because all of the hidden layers are connected. 
 They're massively connected. 
 There's connection between each and every node. 
 Because of this, we face overfitting. 
 We have way too much of data. 
 We have to use way too many neurons, 
 which is not practical. 
 So that's why we have something known as 
 convolutional neural networks. 
 Now convolutional neural networks, 
 like any other neural network 
 are made up of neurons with learnable weights and basis. 
 So each neuron receives several input. 
 It takes a weighted sum over them, 
 and it gets passed on through some activation function, 
 and finally responds with an output. 
 So, the concept in convolutional neural networks 
 is that the neuron in a particular layer 
 will only be connected to a small region 
 of the layer before it. 
 Not all the neurons will be connected 
 in a fully-connected manner, 

English: 
which leads to overfitting
because we need way too many neurons
to solve this problem.
Only the regions, which are significant
are connected to each other.
There is no full connection
in convolutional neural networks.
So gus, what we did so far is we discussed
what a perceptron is.
We discussed the different types
of neural networks that are there.
We discussed a feedforward neural network.
We discuss multi layer perceptrons
we discussed recurrent neural networks,
and convolutional neural networks.
I'm not going to go too much in depth
with these concepts
now I'll be executing a demo.
If you you haven't understood any
theoretical concept of deep learning,
please let me know in the comment section.
Apart from this, I'll also leave
a couple of links in the description box,
so that you understand the
whole download in a better way.
Okay, if you want a more
in-depth explanation,
I'll leave a couple of links
in the description box.
For now, what I'm gonna
do is I'll be running
a practical demonstration to show you
what exactly download does

Italian: 
 which leads to overfitting 
 because we need way too many neurons 
 to solve this problem. 
 Only the regions, which are significant 
 are connected to each other. 
 There is no full connection 
 in convolutional neural networks. 
 So gus, what we did so far is we discussed 
 what a perceptron is. 
 We discussed the different types 
 of neural networks that are there. 
 We discussed a feedforward neural network. 
 We discuss multi layer perceptrons 
 we discussed recurrent neural networks, 
 and convolutional neural networks. 
 I'm not going to go too much in depth 
 with these concepts 
 now I'll be executing a demo. 
 If you you haven't understood any 
 theoretical concept of deep learning, 
 please let me know in the comment section. 
 Apart from this, I'll also leave 
 a couple of links in the description box, 
 so that you understand the whole download in a better way. 
 Okay, if you want a more in-depth explanation, 
 I'll leave a couple of links in the description box. 
 For now, what I'm gonna do is I'll be running 
 a practical demonstration to show you 
 what exactly download does 

Italian: 
 so, basically, what we're going to do in this demo 
 is we're going to predict stock prices. 
 Like I said, stock price prediction 
 is one of the very good applications 
 of deep neural networks. 
 You can easily predict the stock price 
 of a particular stock for the next minute 
 or the next day by using deep neural networks. 
 So that's exactly what we're gonna do in this demo 
 now, before I discuss the code, 
 let me tell you a few things about our data set. 
 The data set contains around 42,000 minutes 
 of data ranging from April to August 2017 
 on 500 stocks, 
 as well as the total S&P 500 Index price. 
 So the index and stocks are arranged 
 in a wide format. 
 So, this is my data set, data_stocks. 
 It's in the CSV format. 
 So what I'm gonna do is I'm going to use 
 the read CSV function in order to import this data set. 
 This is just the part of where my data set is stored. 
 This data set was actually cleaned and prepared, 

English: 
so, basically, what we're
going to do in this demo
is we're going to predict stock prices.
Like I said, stock price prediction
is one of the very good applications
of deep neural networks.
You can easily predict the stock price
of a particular stock for the next minute
or the next day by using
deep neural networks.
So that's exactly what
we're gonna do in this demo
now, before I discuss the code,
let me tell you a few
things about our data set.
The data set contains
around 42,000 minutes
of data ranging from April to August 2017
on 500 stocks,
as well as the total S&P 500 Index price.
So the index and stocks are arranged
in a wide format.
So, this is my data set, data_stocks.
It's in the CSV format.
So what I'm gonna do is I'm going to use
the read CSV function in
order to import this data set.
This is just the part of
where my data set is stored.
This data set was actually
cleaned and prepared,

Italian: 
 meaning that we don't have any missing stock 
 and index prices. 
 So the file does not contain any missing values. 
 Now what we're gonna do first 
 is we'll drop the data valuable 
 we have a variable known as date, 
 which is not really necessary 
 in predicting our outcome over here. 
 So that's exactly what I'm doing here. 
 I'm just dropping the date variable. 
 So here, I'm checking the dimensions of the data set. 
 This is pretty understandable, 
 using the shape function to do that. 
 Now, always you make the data as a NymPy array. 
 This makes computation much easier. 
 The next process is the data splicing. 
 I've already discussed data the data splicing with you all. 
 Here we're just preparing the training 
 and the testing data. 
 So the training data will contain 
 80% of the total data set. 
 Okay, and also we are not shuffling the data set. 
 We're just slicing the data set sequentially. 
 That's why we have a test start start 
 and the test end variable. 
 In sequence, I'll be selecting the data. 
 There's no need of shuffling this data set. 
 These are stock prices 

English: 
meaning that we don't
have any missing stock
and index prices.
So the file does not
contain any missing values.
Now what we're gonna do first
is we'll drop the data valuable
we have a variable known as date,
which is not really necessary
in predicting our outcome over here.
So that's exactly what I'm doing here.
I'm just dropping the date variable.
So here, I'm checking the
dimensions of the data set.
This is pretty understandable,
using the shape function to do that.
Now, always you make the
data as a NymPy array.
This makes computation much easier.
The next process is the data splicing.
I've already discussed data
the data splicing with you all.
Here we're just preparing the training
and the testing data.
So the training data will contain
80% of the total data set.
Okay, and also we are not
shuffling the data set.
We're just slicing the
data set sequentially.
That's why we have a test start start
and the test end variable.
In sequence, I'll be selecting the data.
There's no need of
shuffling this data set.
These are stock prices

English: 
it does not make sense
to shuffle this data.
Now in the next step, we're going to do is
we're going to scale the data
now, scaling data and data normalization
is one of the most important steps.
You cannot miss this step
I already mentioned earlier
what normalization and scaling is.
Now most neural networks
benefit from scaling inputs.
This is because most
common activation function
of the networks neuron such
as tan, hedge, and sigmoid.
Tan, hedge, and sigmoid are
basically activation functions,
and these are defined in the
range of minus one to one
or zero and one.
So that's why scaling
is an important thing
in deep neural networks
for scaling, again, we'll
use the MinMaxScaler.
So we're just importing
that function over here.
And also one point to note is that
you have to be very cautious
about what part of data you're scaling
and when you're doing it.
A very common mistake is
to scale the whole data set
before training and test
splits are being applied.
So before data splicing itself,

Italian: 
 it does not make sense to shuffle this data. 
 Now in the next step, we're going to do is 
 we're going to scale the data 
 now, scaling data and data normalization 
 is one of the most important steps. 
 You cannot miss this step 
 I already mentioned earlier 
 what normalization and scaling is. 
 Now most neural networks 
 benefit from scaling inputs. 
 This is because most common activation function 
 of the networks neuron such as tan, hedge, and sigmoid. 
 Tan, hedge, and sigmoid are basically activation functions, 
 and these are defined in the range of minus one to one 
 or zero and one. 
 So that's why scaling is an important thing 
 in deep neural networks 
 for scaling, again, we'll use the MinMaxScaler. 
 So we're just importing that function over here. 
 And also one point to note is that 
 you have to be very cautious 
 about what part of data you're scaling 
 and when you're doing it. 
 A very common mistake is to scale the whole data set 
 before training and test splits are being applied. 
 So before data splicing itself, 

Italian: 
 you shouldn't be scaling your data. 
 Now this is a mistake because 
 scaling invokes the calculation of statistics. 
 For example, minimum or maximum range of the variable 
 gets affected. 
 So when performing time series forecasting in real life, 
 you do not have information from future observations 
 at the time of forecasting. 
 That's why calculation of scaling statistics 
 has to be conducted on training data, 
 and only then it has to be applied to the test data. 
 Otherwise, you're basically using the future information 
 at the time of forecasting, 
 which obviously going to lead to biasness 
 so that's why you need to make sure 
 you do scaling very accurately. 
 So, basically, what we're doing is the number of features 
 in the training data are stored 
 in a variable known as n stocks. 
 After this, we'll import the infamous TensorFlow. 
 So guys, TensorFlow is actually a very good 
 piece of software and it is currently the leading 
 deep learning and neural network computation framework. 

English: 
you shouldn't be scaling your data.
Now this is a mistake because
scaling invokes the
calculation of statistics.
For example, minimum or
maximum range of the variable
gets affected.
So when performing time series
forecasting in real life,
you do not have information
from future observations
at the time of forecasting.
That's why calculation
of scaling statistics
has to be conducted on training data,
and only then it has to be
applied to the test data.
Otherwise, you're basically
using the future information
at the time of forecasting,
which obviously going to lead to biasness
so that's why you need to make sure
you do scaling very accurately.
So, basically, what we're
doing is the number of features
in the training data are stored
in a variable known as n stocks.
After this, we'll import
the infamous TensorFlow.
So guys, TensorFlow is
actually a very good
piece of software and it
is currently the leading
deep learning and neural
network computation framework.

Italian: 
 It is based on a C++ low-level backend, 
 but it's usually controlled through Python. 
 So TensorFlow actually operates as 
 a graphical representation of your computations. 
 And this is important because neural networks 
 are actually graphs of data and mathematical operation. 
 So that's why TensorFlow is just perfect 
 for neural networks and deep learning. 
 So the next thing after importing the TensorFlow library 
 is something known as placeholders. 
 Placeholders are used to store, import, and target data. 
 We need two placeholders in order to fit our model. 
 So basically, X will contain the network's input, 
 which is the stock prices of all the stocks 
 at time T equal to T. 
 And y will contain the network's output, 
 which is the stock price at time T is equal to T plus one. 
 Now the shape of the X placeholder 
 means that the inputs are two-dimensional matrix. 
 And the outputs are a one-dimensional vector. 

English: 
It is based on a C++ low-level backend,
but it's usually
controlled through Python.
So TensorFlow actually operates as
a graphical representation
of your computations.
And this is important
because neural networks
are actually graphs of data
and mathematical operation.
So that's why TensorFlow is just perfect
for neural networks and deep learning.
So the next thing after
importing the TensorFlow library
is something known as placeholders.
Placeholders are used to
store, import, and target data.
We need two placeholders
in order to fit our model.
So basically, X will
contain the network's input,
which is the stock
prices of all the stocks
at time T equal to T.
And y will contain the network's output,
which is the stock price at
time T is equal to T plus one.
Now the shape of the X placeholder
means that the inputs are
two-dimensional matrix.
And the outputs are a
one-dimensional vector.

Italian: 
 So guys, basically, the non-argument indicates 
 that at this point we do not yet know 
 the number of observations 
 that'll flow through the neural network. 
 We just keep it as a flexible array for now. 
 We'll later define the variable batch size 
 that controls the number of observations 
 in each training batch. 
 Now, apart form this, we also have 
 something know as initializers. 
 Now, before I tell you what these initializers are, 
 you need to understand that 
 there's something known as variables 
 that are used as flexible containers 
 that are allowed to change during the execution. 
 Weights and bias are represented as variables 
 in order to adapt during training. 
 I already discuss weights and bias with you earlier. 
 Now weights and bias is something 
 that you need to initialize before you train the model. 
 That's how we discussed it even while I was explaining 
 neural networks to you. 
 So here, basically, we make use of something known as 
 variant scaling initializer 
 and for bias initializer, 

English: 
So guys, basically, the
non-argument indicates
that at this point we do not yet know
the number of observations
that'll flow through the neural network.
We just keep it as a
flexible array for now.
We'll later define the variable batch size
that controls the number of observations
in each training batch.
Now, apart form this, we also have
something know as initializers.
Now, before I tell you what
these initializers are,
you need to understand that
there's something known as variables
that are used as flexible containers
that are allowed to change
during the execution.
Weights and bias are
represented as variables
in order to adapt during training.
I already discuss weights
and bias with you earlier.
Now weights and bias is something
that you need to initialize
before you train the model.
That's how we discussed it
even while I was explaining
neural networks to you.
So here, basically, we make
use of something known as
variant scaling initializer
and for bias initializer,

Italian: 
 we make use of zeros initializers. 
 These are some predefined functions in our TensorFlow model. 
 We'll not get into the depth of those things. 
 Now let's look at our model architecture parameters. 
 So the next thing we have to discuss 
 is the model architecture parameters. 
 Now the model that we build, 
 it consists of four hidden layers. 
 For the first layer, we've assigned 1,024 neurons 
 which is likely more than double the size of the inputs. 
 The subsequent hidden layers are always 
 half the size of the previous layer, 
 which means that in the hidden layer number two, 
 we'll have 512 neurons. 
 Hidden layer three will have 256. 
 And similarly, hidden layer number four 
 will have 128 neurons. 
 Now why do we keep reducing the number of neurons 
 as we go through each hidden layer. 
 We do this because the number of neurons 
 for each subsequent layer compresses the information 
 that the network identifies in the previous layer. 
 Of course there are other possible network architectures 

English: 
we make use of zeros initializers.
These are some predefined
functions in our TensorFlow model.
We'll not get into the
depth of those things.
Now let's look at our model
architecture parameters.
So the next thing we have to discuss
is the model architecture parameters.
Now the model that we build,
it consists of four hidden layers.
For the first layer, we've
assigned 1,024 neurons
which is likely more than
double the size of the inputs.
The subsequent hidden layers are always
half the size of the previous layer,
which means that in the
hidden layer number two,
we'll have 512 neurons.
Hidden layer three will have 256.
And similarly, hidden layer number four
will have 128 neurons.
Now why do we keep reducing
the number of neurons
as we go through each hidden layer.
We do this because the number of neurons
for each subsequent layer
compresses the information
that the network identifies
in the previous layer.
Of course there are other
possible network architectures

English: 
that you can apply for
this problem statement,
but I'm trying to keep
it as simple as possible,
because I'm introducing
deep learning to you all.
So I can't build a model architecture
that's very complex and hard to explain.
And of course, we have output over here
which will be assigned a single neuron.
Now it is very important to understand
that variable dimensions
between your input,
hidden, and output layers.
So, as a rule of thumb in
multilayer perceptrons,
the second dimension of the previous layer
is the first dimension
in the current layer.
So the second dimension
in my first hidden layer
is going to be my first dimension
in my second hidden layer.
Now the reason behind
this is pretty logical.
It's because the output
from the first hidden layer
is passed on as an input
to the second hidden layer.
That's why the second
dimension of the previous layer
is the same as the first dimension
of the next layer or the current layer.
I hope this is understandable.
Now coming to the bias
dimension over here,

Italian: 
 that you can apply for this problem statement, 
 but I'm trying to keep it as simple as possible, 
 because I'm introducing deep learning to you all. 
 So I can't build a model architecture 
 that's very complex and hard to explain. 
 And of course, we have output over here 
 which will be assigned a single neuron. 
 Ora è molto importante capire 
 that variable dimensions between your input, 
 hidden, and output layers. 
 So, as a rule of thumb in multilayer perceptrons, 
 the second dimension of the previous layer 
 is the first dimension in the current layer. 
 So the second dimension in my first hidden layer 
 is going to be my first dimension in my second hidden layer. 
 Now the reason behind this is pretty logical. 
 It's because the output from the first hidden layer 
 is passed on as an input to the second hidden layer. 
 That's why the second dimension of the previous layer 
 is the same as the first dimension 
 of the next layer or the current layer. 
 I hope this is understandable. 
 Now coming to the bias dimension over here, 

Italian: 
 the bias dimension is always 
 equal to the second dimension of your current layer, 
 meaning that you're just going to pass 
 the number of neurons in that particular hidden layer 
 as your dimension in your bias. 
 So here, the number of neurons, 1,024, 
 you're passing the same number as a parameter to your bias. 
 Similarly, even for hidden layer number two, 
 if you see a second dimension here 
 is n_neurons_2. 
 I'm passing the same parameter over here as well. 
 Similarly, for hidden layer three 
 and hidden layer number four. 
 Alright, I hope this is understandable 
 now we come to the output layer. 
 The output layer will obviously have 
 the output from hidden layer number four. 
 This is our output from hidden layer four 
 that's passed as the first dimension in our output layer, 
 and it'll finally have your n target, 
 which is set to one over here. 
 This is our output. 
 Your bias will basically have the current layer's dimension, 
 which is n target. 

English: 
the bias dimension is always
equal to the second dimension
of your current layer,
meaning that you're just going to pass
the number of neurons in
that particular hidden layer
as your dimension in your bias.
So here, the number of neurons, 1,024,
you're passing the same number
as a parameter to your bias.
Similarly, even for
hidden layer number two,
if you see a second dimension here
is n_neurons_2.
I'm passing the same
parameter over here as well.
Similarly, for hidden layer three
and hidden layer number four.
Alright, I hope this is understandable
now we come to the output layer.
The output layer will obviously have
the output from hidden layer number four.
This is our output from hidden layer four
that's passed as the first
dimension in our output layer,
and it'll finally have your n target,
which is set to one over here.
This is our output.
Your bias will basically have
the current layer's dimension,
which is n target.

Italian: 
 You're passing that same parameter over here. 
 Now after you define the required weight 
 and the bias variables, 
 the architecture of the network has to be specified. 
 What you do is placeholders and variables 
 need to be combined into a system of 
 sequential matrix multiplication. 
 So that's exactly what's happening over here. 
 Apart from this, all the hidden layers 
 need to be transformed by using the activation function. 
 So, activation functions are important 
 components of the network 
 because they introduce non-linearity to the system. 
 This means that high dimensional data 
 can be dealt with with the help of the activation functions. 
 Obviously, we have very high dimensional data 
 when it comes to neural networks. 
 We don't have a single dimension 
 or we don't have two or three inputs. 
 We have thousands and thousands of inputs. 
 So, in order for a neural network to process 
 that much of high dimensional data, 
 we need something known as activation functions. 
 That's why we make use of activation functions. 

English: 
You're passing that same
parameter over here.
Now after you define the required weight
and the bias variables,
the architecture of the
network has to be specified.
What you do is placeholders and variables
need to be combined into a system of
sequential matrix multiplication.
So that's exactly what's
happening over here.
Apart from this, all the hidden layers
need to be transformed by
using the activation function.
So, activation functions are important
components of the network
because they introduce
non-linearity to the system.
This means that high dimensional data
can be dealt with with the help
of the activation functions.
Obviously, we have very
high dimensional data
when it comes to neural networks.
We don't have a single dimension
or we don't have two or three inputs.
We have thousands and thousands of inputs.
So, in order for a
neural network to process
that much of high dimensional data,
we need something known
as activation functions.
That's why we make use
of activation functions.

English: 
Now, there are dozens
of activation functions,
and one of the most common one
is the rectified linear unit,
rectified linear unit.
RELU is nothing but rectified linear unit,
which is what we're gonna
be using in this model.
So, after, you applied the
transformation function
to your hidden layer, you
need to make sure that
your output is transposed.
This is followed by a very
important function known as
cost function.
So the cost function of a network
is used to generate a measure of deviation
between the network's prediction
and the actual observed training targets.
So this is basically your actual output
minus your model output.
It basically calculates the
error between your actual output
and your predicted output.
So, for regression problems,
the mean squared error function
is commonly used.
I have discussed MSC, mean
squared error, before.
So, basically, we are just measuring
the deviation over here.
MSC is nothing bot your deviation

Italian: 
 Now, there are dozens of activation functions, 
 and one of the most common one 
 is the rectified linear unit, 
 rectified linear unit. 
 RELU is nothing but rectified linear unit, 
 which is what we're gonna be using in this model. 
 So, after, you applied the transformation function 
 to your hidden layer, you need to make sure that 
 your output is transposed. 
 This is followed by a very important function known as 
 cost function. 
 So the cost function of a network 
 is used to generate a measure of deviation 
 between the network's prediction 
 and the actual observed training targets. 
 So this is basically your actual output 
 minus your model output. 
 It basically calculates the error between your actual output 
 and your predicted output. 
 So, for regression problems, the mean squared error function 
 is commonly used. 
 I have discussed MSC, mean squared error, before. 
 So, basically, we are just measuring 
 the deviation over here. 
 MSC is nothing bot your deviation 

English: 
from your actual output.
That's exactly what we're doing here.
So after you've computed your error,
the next step is obviously to update
your weight and your bias.
So, we have something
known as the optimizers.
They basically take care of
all the necessary computations
that are needed to adapt
the network's weight
and bias variables during
the training phase.
That's exactly what's happening over here.
Now the main function of
this optimizer is that
it invoke something known as a gradient.
Now if you all remember, we
discussed gradient before
it basically indicates the direction
in which the weights and the bias
has to be changed during the training
in order to minimize the
network's cost function
or the network's error.
So you need to figure out
whether you need to increase
the weight and the bias in
order to decrease the error,
or is it the other way around?
You need to understand the relationship
between your error and
your weight variable.
That's exactly what the optimizer does.
It invokes the gradient.

Italian: 
 from your actual output. 
 That's exactly what we're doing here. 
 So after you've computed your error, 
 the next step is obviously to update 
 your weight and your bias. 
 So, we have something known as the optimizers. 
 They basically take care of all the necessary computations 
 that are needed to adapt the network's weight 
 and bias variables during the training phase. 
 That's exactly what's happening over here. 
 Now the main function of this optimizer is that 
 it invoke something known as a gradient. 
 Now if you all remember, we discussed gradient before 
 it basically indicates the direction 
 in which the weights and the bias 
 has to be changed during the training 
 in order to minimize the network's cost function 
 or the network's error. 
 So you need to figure out whether you need to increase 
 the weight and the bias in order to decrease the error, 
 or is it the other way around? 
 You need to understand the relationship 
 between your error and your weight variable. 
 That's exactly what the optimizer does. 
 It invokes the gradient. 

Italian: 
 We will give you the direction in which the weights 
 and the bias have to be changed. 
 So now that you know what an optimizer does, 
 in our model, we'll be using 
 something known as the AdamOptimizer. 
 This is one of the current default optimizers 
 in deep learning. 
 Adam basically stands for adaptive moment estimation, 
 and it can be considered as a combination between 
 very two popular optimizers called Adagrad and RMSprop. 
 Now let's not get into the depth of the optimizers. 
 The main agenda here 
 is for you to understand the logic behind deep learning. 
 We don't have to go into the functions. 
 I know these are predefined functions 
 which TensorFlow takes care of. 
 Next we have something known as initializers. 
 Now, initializers are used to initialize 
 the network's variables before training. 
 We already discussed this before. 
 I'll define the initializer here again. 
 I've already done it earlier in this session. 
 Initializers are already defined. 
 So I just removed that line of code. 

English: 
We will give you the
direction in which the weights
and the bias have to be changed.
So now that you know
what an optimizer does,
in our model, we'll be using
something known as the AdamOptimizer.
This is one of the
current default optimizers
in deep learning.
Adam basically stands for
adaptive moment estimation,
and it can be considered
as a combination between
very two popular optimizers
called Adagrad and RMSprop.
Now let's not get into the
depth of the optimizers.
The main agenda here
is for you to understand the
logic behind deep learning.
We don't have to go into the functions.
I know these are predefined functions
which TensorFlow takes care of.
Next we have something
known as initializers.
Now, initializers are used to initialize
the network's variables before training.
We already discussed this before.
I'll define the initializer here again.
I've already done it
earlier in this session.
Initializers are already defined.
So I just removed that line of code.

English: 
Next step would be fitting
the neural network.
So after we've defined the
place holders, the variables,
variables which are
basically weights and bias,
the initializers, the cost functions,
and the optimizers of the network,
the model has to be trained.
Now, this is usually done by using
the mini batch training method,
because we have very huge data set.
So it's always best to use the
mini batch training method.
Now what happens during
mini batch training
is random data samples of any batch size
are drawn from the training data,
and they are fed into the network.
So the training data set gets divided into
N divided by your batch size batches
that are sequentially
fed into the network.
So, one after the other,
each of these batches will
be fed into the network.
At this point, the placeholder
which are your X and Y,
they come into play.
They store the input and the target data
and present them to the
network as inputs and targets.

Italian: 
 Next step would be fitting the neural network. 
 So after we've defined the place holders, the variables, 
 variables which are basically weights and bias, 
 the initializers, the cost functions, 
 and the optimizers of the network, 
 the model has to be trained. 
 Now, this is usually done by using 
 the mini batch training method, 
 because we have very huge data set. 
 So it's always best to use the mini batch training method. 
 Now what happens during mini batch training 
 is random data samples of any batch size 
 are drawn from the training data, 
 and they are fed into the network. 
 So the training data set gets divided into 
 N divided by your batch size batches 
 that are sequentially fed into the network. 
 So, one after the other, 
 each of these batches will be fed into the network. 
 At this point, the placeholder which are your X and Y, 
 they come into play. 
 They store the input and the target data 
 and present them to the network as inputs and targets. 

Italian: 
 That's the main functionality of placeholders. 
 What they do is they store the input and the target data, 
 and they provide this to the network 
 as inputs and targets. 
 That's exactly what your placeholders do. 
 So let's say that a sample data batch of X. 
 Now this data batch flows through the network 
 until it reaches the output layer. 
 There the TensorFlow compares the model's predictions 
 against the actual observed targets, 
 which is stored in Y. 
 If you all remember, 
 we stored our actual observed targets in Y. 
 After this, TensorFlow will conduct 
 something known as optimization step, 
 and it'll update the network's parameters 
 like the weight of the network and the bias. 
 So after having update your weight and the bias, 
 the next batch is sampled and the process gets repeated. 
 So this procedure will continue 
 until all the batches have presented to the network. 
 And one full sweep over all batches 
 is known as an epoch. 
 So I've defined this entire thing over here. 
 So we're gonna go through 10 epochs, 
 meaning that all the batches 

English: 
That's the main functionality
of placeholders.
What they do is they store
the input and the target data,
and they provide this to the network
as inputs and targets.
That's exactly what your placeholders do.
So let's say that a
sample data batch of X.
Now this data batch
flows through the network
until it reaches the output layer.
There the TensorFlow compares
the model's predictions
against the actual observed targets,
which is stored in Y.
If you all remember,
we stored our actual
observed targets in Y.
After this, TensorFlow will conduct
something known as optimization step,
and it'll update the network's parameters
like the weight of the
network and the bias.
So after having update
your weight and the bias,
the next batch is sampled and
the process gets repeated.
So this procedure will continue
until all the batches have
presented to the network.
And one full sweep over all batches
is known as an epoch.
So I've defined this
entire thing over here.
So we're gonna go through 10 epochs,
meaning that all the batches

Italian: 
 are going to go through training, 
 meaning you're going to input each batch that is X, 
 and it'll flow through the network 
 until it reaches the output layer. 
 There what happens is TensorFlow 
 will compare your predictions. 
 That is basically what your model predicted 
 against the actual observed targets 
 which is stored in Y. 
 After this, TensorFlow will perform optimization 
 wherein it'll update the network paramters 
 like your weight and your bias. 
 After you update the weight and the bias, 
 the next batch will get sampled 
 and the process will keep repeating. 
 This happens until all the batches are 
 implemented in the network. 
 So what I just told you was one epoch. 
 We're going to repeat this 10 times. 
 So a batch size is 256, 
 meaning that we have 256 batches. 
 So here we're going to assign x and y, 
 what I just spoke to you about. 
 The mini batch training starts over here 
 so, basically, your first batch 
 will start flowing through the network 
 until it reaches the output layer. 
 After this, TensorFlow will compare your model's prediction. 

English: 
are going to go through training,
meaning you're going to
input each batch that is X,
and it'll flow through the network
until it reaches the output layer.
There what happens is TensorFlow
will compare your predictions.
That is basically what
your model predicted
against the actual observed targets
which is stored in Y.
After this, TensorFlow
will perform optimization
wherein it'll update the network paramters
like your weight and your bias.
After you update the weight and the bias,
the next batch will get sampled
and the process will keep repeating.
This happens until all the batches are
implemented in the network.
So what I just told you was one epoch.
We're going to repeat this 10 times.
So a batch size is 256,
meaning that we have 256 batches.
So here we're going to assign x and y,
what I just spoke to you about.
The mini batch training starts over here
so, basically, your first batch
will start flowing through the network
until it reaches the output layer.
After this, TensorFlow will
compare your model's prediction.

English: 
This is where predictions happen.
It'll compare your model's prediction
to the actual observed targets
which is stored in y.
Then TensorFlow will
start doing optimization,
and it'll update the network paramters
like your weight and your bias.
So after you update the
weight and the biases,
the next batch will get
input into the network,
and this process will keep repeating.
This process will repeat 10 times
because we've defined 10 epochs.
Now, also during the training,
we evaluate the network's
prediction on the test set,
which is basically the data
which we haven't learned,
but this data is set aside
for every fifth batch,
and this is visualized.
So in our problem statement,
what a network is going to do
is it's going to predict the stock price
continuously over a time
period of T plus one.
We're feeding it data about
a stock price at time T.
It's going to give us an
output of time T plus one.
Now let me run this code

Italian: 
 This is where predictions happen. 
 It'll compare your model's prediction 
 to the actual observed targets 
 which is stored in y. 
 Then TensorFlow will start doing optimization, 
 and it'll update the network paramters 
 like your weight and your bias. 
 So after you update the weight and the biases, 
 the next batch will get input into the network, 
 and this process will keep repeating. 
 This process will repeat 10 times 
 because we've defined 10 epochs. 
 Now, also during the training, 
 we evaluate the network's prediction on the test set, 
 which is basically the data which we haven't learned, 
 but this data is set aside for every fifth batch, 
 and this is visualized. 
 So in our problem statement, 
 what a network is going to do 
 is it's going to predict the stock price 
 continuously over a time period of T plus one. 
 We're feeding it data about a stock price at time T. 
 It's going to give us an output of time T plus one. 
 Now let me run this code 

Italian: 
 and let's see how close our predicted values are 
 to the actual values. 
 We're going to visualize this entire thing, 
 and we've also exported this 
 in order to combine it into a video animation. 
 I'll show you what the video looks like. 
 So now let's look at our visualization. 
 We'll look at our output. 
 So the orange basically shows our model's prediction. 
 So the model quickly learns the shape 
 and the location of the time series in the test data 
 and showing us an accurate prediction. 
 It's pretty close to the actual prediction. 
 Now as I'm explaining this to you, 
 each batch is running here. 
 We are at epoch two. 
 We have 10 epochs to go over here. 
 So you can see that the network is actually adapting 
 to the basic shape of the time series, 
 and it's learning finer patterns in the data. 
 You see it keeps learning patterns 
 and the production is getting closer and closer 
 after every epoch. 
 So let just wait til we reach epoch 10 
 and we complete the entire process. 
 So guys, I think the predictions are pretty close, 

English: 
and let's see how close
our predicted values are
to the actual values.
We're going to visualize
this entire thing,
and we've also exported this
in order to combine it
into a video animation.
I'll show you what the video looks like.
So now let's look at our visualization.
We'll look at our output.
So the orange basically
shows our model's prediction.
So the model quickly learns the shape
and the location of the
time series in the test data
and showing us an accurate prediction.
It's pretty close to
the actual prediction.
Now as I'm explaining this to you,
each batch is running here.
We are at epoch two.
We have 10 epochs to go over here.
So you can see that the
network is actually adapting
to the basic shape of the time series,
and it's learning finer
patterns in the data.
You see it keeps learning patterns
and the production is
getting closer and closer
after every epoch.
So let just wait til we reach epoch 10
and we complete the entire process.
So guys, I think the
predictions are pretty close,

Italian: 
 like the pattern and the shape is learned very well 
 by our neural network. 
 It is actually mimicking this network. 
 The only deviation is in the values. 
 Apart from that, it's learning the shape 
 of the time series data in almost the same way. 
 The shape is exactly the same. 
 It looks very similar to me. 
 Now, also remember that there are a lot of ways 
 of improving your result. 
 You can change the design of your layers 
 or you can change the number of neurons. 
 You can choose different initialization functions 
 and activation functions. 
 You can introduce something known as dropout layers 
 which basically help you to get rid of overfitting, 
 and there's also something known as early stopping. 
 Early stopping helps you understand 
 where you must stop your batch training. 
 That's also another method that you can implement 
 for improving your model. 
 Now there are also different types of deep learning model 
 that you can use for this problem. 
 Here we use the feedforward network, 
 which basically means that the batches 

English: 
like the pattern and the
shape is learned very well
by our neural network.
It is actually mimicking this network.
The only deviation is in the values.
Apart from that, it's learning the shape
of the time series data
in almost the same way.
The shape is exactly the same.
It looks very similar to me.
Now, also remember that
there are a lot of ways
of improving your result.
You can change the design of your layers
or you can change the number of neurons.
You can choose different
initialization functions
and activation functions.
You can introduce something
known as dropout layers
which basically help you
to get rid of overfitting,
and there's also something
known as early stopping.
Early stopping helps you understand
where you must stop your batch training.
That's also another method
that you can implement
for improving your model.
Now there are also different
types of deep learning model
that you can use for this problem.
Here we use the feedforward network,
which basically means that the batches

English: 
will flow from left to right.
Okay, so our 10 epochs are over.
Now the final thing that's
getting calculate is our error,
MSC or mean squared error.
So guys, don't worry about this warning.
It's just a warning.
So our mean square error
comes down to 0.0029
which is pretty low because
the target is scaled.
And this means that our
accuracy is pretty good.
So guys, like I mentioned,
if you want to improve
the accuracy of the model,
you can use different schemes,
you can use different
initialization functions,
or you can try out different
transformation functions.
You can use something
known as dropout technique
and early stopping in order
to make the training phase
even more better.
So guys, that was the end
of our deep learning demo.
I hope all of you understood
the deep learning demo.
For those of you who are just learning
deep learning for the first time,
it might be a little confusing.
So if you have any doubts
regarding the demo,
let me know in the comment section.
I'll also leave a couple of
links in the description box,
so that you can understand deep learning

Italian: 
 will flow from left to right. 
 Okay, so our 10 epochs are over. 
 Now the final thing that's getting calculate is our error, 
 MSC or mean squared error. 
 So guys, don't worry about this warning. 
 It's just a warning. 
 So our mean square error comes down to 0.0029 
 which is pretty low because the target is scaled. 
 And this means that our accuracy is pretty good. 
 So guys, like I mentioned, 
 if you want to improve the accuracy of the model, 
 you can use different schemes, 
 you can use different initialization functions, 
 or you can try out different transformation functions. 
 You can use something known as dropout technique 
 and early stopping in order to make the training phase 
 even more better. 
 So guys, that was the end of our deep learning demo. 
 I hope all of you understood the deep learning demo. 
 For those of you who are just learning 
 deep learning for the first time, 
 it might be a little confusing. 
 So if you have any doubts regarding the demo, 
 let me know in the comment section. 
 I'll also leave a couple of links in the description box, 
 so that you can understand deep learning 

English: 
in a little more depth.
Now let's look at our
final topic for today,
which is natural language processing.
Now before we understand
what text mining is
and what natural language processing is,
we have to understand
the need for text mining
and natural language processing.
So guys, the number one reason why we need
text mining and natural
language processing
is because of the amount of data
that we're generating during this time.
Like I mentioned earlier,
there are around 2.5
quintillion bytes of data
that is created every day,
and this number is only going to grow.
With the evolution of communication
through social media,
we generate tons and tons of data.
The numbers are on your screen.
These numbers are
literally for every minute.
On Instagram, every minute, 1.7
million pictures are posted.
Okay, 1.7 or more than 1.7
million pictures are posted.
Similarly, we have tweets.
We have around 347,000 tweets
every minute on Twitter.

Italian: 
 in a little more depth. 
 Now let's look at our final topic for today, 
 which is natural language processing. 
 Now before we understand what text mining is 
 and what natural language processing is, 
 we have to understand the need for text mining 
 and natural language processing. 
 So guys, the number one reason why we need 
 text mining and natural language processing 
 is because of the amount of data 
 that we're generating during this time. 
 Like I mentioned earlier, 
 there are around 2.5 quintillion bytes of data 
 that is created every day, 
 and this number is only going to grow. 
 With the evolution of communication 
 through social media, 
 we generate tons and tons of data. 
 The numbers are on your screen. 
 These numbers are literally for every minute. 
 On Instagram, every minute, 1.7 million pictures are posted. 
 Okay, 1.7 or more than 1.7 million pictures are posted. 
 Similarly, we have tweets. 
 We have around 347,000 tweets every minute on Twitter. 

English: 
This is actually a lot and lot of data.
So, every time we're using a phone,
we're generating way too much data.
Just watching a video on YouTube
is generating a lot of data.
When sending text messages from WhatsApp,
that is also generating
tons and tons of data.
Now the only problem is
not our data generation.
The problem is that out of all the data
that we're generating,
only 21% of the data
is structured and well-formatted.
The remaining of the data is unstructured,
and the major source of
unstructured data include
text messages from
WhatsApp, Facebook likes,
comments on Instagram, bulk emails
that we send out ever single day.
All of this accounts for
the unstructured data
that we have today.
Now the question here is what can be done
with so much data.
Now the data that we generate
can be used to grow businesses.
By analyzing and mining the data,
we can add more value to a business.
This exactly what text
mining is all about.
So text mining or text analytics

Italian: 
 This is actually a lot and lot of data. 
 So, every time we're using a phone, 
 we're generating way too much data. 
 Just watching a video on YouTube 
 is generating a lot of data. 
 When sending text messages from WhatsApp, 
 that is also generating tons and tons of data. 
 Now the only problem is not our data generation. 
 The problem is that out of all the data 
 that we're generating, only 21% of the data 
 is structured and well-formatted. 
 The remaining of the data is unstructured, 
 and the major source of unstructured data include 
 text messages from WhatsApp, Facebook likes, 
 comments on Instagram, bulk emails 
 that we send out ever single day. 
 All of this accounts for the unstructured data 
 that we have today. 
 Now the question here is what can be done 
 with so much data. 
 Now the data that we generate 
 can be used to grow businesses. 
 By analyzing and mining the data, 
 we can add more value to a business. 
 This exactly what text mining is all about. 
 So text mining or text analytics 

Italian: 
 is the analysis of data available to us 
 in a day-to-day spoken or written language. 
 It is amazing so much data that we generate 
 can actually be used in text mining. 
 We have data from word Word documents, 
 PowerPoints, chat messages, emails. 
 All of this is used to add value to a business 
 now the data that we get from sources 
 like social media, IoT, 
 they are mainly unstructured, 
 and unstructured data cannot be used 
 to draw useful insights to grow a business. 
 That's exactly why we need to text mining. 
 Text mining or text analytics 
 is the process of deriving meaningful information 
 from natural language text. 
 So, all the data that we generate through text messages, 
 emails, documents, files, 
 are written in natural language text. 
 And we are going to use text mining 
 and natural language processing 
 to draw useful insights or patterns from such data. 
 Now let's look at a few examples 
 to show you how natural language processing 
 and text mining is used. 
 So now before I move any further, 

English: 
is the analysis of data available to us
in a day-to-day spoken
or written language.
It is amazing so much
data that we generate
can actually be used in text mining.
We have data from word Word documents,
PowerPoints, chat messages, emails.
All of this is used to
add value to a business
now the data that we get from sources
like social media, IoT,
they are mainly unstructured,
and unstructured data cannot be used
to draw useful insights
to grow a business.
That's exactly why we need to text mining.
Text mining or text analytics
is the process of deriving
meaningful information
from natural language text.
So, all the data that we
generate through text messages,
emails, documents, files,
are written in natural language text.
And we are going to use text mining
and natural language processing
to draw useful insights or
patterns from such data.
Now let's look at a few examples
to show you how natural
language processing
and text mining is used.
So now before I move any further,

English: 
I want to compare text mining and NLP.
A lot of you might be confused
about what exactly text mining is
and how is it related to
natural language processing.
A lot of people have also asked me
why is NLP and text mining
considered as one and the same
and are they the same thing.
So, basically, text mining is a vast field
that makes use of natural
language processing
to derive high quality
information from the text.
So, basically, text mining is a process,
and natural language
processing is a method
used to carry out text mining.
So, in a way, you can say that text mining
is a vast field which uses and NLP
in order perform text
analysis and text mining.
So, NLP is a part of text mining.
Now let's understand what exactly
natural language processing is.
Now, natural language processing
is a component of text mining
which basically helps a
machine in reading the text.
Obviously, machines don't
actually known English or French,

Italian: 
 I want to compare text mining and NLP. 
 A lot of you might be confused 
 about what exactly text mining is 
 and how is it related to natural language processing. 
 A lot of people have also asked me 
 why is NLP and text mining 
 considered as one and the same 
 and are they the same thing. 
 So, basically, text mining is a vast field 
 that makes use of natural language processing 
 to derive high quality information from the text. 
 So, basically, text mining is a process, 
 and natural language processing is a method 
 used to carry out text mining. 
 So, in a way, you can say that text mining 
 is a vast field which uses and NLP 
 in order perform text analysis and text mining. 
 So, NLP is a part of text mining. 
 Now let's understand what exactly 
 natural language processing is. 
 Now, natural language processing 
 is a component of text mining 
 which basically helps a machine in reading the text. 
 Obviously, machines don't actually known English or French, 

Italian: 
 they interpret data in the form of zeroes and ones. 
 So this is where natural language processing comes in. 
 NLP is what computers and smart phones 
 use to understand our language, 
 both spoken and written language. 
 Now because use language to interact with our device, 
 NLP became an integral part of our life. 
 NLP uses concepts of computer science 
 e intelligenza artificiale 
 to study the data and derive useful information from it. 
 Now before we move any further, 
 let's look at a few applications of NLP and text mining. 
 Now we all spend a lot of time surfing the webs. 
 Have you ever notice that 
 if you start typing a word on Google, 
 you immediately get suggestions like these. 
 These feature is also known as auto complete. 
 It'll basically suggest the rest of the word for you. 
 And we also have something known as spam detection. 
 Here is an example of how Google recognizes 
 the misspelling Netflix 
 and shows results for keywords that match your misspelling. 
 So, the spam detection is also based 

English: 
they interpret data in the
form of zeroes and ones.
So this is where natural
language processing comes in.
NLP is what computers and smart phones
use to understand our language,
both spoken and written language.
Now because use language to
interact with our device,
NLP became an integral part of our life.
NLP uses concepts of computer science
and artificial intelligence
to study the data and derive
useful information from it.
Now before we move any further,
let's look at a few applications
of NLP and text mining.
Now we all spend a lot
of time surfing the webs.
Have you ever notice that
if you start typing a word on Google,
you immediately get
suggestions like these.
These feature is also
known as auto complete.
It'll basically suggest the
rest of the word for you.
And we also have something
known as spam detection.
Here is an example of
how Google recognizes
the misspelling Netflix
and shows results for keywords
that match your misspelling.
So, the spam detection is also based

Italian: 
 on the concepts of text mining 
 and natural language processing. 
 Next we have predictive typing and spell checkers. 
 Features like auto correct, email classification 
 are all applications of text mining and NLP. 
 Now we look at a couple of more applications 
 of natural language processing. 
 We have something known as sentimental analysis. 
 Sentimental analysis is extremely useful 
 in social media monitoring, 
 because it allows us to gain an overview 
 of the wider public opinion behind certain topics. 
 So, basically, sentimental analysis 
 is used to understand the public's opinion 
 or customer's opinion on a certain product 
 or on a certain topic. 
 Sentimental analysis is actually a very huge part 
 of a lot of social media platforms 
 like Twitter, Facebook. 
 They use sentimental analysis very frequently. 
 Then we have something known as chatbot. 
 Chatbots are basically the solutions 
 for all the consumer frustration, 
 regarding customer call assistance. 
 So we have companies like Pizza Hut, Uber 

English: 
on the concepts of text mining
and natural language processing.
Next we have predictive
typing and spell checkers.
Features like auto correct,
email classification
are all applications
of text mining and NLP.
Now we look at a couple
of more applications
of natural language processing.
We have something known
as sentimental analysis.
Sentimental analysis is extremely useful
in social media monitoring,
because it allows us to gain an overview
of the wider public opinion
behind certain topics.
So, basically, sentimental analysis
is used to understand the public's opinion
or customer's opinion on a certain product
or on a certain topic.
Sentimental analysis is
actually a very huge part
of a lot of social media platforms
like Twitter, Facebook.
They use sentimental
analysis very frequently.
Then we have something known as chatbot.
Chatbots are basically the solutions
for all the consumer frustration,
regarding customer call assistance.
So we have companies like Pizza Hut, Uber

English: 
who have started using chatbots
to provide good customer service,
apart form that speech recognition.
NLP has widely been used
in speech recognition.
We're all aware of Alexa,
Siri, Google Assistant,
and Cortana.
These are all applications of
natural language processing.
Machine translation is another
important application of NLP.
An example of this is
the Google Translator
that uses NLP to process and translate
one language to the other.
Other application include spell checkers,
keywords search, information extraction,
and NLP can be used to
get useful information
from various website, from word documents,
from files, and et cetera.
It can also be used in
advertisement matching.
This basically means a
recommendation of ads
based on your history.
So now that you have a
basic understanding of where
natural language processing is used
and what exactly it is,
let's take a look at
some important concepts.
So, firstly, we're gonna
discuss tokenization.

Italian: 
 who have started using chatbots 
 to provide good customer service, 
 apart form that speech recognition. 
 NLP has widely been used in speech recognition. 
 We're all aware of Alexa, Siri, Google Assistant, 
 and Cortana. 
 These are all applications of natural language processing. 
 Machine translation is another important application of NLP. 
 An example of this is the Google Translator 
 that uses NLP to process and translate 
 one language to the other. 
 Other application include spell checkers, 
 keywords search, information extraction, 
 and NLP can be used to get useful information 
 from various website, from word documents, 
 from files, and et cetera. 
 It can also be used in advertisement matching. 
 This basically means a recommendation of ads 
 based on your history. 
 So now that you have a basic understanding of where 
 natural language processing is used 
 and what exactly it is, 
 let's take a look at some important concepts. 
 So, firstly, we're gonna discuss tokenization. 

English: 
Now tokenization is the mos
basic step in text mining.
Tokenization basically
means breaking down data
into smaller chunks or tokens
so that they can be easily analyzed.
Now how tokenization works is
it works by breaking a
complex sentence into words.
So you're breaking a
huge sentence into words.
You'll understand the
importance of each of the word
with respect to the whole sentence,
after which will produce a description
on an input sentence.
So, for example, let's
say we have this sentence,
tokens are simple.
If we apply tokenization on this sentence,
what we get is this.
We're just breaking a sentence into words.
Then we're understanding the importance
of each of these words.
We'll perform NLP process
on each of these words
to understand how important each word
is in this entire sentence.
For me, I think tokens and
simple are important words,
are is basically another stop word.

Italian: 
 Now tokenization is the mos basic step in text mining. 
 Tokenization basically means breaking down data 
 into smaller chunks or tokens 
 so that they can be easily analyzed. 
 Now how tokenization works is 
 it works by breaking a complex sentence into words. 
 So you're breaking a huge sentence into words. 
 You'll understand the importance of each of the word 
 with respect to the whole sentence, 
 after which will produce a description 
 on an input sentence. 
 So, for example, let's say we have this sentence, 
 tokens are simple. 
 If we apply tokenization on this sentence, 
 what we get is this. 
 We're just breaking a sentence into words. 
 Then we're understanding the importance 
 of each of these words. 
 We'll perform NLP process on each of these words 
 to understand how important each word 
 is in this entire sentence. 
 For me, I think tokens and simple are important words, 
 are is basically another stop word. 

English: 
We'll be discussing about stop
words in our further slides.
But for now, you eed to
understand that tokenization
is a very simple process that involves
breaking sentences into words.
Next, we have something known as stemming.
Stemming is basically normalizing words
into its base form or into its root form.
Take a look at this example.
We have words like detection,
detecting, detected, and detections.
Now we all know that the root word
for all these words is detect.
Basically, all these words mean detect.
So the stemming algorithm
works by cutting off the end
or the beginning of the word
and taking into account
a list of common prefixes
and suffixes that can
be found on any word.
So guys, stemming can be
successful in some cases,
but not always.
That is why a lot of people affirm that
stemming has a lot of limitations.
So, in order to overcome
the limitations of stemming,
we have something known as lemmatization.
Now what lemmatization does is

Italian: 
 We'll be discussing about stop words in our further slides. 
 But for now, you eed to understand that tokenization 
 is a very simple process that involves 
 breaking sentences into words. 
 Next, we have something known as stemming. 
 Stemming is basically normalizing words 
 into its base form or into its root form. 
 Take a look at this example. 
 We have words like detection, 
 detecting, detected, and detections. 
 Now we all know that the root word 
 for all these words is detect. 
 Basically, all these words mean detect. 
 So the stemming algorithm works by cutting off the end 
 or the beginning of the word 
 and taking into account a list of common prefixes 
 and suffixes that can be found on any word. 
 So guys, stemming can be successful in some cases, 
 but not always. 
 That is why a lot of people affirm that 
 stemming has a lot of limitations. 
 So, in order to overcome the limitations of stemming, 
 we have something known as lemmatization. 
 Now what lemmatization does is 

English: 
it takes into consideration
the morphological analysis
of the words.
To do so, it is necessary to
have a detailed dictionary
which the algorithm can look
through to link the form
back to its lemma.
So, basically lemmatization
is also quite similar to stemming.
It maps different words
into one common root.
Sometimes what happens in stemming is that
most of the words gets cut off.
Let's say we wanted to
cut detection into detect.
Sometimes it becomes
det or it becomes tect,
or something like that.
So because of this, the grammar
or the importance of the word goes away.
You don't know what
the words mean anymore.
Due to the indiscriminate
cutting of the word,
sometimes the grammar the
understanding of the word
is not there anymore.
So that's why lemmatization
was introduced.
The output of lemmatization
is always going to be
a proper word.
Okay, it's not going to be
something that is half cut
or anything like that.

Italian: 
 it takes into consideration the morphological analysis 
 of the words. 
 To do so, it is necessary to have a detailed dictionary 
 which the algorithm can look through to link the form 
 back to its lemma. 
 So, basically lemmatization 
 is also quite similar to stemming. 
 It maps different words into one common root. 
 Sometimes what happens in stemming is that 
 most of the words gets cut off. 
 Let's say we wanted to cut detection into detect. 
 Sometimes it becomes det or it becomes tect, 
 o qualcosa di simile. 
 So because of this, the grammar 
 or the importance of the word goes away. 
 You don't know what the words mean anymore. 
 Due to the indiscriminate cutting of the word, 
 sometimes the grammar the understanding of the word 
 non c'è più. 
 So that's why lemmatization was introduced. 
 The output of lemmatization is always going to be 
 a proper word. 
 Okay, it's not going to be something that is half cut 
 o qualcosa del genere. 

English: 
You're going to understand
the morphological analysis
and then only you're going
to perform lemmatization.
An example of a lemmatizer
is you're going to convert
gone, going, and went into go.
All the three words anyway
mean the same thing.
So you're going to convert it into go.
We are not removing the first
and the last part of the word.
What we're doing is we're understanding
the grammar behind the word.
We're understanding the English
or the morphological analysis of the word,
and only then we're going
to perform lemmatization.
That's what lemmatization is all about.
Now stop words are basically a set of
commonly used words in any
language, not just English.
Now the reason why stop words
are critical to many applications is that
if we remove the words
that are very commonly used
in a given language,
we can finally focus
on the important words.
For example, in the
context of a search engine,
let's say you open up Google
and you try how to make
strawberry milkshake.
What the search engine is going to do is

Italian: 
 You're going to understand the morphological analysis 
 and then only you're going to perform lemmatization. 
 An example of a lemmatizer 
 is you're going to convert gone, going, and went into go. 
 All the three words anyway mean the same thing. 
 So you're going to convert it into go. 
 We are not removing the first and the last part of the word. 
 What we're doing is we're understanding 
 the grammar behind the word. 
 We're understanding the English 
 or the morphological analysis of the word, 
 and only then we're going to perform lemmatization. 
 That's what lemmatization is all about. 
 Now stop words are basically a set of 
 commonly used words in any language, not just English. 
 Now the reason why stop words 
 are critical to many applications is that 
 if we remove the words that are very commonly used 
 in a given language, 
 we can finally focus on the important words. 
 For example, in the context of a search engine, 
 let's say you open up Google 
 and you try how to make strawberry milkshake. 
 What the search engine is going to do is 

English: 
it's going to find a lot more pages
that contain the terms how to make,
rather than pages which contain the recipe
for your strawberry milkshake.
That's why you have to
disregard these terms.
The search engine can actually focus
on the strawberry milkshake recipe,
instead of looking for pages
that have how to and so on.
So that's why you need to
remove these stop words.
Stop words are how to, begin,
gone, various, and, the,
all of these are stop words.
They are not necessarily important
to understand the
importance of the sentence.
So you get rid of these
commonly used words,
so that you can focus
on the actual keywords.
Another term you need to understand
is document term matrix.
A document term matrix
is basically a matrix
with documents designated by
roles and words by columns.
So if your document one has
this sentence, this is fun,
or has these word, this is fun,

Italian: 
 it's going to find a lot more pages 
 that contain the terms how to make, 
 rather than pages which contain the recipe 
 for your strawberry milkshake. 
 That's why you have to disregard these terms. 
 The search engine can actually focus 
 on the strawberry milkshake recipe, 
 instead of looking for pages that have how to and so on. 
 So that's why you need to remove these stop words. 
 Stop words are how to, begin, gone, various, and, the, 
 all of these are stop words. 
 They are not necessarily important 
 to understand the importance of the sentence. 
 So you get rid of these commonly used words, 
 so that you can focus on the actual keywords. 
 Another term you need to understand 
 is document term matrix. 
 A document term matrix is basically a matrix 
 with documents designated by roles and words by columns. 
 So if your document one has this sentence, this is fun, 
 or has these word, this is fun, 

English: 
then you're going to get
one, one, one over here.
In document two, if you see
we have this and we have is,
but we do not have fun.
So that's what a document term matrix is.
It is basically to understand
whether your document
contains each of these words.
It is a frequency matrix.
That is what a document term matrix is.
Now let's move on and look at
a natural language processing demo.
So what we're gonna do
is we're gonna perform
sentimental analysis.
Now like I said, sentimental analysis
is one of the most popular applications
of natural language processing.
It refers to the processing of determining
whether a given piece of text
or a given sentence of text
is positive or negative.
So, in some variations, we consider
a sentence to also be neutral.
That's a third option.
And this technique is
commonly used to discover
how people feel about a particular topic
or what are people's opinion
about a particular topic.
So this is mainly used to
analyze the sentiments of users

Italian: 
 then you're going to get one, one, one over here. 
 In document two, if you see we have this and we have is, 
 but we do not have fun. 
 So that's what a document term matrix is. 
 It is basically to understand whether your document 
 contains each of these words. 
 It is a frequency matrix. 
 That is what a document term matrix is. 
 Now let's move on and look at 
 a natural language processing demo. 
 So what we're gonna do is we're gonna perform 
 sentimental analysis. 
 Now like I said, sentimental analysis 
 is one of the most popular applications 
 of natural language processing. 
 It refers to the processing of determining 
 whether a given piece of text or a given sentence of text 
 is positive or negative. 
 So, in some variations, we consider 
 a sentence to also be neutral. 
 That's a third option. 
 And this technique is commonly used to discover 
 how people feel about a particular topic 
 or what are people's opinion about a particular topic. 
 So this is mainly used to analyze the sentiments of users 

English: 
in various forms,
such as in marketing
campaigns, in social media,
in e-commerce websites, and so on.
So now we'll be performing
sentimental analysis
using Python.
So we are going to perform
natural language processing
by using the NaiveBayesClassifier.
That's why we are importing
the NaiveBayesClassifier.
So guys, Python provides a library known
as natural language toolkit.
This library contains all
the functions that are needed
to perform natural language processing.
Also in this library,
we have a predefined data
set called movie reviews.
What we're gonna do is
we're going to download that
from our NLTK, which is
natural language toolkit.
We're basically going to run our analysis
on this movie review data set.
And that's exactly what
we're doing over here.
Now what we're doing is
we're defining a function
in order to extract features.
So this is our function.
It's just going to extract all our words.
Now that we've extracted the data,
we need to train it,
so we'll do that by using
our movie reviews data set
that we just downloaded.

Italian: 
 in varie forme, 
 such as in marketing campaigns, in social media, 
 in e-commerce websites, and so on. 
 So now we'll be performing sentimental analysis 
 using Python. 
 So we are going to perform natural language processing 
 by using the NaiveBayesClassifier. 
 That's why we are importing the NaiveBayesClassifier. 
 So guys, Python provides a library known 
 as natural language toolkit. 
 This library contains all the functions that are needed 
 to perform natural language processing. 
 Also in this library, 
 we have a predefined data set called movie reviews. 
 What we're gonna do is we're going to download that 
 from our NLTK, which is natural language toolkit. 
 We're basically going to run our analysis 
 on this movie review data set. 
 And that's exactly what we're doing over here. 
 Now what we're doing is we're defining a function 
 in order to extract features. 
 So this is our function. 
 It's just going to extract all our words. 
 Now that we've extracted the data, 
 we need to train it, 
 so we'll do that by using our movie reviews data set 
 that we just downloaded. 

Italian: 
 We're going to understand 
 the positive words and the negative words. 
 So what we're doing here is we're just loading our positive 
 and our negative reviews. 
 We're loading both of them. 
 After that, we'll separate each of these 
 into positive features and negative features. 
 This is pretty understandable. 
 Next, we'll split the data 
 into our training and testing set. 
 Now this is something that we've been doing 
 for all our demos. 
 This is also known as data splicing. 
 We've also set a threshold factor of 0.8 
 which basically means that 80% of your data set 
 will belong to your training, 
 and 20% will be for your testing. 
 You're going to do this even for your positive 
 and your negative words. 
 After that, you're just extracting the features again, 
 and you're just printing 
 the number of training data points that you have. 
 You're just printing the length of your training features 
 and you're printing the length 
 of your testing features. 
 We can see the output, let's run this program. 

English: 
We're going to understand
the positive words and the negative words.
So what we're doing here is
we're just loading our positive
and our negative reviews.
We're loading both of them.
After that, we'll separate each of these
into positive features
and negative features.
This is pretty understandable.
Next, we'll split the data
into our training and testing set.
Now this is something
that we've been doing
for all our demos.
This is also known as data splicing.
We've also set a threshold factor of 0.8
which basically means
that 80% of your data set
will belong to your training,
and 20% will be for your testing.
You're going to do this
even for your positive
and your negative words.
After that, you're just
extracting the features again,
and you're just printing
the number of training
data points that you have.
You're just printing the length
of your training features
and you're printing the length
of your testing features.
We can see the output,
let's run this program.

Italian: 
 So if you see that we're getting 
 the number of training data points as 1,600 
 and your number of testing data points are 400, 
 there's an 80 to 20% ration over here. 
 After this, we'll be using the NaiveBayesClassifier 
 and we'll define the object 
 for the NaiveBayesClassifier with basically classifier, 
 and we'll train this using our training data set. 
 We'll also look at the accuracy of our model. 
 The accuracy of our classifier is around 73%, 
 which is a really good number. 
 Now this classifier object will actually contain 
 the most informative words 
 that are obtained during analysis. 
 These words are basically essential in understanding 
 which word is classified as positive 
 and which is classified as negative. 
 What we're doing here is we're going to review movies. 
 We're going to see which movie review is positive 
 or which movie review is negative. 
 Now this classifier will basically have 
 all the informative words that will help us decide 

English: 
So if you see that we're getting
the number of training
data points as 1,600
and your number of testing
data points are 400,
there's an 80 to 20% ration over here.
After this, we'll be using
the NaiveBayesClassifier
and we'll define the object
for the NaiveBayesClassifier
with basically classifier,
and we'll train this using
our training data set.
We'll also look at the
accuracy of our model.
The accuracy of our
classifier is around 73%,
which is a really good number.
Now this classifier object
will actually contain
the most informative words
that are obtained during analysis.
These words are basically
essential in understanding
which word is classified as positive
and which is classified as negative.
What we're doing here is
we're going to review movies.
We're going to see which
movie review is positive
or which movie review is negative.
Now this classifier will basically have
all the informative words
that will help us decide

English: 
which is a positive review
or a negative review.
Then we're just printing these
10 most informative words,
and we have outstanding, insulting,
vulnerable, ludicrous, uninvolving,
avoids, fascination, and so on.
These are the most
important words in our text.
Now what we're gonna do is
we're gonna test our model.
I've randomly given some reviews.
If you want, let's add another review.
We'll say
I loved the
movie.
So I've added another review over here.
Here we're just printing the review,
and we're checking if
this is a positive review
or a negative review.
Now let's look at our predictions.
We'll save this and...
I forgot to put a comma over here.
Save it and let's run the file again.

Italian: 
 which is a positive review or a negative review. 
 Then we're just printing these 10 most informative words, 
 and we have outstanding, insulting, 
 vulnerable, ludicrous, uninvolving, 
 avoids, fascination, and so on. 
 These are the most important words in our text. 
 Now what we're gonna do is we're gonna test our model. 
 I've randomly given some reviews. 
 If you want, let's add another review. 
 Ben detto 
 I loved the 
 film. 
 So I've added another review over here. 
 Here we're just printing the review, 
 and we're checking if this is a positive review 
 or a negative review. 
 Now let's look at our predictions. 
 We'll save this and... 
 I forgot to put a comma over here. 
 Save it and let's run the file again. 

English: 
So these were our randomly
written movie reviews.
The predicted sentiment is positive.
Our probability score was 0.61.
It's pretty accurate here.
This is a dull movie and I
would never recommend it,
is a negative sentiment.
The cinematography is pretty great,
that's a positive review.
The movie is pathetic is
obviously a negative review.
The direction was terrible,
and the story was all over the place.
This is also considered
as a negative review.
Similarly, I love the movie
is what I just inputted,
and I've got a positive review on that.
So our classifier actually
works really well.
It's giving us good accuracy
and it's classifying the
sentiments very accurately.
So, guys, this was all
about sentimental analysis.
Here we basically saw if a movie review
was positive or negative.
So guys, that was all for our NLP demo.
I hope all of you understood this.

Italian: 
 So these were our randomly written movie reviews. 
 The predicted sentiment is positive. 
 Our probability score was 0.61. 
 It's pretty accurate here. 
 This is a dull movie and I would never recommend it, 
 is a negative sentiment. 
 The cinematography is pretty great, 
 that's a positive review. 
 The movie is pathetic is obviously a negative review. 
 The direction was terrible, 
 and the story was all over the place. 
 This is also considered as a negative review. 
 Similarly, I love the movie is what I just inputted, 
 and I've got a positive review on that. 
 So our classifier actually works really well. 
 It's giving us good accuracy 
 and it's classifying the sentiments very accurately. 
 So, guys, this was all about sentimental analysis. 
 Here we basically saw if a movie review 
 was positive or negative. 
 So guys, that was all for our NLP demo. 
 I hope all of you understood this. 

Italian: 
 It was a simple sentimental analysis 
 that we saw through Python. 
 So again, if you have doubts, 
 please leave them in the comment section, 
 and I'll help you with all of the queries. 
 So guys, that was our last module, 
 which was on natural language processing. 
 Now before I end today's session, 
 I would like to discuss with you 
 the machine learning engineers program 
 that we have Edureka. 
 So we all are aware of 
 the demand of the machine learning engineer. 
 So, at Edureka, we have a master's program 
 that involves 200-plus hours of interactive training. 
 So the machine learning master's program at Edureka 
 has around nine modules and 200-plus hours 
 of interactive learning. 
 So let me tell you the curriculum 
 that this course provides. 
 So your first module will basically cover 
 Python programming. 
 It'll have all the basics and all your data visualization, 
 your GUI programming, your functions, 
 and your object-oriented concepts. 
 The second module will cover machine learning with Python. 

English: 
It was a simple sentimental analysis
that we saw through Python.
So again, if you have doubts,
please leave them in the comment section,
and I'll help you with all of the queries.
So guys, that was our last module,
which was on natural language processing.
Now before I end today's session,
I would like to discuss with you
the machine learning engineers program
that we have Edureka.
So we all are aware of
the demand of the machine
learning engineer.
So, at Edureka, we have a master's program
that involves 200-plus hours
of interactive training.
So the machine learning
master's program at Edureka
has around nine modules and 200-plus hours
of interactive learning.
So let me tell you the curriculum
that this course provides.
So your first module will basically cover
Python programming.
It'll have all the basics and
all your data visualization,
your GUI programming, your functions,
and your object-oriented concepts.
The second module will cover
machine learning with Python.

Italian: 
 So you'll supervise algorithms 
 and unsupervised algorithms 
 along with statistics and time series 
 in Python will be covered in your second module. 
 Your third module will have graphical modeling. 
 This is quite important when ti comes to machine learning. 
 Here you'll be taught about decision making, 
 graph theory, inference, and Bayesian and Markov's network, 
 and module number four will cover 
 reinforcement learning in depth. 
 Here you'll understanding dynamic programming, 
 temporal difference, Bellman equations, 
 all the concepts of reinforcement learning in depth. 
 All the detail in advance concepts 
 of reinforcement learning. 
 So, module number five will cover NLP with Python. 
 You'll understand tokenization, stemming lemmatization, 
 syntax, tree parsing, and so on. 
 And module number six will have module six will have 
 artificial intelligence and deep learning with TensorFlow. 
 This module is a very advanced version 
 of all your machine learning 
 and reinforcement learning that you'll learn. 
 Deep learning will be in depth over here. 
 You'll be using TensorFlow throughout. 

English: 
So you'll supervise algorithms
and unsupervised algorithms
along with statistics and time series
in Python will be covered
in your second module.
Your third module will
have graphical modeling.
This is quite important when
ti comes to machine learning.
Here you'll be taught
about decision making,
graph theory, inference, and
Bayesian and Markov's network,
and module number four will cover
reinforcement learning in depth.
Here you'll understanding
dynamic programming,
temporal difference, Bellman equations,
all the concepts of
reinforcement learning in depth.
All the detail in advance concepts
of reinforcement learning.
So, module number five
will cover NLP with Python.
You'll understand tokenization,
stemming lemmatization,
syntax, tree parsing, and so on.
And module number six will
have module six will have
artificial intelligence and
deep learning with TensorFlow.
This module is a very advanced version
of all your machine learning
and reinforcement learning
that you'll learn.
Deep learning will be in depth over here.
You'll be using TensorFlow throughout.

Italian: 
 They'll cover all the concepts that we saw, CNN, RNN. 
 it'll cover the various type of neural networks, 
 like convolutional neural networks, 
 recurrent neural networks, 
 long, short-term memory, neural networks, 
 and auto encoders and so on. 
 The seventh module is all about PySpark. 
 It'll show you how Spark SQL works 
 and all the features and functions of Spark ML library. 
 And the last module will finally cover 
 about Python Spark using PySpark. 
 Appropriate from this seven modules, 
 you'll also get two free self-paced courses. 
 Let's actually take a look at the course. 
 So this is your machine learning 
 engineer master's program. 
 You'll have nine courses, 200-plus hours 
 of interactive learning. 
 This is the whole course curriculum, 
 which we just discussed. 
 Here there are seven modules. 
 Apart from these seven modules, 
 you'll be given two free self-paced courses, 
 which I'll discuss shortly. 
 You can also get to know the average annual salary 
 for a machine learning engineer, 

English: 
They'll cover all the concepts
that we saw, CNN, RNN.
it'll cover the various
type of neural networks,
like convolutional neural networks,
recurrent neural networks,
long, short-term memory, neural networks,
and auto encoders and so on.
The seventh module is all about PySpark.
It'll show you how Spark SQL works
and all the features and
functions of Spark ML library.
And the last module will finally cover
about Python Spark using PySpark.
Appropriate from this seven modules,
you'll also get two
free self-paced courses.
Let's actually take a look at the course.
So this is your machine learning
engineer master's program.
You'll have nine courses, 200-plus hours
of interactive learning.
This is the whole course curriculum,
which we just discussed.
Here there are seven modules.
Apart from these seven modules,
you'll be given two
free self-paced courses,
which I'll discuss shortly.
You can also get to know
the average annual salary
for a machine learning engineer,

Italian: 
 which is over $134,000. 
 And there are also a lot of job openings 
 in the field of machine learning AI and data science. 
 So the job titles that you might get 
 are machine learning engineer, AI engineer, 
 data scientist, data and analytics manger, 
 NLP engineer, and data engineer. 
 So this is basically the curriculum. 
 Your first will by Python programming certification, 
 machine learning certification using Python, 
 graphical modeling, reinforcement learning, 
 natural language processing, 
 AI and deep learning with TensorFlow. 
 Python Spark certification training using PySpark. 
 If you want to learn more about each of these modules, 
 you can just go and view the curriculum. 
 They'll explain each and every concept 
 that they'll be showing in this module. 
 All of this is going to be covered here. 
 This is just the first module. 
 Now at the end of this project, 
 you will be given a verified certificate of completion 
 with your name on it, 

English: 
which is over $134,000.
And there are also a lot of job openings
in the field of machine
learning AI and data science.
So the job titles that you might get
are machine learning
engineer, AI engineer,
data scientist, data and analytics manger,
NLP engineer, and data engineer.
So this is basically the curriculum.
Your first will by Python
programming certification,
machine learning
certification using Python,
graphical modeling,
reinforcement learning,
natural language processing,
AI and deep learning with TensorFlow.
Python Spark certification
training using PySpark.
If you want to learn more
about each of these modules,
you can just go and view the curriculum.
They'll explain each and every concept
that they'll be showing in this module.
All of this is going to be covered here.
This is just the first module.
Now at the end of this project,
you will be given a verified
certificate of completion
with your name on it,

English: 
and these are the free elective courses
that you're going to get.
One is your Python scripting
certification training.
And the other is your Python Statistics
for Data Science Course.
Both of these courses
explain Python in depth.
The second course on statistics
will explain all the concepts
of statistics probability,
descriptive statistics,
inferential statistics,
time series, testing data,
data clustering, regression
modeling, and so on.
So each of the module is
designed in such a way that
you'll have a practical demo
or a practical implementation
after each and every model.
So all the concept that I
theoretically taught to you
will be explained through practical demos.
This way you'll get a
good understanding of
the entire machine
learning and AI concepts.
So, if any of you are interested
in enrolling for this program
or if you want to learn more about
the machine learning
course offered by Edureka,
please leave your email
IDs in the comment section,
and we'll get back to you
with all the details of the course.

Italian: 
 and these are the free elective courses 
 that you're going to get. 
 One is your Python scripting certification training. 
 And the other is your Python Statistics 
 for Data Science Course. 
 Both of these courses explain Python in depth. 
 The second course on statistics 
 will explain all the concepts 
 of statistics probability, descriptive statistics, 
 inferential statistics, 
 time series, testing data, 
 data clustering, regression modeling, and so on. 
 So each of the module is designed in such a way that 
 you'll have a practical demo 
 or a practical implementation 
 after each and every model. 
 So all the concept that I theoretically taught to you 
 will be explained through practical demos. 
 This way you'll get a good understanding of 
 the entire machine learning and AI concepts. 
 So, if any of you are interested 
 in enrolling for this program 
 or if you want to learn more about 
 the machine learning course offered by Edureka, 
 please leave your email IDs in the comment section, 
 and we'll get back to you 
 with all the details of the course. 

English: 
So guys, with this, we come to the end
of this AI full course session.
I hope all of you have
understood the basic concepts
and the idea behind AI machine
learning, deep learning,
and natural language processing.
So if you still have doubts
regarding any of these topics,
mention them in the comment section,
and I'll try to answer all your queries.
So guys, thank you so much for
joining me in this session.
Have a great day.
I hope you have enjoyed
listening to this video.
Please be kind enough to like it,
and you can comment any of
your doubts and queries,
and we will reply them at the earliest.
Do look out for more
videos in our playlist
and subscribe to Edureka
channel to learn more.
Happy learning.

Italian: 
 So guys, with this, we come to the end 
 of this AI full course session. 
 I hope all of you have understood the basic concepts 
 and the idea behind AI machine learning, deep learning, 
 and natural language processing. 
 So if you still have doubts 
 regarding any of these topics, 
 mention them in the comment section, 
 and I'll try to answer all your queries. 
 So guys, thank you so much for joining me in this session. 
 Vi auguro una buona giornata. 
 Spero ti sia piaciuto ascoltare questo video. 
 Please be kind enough to like it, 
 and you can comment any of your doubts and queries, 
 and we will reply them at the earliest. 
 Do look out for more videos in our playlist 
 and subscribe to Edureka channel to learn more. 
 Buon apprendimento. 
