0% acharam este documento útil (0 voto)
7 visualizações98 páginas

Machine Learning: Classificação e Regressão

Enviado por

ysmrbvjbw7
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
7 visualizações98 páginas

Machine Learning: Classificação e Regressão

Enviado por

ysmrbvjbw7
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Machine learning i –

classificação e regressão
Prof. Rodrigo Ramos Nogueira

Indaial – 2020
1a Edição
Copyright © UNIASSELVI 2020

Elaboração:
Prof. Rodrigo Ramos Nogueira

Revisão, Diagramação e Produção:


Centro Universitário Leonardo da Vinci – UNIASSELVI

Ficha catalográfica elaborada na fonte pela Biblioteca Dante Alighieri


UNIASSELVI – Indaial.

N778m

Nogueira, Rodrigo Ramos

Machine learning I - Classificação e regressão. / Rodrigo Ramos


Nogueira. – Indaial: UNIASSELVI, 2020.

186 p.; il.

ISBN 978-65-5663-320-6
ISBN Digital 978-65-5663-316-9

1. Machine learning. - Brasil. II. Centro Universitário Leonardo da


Vinci.

CDD 004

Impresso por:
apresentação
Caro acadêmico! Seja bem-vindo ao Livro Didático Machine learning
I – Classificação e Regressão. Esta disciplina objetiva proporcionar uma
introdução aos conceitos fundamentais de Machine learning e aprofundar os
estudos sobre as tarefas de classificação e regressão.

Este material conta com recursos didáticos externos, por isso,


recomendamos fortemente que você realize todos os exemplos, explore
as bases de dados e pratique com os exercícios resolvidos, para um
aproveitamento excepcional da disciplina.

Nesse contexto, este livro didático está dividido em: Unidade 1, que
apresenta uma introdução ao aprendizado de máquina; Unidade 2, que
mostra a classificação das Machine learning e Unidade 3, que trata da regressão.

Destacamos também a importância de realizar as autoatividades,


que objetivam a fixação dos conceitos apresentados – lembrando que elas
não são opcionais. Em caso de dúvida durante a realização das atividades,
sugerimos que entre em contato com seu tutor externo ou com a tutoria do
Centro Universitário Leonardo Da Vinci (UNIASSELVI) – não continue as
atividades enquanto todas as dúvidas não tiverem sido sanadas.

Bom estudo! Sucesso na sua trajetória acadêmica e profissional!

Prof. Rodrigo Ramos Nogueira


NOTA

Você já me conhece das outras disciplinas? Não? É calouro? Enfim, tanto para
você que está chegando agora à UNIASSELVI quanto para você que já é veterano, há novi-
dades em nosso material.

Na Educação a Distância, o livro impresso, entregue a todos os acadêmicos desde 2005, é


o material base da disciplina. A partir de 2017, nossos livros estão de visual novo, com um
formato mais prático, que cabe na bolsa e facilita a leitura.

O conteúdo continua na íntegra, mas a estrutura interna foi aperfeiçoada com nova diagra-
mação no texto, aproveitando ao máximo o espaço da página, o que também contribui
para diminuir a extração de árvores para produção de folhas de papel, por exemplo.

Assim, a UNIASSELVI, preocupando-se com o impacto de nossas ações sobre o ambiente,


apresenta também este livro no formato digital. Assim, você, acadêmico, tem a possibilida-
de de estudá-lo com versatilidade nas telas do celular, tablet ou computador.

Eu mesmo, UNI, ganhei um novo layout, você me verá frequentemente e surgirei para
apresentar dicas de vídeos e outras fontes de conhecimento que complementam o assun-
to em questão.

Todos esses ajustes foram pensados a partir de relatos que recebemos nas pesquisas
institucionais sobre os materiais impressos, para que você, nossa maior prioridade, possa
continuar seus estudos com um material de qualidade.

Aproveito o momento para convidá-lo para um bate-papo sobre o Exame Nacional de


Desempenho de Estudantes – ENADE.

Bons estudos!
LEMBRETE

Olá, acadêmico! Iniciamos agora mais uma disciplina e com ela


um novo conhecimento.

Com o objetivo de enriquecer seu conhecimento, construímos, além do livro


que está em suas mãos, uma rica trilha de aprendizagem, por meio dela você
terá contato com o vídeo da disciplina, o objeto de aprendizagem, materiais complemen-
tares, entre outros, todos pensados e construídos na intenção de auxiliar seu crescimento.

Acesse o QR Code, que levará ao AVA, e veja as novidades que preparamos para seu estudo.

Conte conosco, estaremos juntos nesta caminhada!


suMário
UNIDADE 1 — MACHINE LEARNING ............................................................................................. 1

TÓPICO 1 — INTRODUÇÃO AO MACHINE LEARNING ........................................................... 3


1 INTRODUÇÃO .................................................................................................................................... 3
2 ASPECTOS HISTÓRICOS DE MACHINE LEARNING............................................................... 5
3 DEFINIÇÃO DE CONCEITOS ......................................................................................................... 7
4 CARACTERÍSTICAS DE MACHINE LEARNING ...................................................................... 11
RESUMO DO TÓPICO 1..................................................................................................................... 14
AUTOATIVIDADE .............................................................................................................................. 15

TÓPICO 2 — PREPARANDO O AMBIENTE PARA TRABALHAR COM


MACHINE LEARNING ............................................................................................... 19
1 INTRODUÇÃO .................................................................................................................................. 19
2 LINGUAGEM DE PROGRAMAÇÃO .......................................................................................... 19
3 JUPYTER NOTEBOOK E GOOGLE COLAB RESEARCH ....................................................... 21
4 GITHUB............................................................................................................................................... 24
5 DATASETS ......................................................................................................................................... 26
5.1 BANCOS DE DADOS E DATA WAREHOUSING .................................................................. 27
5.2 ÁUDIO, IMAGEM E VÍDEO....................................................................................................... 27
5.3 ARQUIVOS DE TEXTOS ............................................................................................................. 28
5.4 DOCUMENTOS SEMIESTRUTURADOS................................................................................. 29
5.5 KAGGLE ........................................................................................................................................ 30
5.6 UCI MACHINE LEARNING REPOSITORY .............................................................................. 30
RESUMO DO TÓPICO 2..................................................................................................................... 33
AUTOATIVIDADE .............................................................................................................................. 34

TÓPICO 3 — ARQUITETURA DE UM PROJETO DE MACHINE LEARNING ...................... 37


1 INTRODUÇÃO .................................................................................................................................. 37
2 COLETA DE DADOS........................................................................................................................ 38
3 PREPARAÇÃO DOS DADOS......................................................................................................... 38
4 ESCOLHA DO MODELO ................................................................................................................ 39
5 TREINO E TESTE .............................................................................................................................. 41
6 AVALIAÇÃO ...................................................................................................................................... 44
7 TUNING DE PARÂMETROS .......................................................................................................... 44
8 PREDIÇÃO.......................................................................................................................................... 45
LEITURA COMPLEMENTAR............................................................................................................ 46
RESUMO DO TÓPICO 3..................................................................................................................... 51
AUTOATIVIDADE .............................................................................................................................. 52

REFERÊNCIAS ...................................................................................................................................... 55
UNIDADE 2 — CLASSIFICAÇÃO ................................................................................................... 59

TÓPICO 1 — INTRODUÇÃO ÀS TAREFAS DE CLASSIFICAÇÃO ........................................ 61


1 INTRODUÇÃO .................................................................................................................................. 61
2 VISÃO GERAL DA CLASSIFICAÇÃO ....................................................................................... 61
3 CENÁRIOS DE CLASSIFICAÇÃO ............................................................................................... 63
4 FERRAMENTAS COMPLEMENTARES....................................................................................... 64
4.1 LISTAS ........................................................................................................................................... 65
4.2 NUMPY .......................................................................................................................................... 66
4.3 ANACONDA ................................................................................................................................ 67
4.4 SCIPY .............................................................................................................................................. 68
4.5 SCIKIT-LEARN .............................................................................................................................. 69
5 MÉTRICAS DE AVALIAÇÃO PARA CLASSIFICAÇÃO.......................................................... 69
RESUMO DO TÓPICO 1..................................................................................................................... 73
AUTOATIVIDADE .............................................................................................................................. 74

TÓPICO 2 — MÉTODOS DE CLASSIFICAÇÃO BASEADOS EM DISTÂNCIA.................. 77


1 INTRODUÇÃO .................................................................................................................................. 77
2 MÉTODOS BASEADOS EM DISTÂNCIA.................................................................................. 78
2.1 KNN................................................................................................................................................ 79
2.1.1 Implementação matemática do método .......................................................................... 80
2.2 IMPLEMENTAÇÃO COM SCIKIT-LEARN .............................................................................. 89
2.3 CLASSIFICANDO O IRIS DATASET COM O KNN ............................................................... 91
RESUMO DO TÓPICO 2..................................................................................................................... 95
AUTOATIVIDADE .............................................................................................................................. 96

TÓPICO 3 — MÉTODOS PROBABILÍSTICOS E OUTROS MÉTODOS


DE CLASSIFICAÇÃO................................................................................................. 99
1 INTRODUÇÃO .................................................................................................................................. 99
2 MÉTODOS PROBABILÍSTICOS ................................................................................................... 99
2.1 NAÏVE BAYES .............................................................................................................................. 99
2.1.1 Implementação matemática do método ........................................................................ 103
2.2 IMPLEMENTAÇÃO COM O SCIKIT-LEARN........................................................................ 107
2.3 CLASSIFICANDO O IRIS DATASET COM O NAÏVE BAYES ............................................ 108
3 OUTROS CLASSIFICADORES.................................................................................................... 110
3.1 REGRESSÃO LINEAR .............................................................................................................. 110
3.2 REGRESSÃO LOGÍSTICA ........................................................................................................ 111
3.3 MÁQUINA DE VETOR DE SUPORTE .................................................................................. 112
3.4 PERCEPTRON............................................................................................................................. 113
LEITURA COMPLEMENTAR.......................................................................................................... 115
RESUMO DO TÓPICO 3................................................................................................................... 121
AUTOATIVIDADE ............................................................................................................................ 122

REFERÊNCIAS .................................................................................................................................... 123

UNIDADE 3 — REGRESSÃO .......................................................................................................... 127

TÓPICO 1 — INTRODUÇÃO ÀS TAREFAS DE REGRESSÃO ............................................... 129


1 INTRODUÇÃO ................................................................................................................................ 129
2 VISÃO GERAL DA REGRESSÃO ............................................................................................... 129
3 MÉTRICAS ....................................................................................................................................... 132
3.1 ERRO QUADRÁTICO MÉDIO ................................................................................................ 132
3.2 ERRO ABSOLUTO MÉDIO....................................................................................................... 134
3.3 OVERFITTING E UNDERFITTING .......................................................................................... 134
3.4 VALIDAÇÃO CRUZADA ......................................................................................................... 135
RESUMO DO TÓPICO 1................................................................................................................... 136
AUTOATIVIDADE ............................................................................................................................ 137

TÓPICO 2 — REGRESSÃO LINEAR ............................................................................................. 139


1 INTRODUÇÃO ................................................................................................................................ 139
2 UTILIZANDO REGRESSÃO ....................................................................................................... 140
3 DERIVADAS..................................................................................................................................... 150
4 GRADIENTE DESCENDENTE .................................................................................................... 152
5 IMPLEMENTAÇÃO DA REGRESSÃO LINEAR...................................................................... 155
RESUMO DO TÓPICO 2................................................................................................................... 161
AUTOATIVIDADE ............................................................................................................................ 162

TÓPICO 3 — TÉCNICAS AVANÇADAS DE REGRESSÃO ..................................................... 165


1 INTRODUÇÃO ................................................................................................................................ 165
2 REGRESSÃO LOGÍSTICA ............................................................................................................ 165
3 REDES NEURAIS ARTIFICIAIS.................................................................................................. 169
4 IMPLEMENTANDO REGRESSÕES COM BIBLIOTECAS DO PYTHON ......................... 175
LEITURA COMPLEMENTAR.......................................................................................................... 177
RESUMO DO TÓPICO 3................................................................................................................... 183
AUTOATIVIDADE ............................................................................................................................ 184

REFERÊNCIAS .................................................................................................................................... 185


UNIDADE 1 —

MACHINE LEARNING

OBJETIVOS DE APRENDIZAGEM
A partir do estudo desta unidade, você deverá ser capaz de:

• compreender os conceitos fundamentais e históricos sobre Machine


learning;

• conhecer exemplos de aplicações de Machine learning no mundo real;

• entender as principais características das aplicações de Machine learning;

• saber quais são as principais ferramenas para codificação;

• conhecer exemplos de aplicações e tipos de conjuntos de dados;

• dominar o desenvolvimento de um algoritmo de Machine learning por


meio da apresentação das principais etapas de implementação.

PLANO DE ESTUDOS
Esta unidade está dividida em três tópicos. No decorrer da unidade, você
encontrará autoatividades com o objetivo de reforçar o conteúdo apresentado.

TÓPICO 1 – INTRODUÇÃO AO MACHINE LEARNING

TÓPICO 2 – PREPARANDO O AMBIENTE PARA TRABALHAR COM


MACHINE LEARNING

TÓPICO 3 – ARQUITETURA DE UM PROJETO DE MACHINE LEARNING

CHAMADA

Preparado para ampliar seus conhecimentos? Respire e vamos


em frente! Procure um ambiente que facilite a concentração, assim absorverá
melhor as informações.

1
2
TÓPICO 1 —
UNIDADE 1

INTRODUÇÃO AO MACHINE LEARNING

1 INTRODUÇÃO
A ineligência arificial, por meio das suas mais diversas subáreas, em
alterado a nossa maneira de interagir com os sistemas computacionais, bem como
a própria forma de interação com outros seres humanos.

Neste livro didático, estudaremos alguns algoritmos de inteligência


arificial. Enreano, anes de aprofundarmos os conceios de Machine learning
(em português, “aprendizado de máquina”), é preciso ressaltar que você já é um
usuário de Machine learning.

Por exemplo, quando acessamos as plataformas de streaming de vídeo, é


comum que filmes e vídeos sejam recomendados auomaicamene. Para isso são
considerados nossos dados pessoais, os filmes que posiivamos (curimos), bem
como os dados de navegação do usuário (cookies).

Em 2009, apenas a Neflix, uma das pioneiras dessas plaaformas,


ofereceu 1 milhão de dólares para quem conseguisse otimizar seu algoritmo de
recomendação de filmes. Aé hoje, a plaaforma invese pesado para er maior
nível de assertividade nesse algoritmo, permitindo manter mais usuários em
frente à concorrência.

FIGURA 1 – RECOMENDAÇÕES DE FILMES DA PLATAFORMA NETFLIX

FONTE: O autor

3
UNIDADE 1 — MACHINE LEARNING

Outra situação cotidiana em que nos tornamos usuários de Machine learning


são os anúncios e as propagandas que aparecem após procurarmos um termo
em um site de buscas ou em uma rede social. Durante a elaboração deste livro
didático, pesquisamos as opções para adquirir um novo computador e, adivinha,
todos os sites que tinham acesso aos cookies de pesquisa nos apresentaram
recomendações relacionadas as minhas buscas anteriores, cuja maioria das
propagandas era gerida pelo Google. Segundo Chow (2017), hoje, são poucas as
ecnologias do Google que não usam ineligência arificial e machine learning. A
ineligência arificial esá reinvenando nossos produos, desde o Google Maps
até o YouTube, e promovendo novas experiências.

Quando o Google lançou a ferramenta “Ok, Google”, particularmente


não vimos grandes vantagens no início, porém, foi a ferramenta que possibilitou
o aprendizado de uso de smartphone dos nossos pais, até então avessos à
tecnologia. O recurso, agora chamado de “Assistente”, permite reconhecimento
de voz e a realização de ações no dispositivo auxilia em diversos contextos da
acessibilidade a recursos.

FIGURA 2 – CONVERSA COM O GOOGLE ASSISTENTE

FONTE: O autor

Nas mais diversas ciências, as técnicas de Machine learning têm sido


utilizadas para auxiliar os mais diversos processos, como a biologia, a aeronáutica,
a física, a economia, entre muitas outras áreas.

Entre os exemplos está a sua aplicação nas ciências da saúde, tanto na


realização de diagnósticos quanto de prognósticos. A área da saúde permite
trabalhar com cenários interessantes, que vão desde a análise de prontuários e
o reconhecimento de imagens até a análise dos dados históricos (por exemplo,
utilizando relógios medidores).

4
TÓPICO 1 — INTRODUÇÃO AO MACHINE LEARNING

FIGURA 3 – APLICAÇÃO DE MACHINE LEARNING NA DETECÇÃO DO CÂNCER

FONTE: <[Link] Acesso em: 2 out. 2020.

É fato que o Machine learning está presente em nosso cotidiano e é parte da


próxima revolução industrial, em conjunto com Big Data e tecnologias 4.0. Nas
próximas seções, compreenderemos melhor seu conceito e seu funcionamento.

2 ASPECTOS HISTÓRICOS DE MACHINE LEARNING


A história do Machine learning teve início em 1959, com o cientista Arthur
Lee Samuel (SAMUEL, 1959), do Insiuo de Tecnologia de Massachusets (MIT),
considerado pioneiro do desenvolvimento de jogos de computador, inteligência
arificial e aprendizado de máquina. Em seu arigo, Samuel (1959) apresena um
esudo sobre algorimos de ineligência arificial que consulam dados hisóricos
para aprender a jogar damas – aprendendo com acertos e erros, a cada partida, a
máquina estava mais aperfeiçoada no jogo.

FIGURA 4 – ARTHUR LEE SAMUEL E A MÁQUINA QUE JOGAVA DAMAS

FONTE: <[Link]
Acesso em: 2 out. 2020.

5
UNIDADE 1 — MACHINE LEARNING

As redes neurais são um modelo maemáico de ineligência arificial


que simula o comportamento do cérebro humano, tendo um papel importante
na história e na atualidade do desenvolvimento de algoritmos inteligentes. O
primeiro algoritmo de redes neurais é conhecido como Perceptron (ROSENBLATT,
1957), utilizado para a realização de tarefas com reconhecimento de padrões.
Entretanto, alguns anos depois, Minsky e Papert (1969) realizaram a prova do
funcionamento do algoritmo e concluíram que não existia poder computacional
suficiene na época para que ele funcionasse.

Nos anos de 1970, já com a existência dos bancos de dados relacionais


e o início do desenvolvimento de sistemas de apoio à decisão, um marco para
evolução dos sistemas inteligentes foi o algoritmo ID3 (Inductive Decision Tree),
utilizado nas chamadas árvores de decisão, tendo novas versões nas décadas
seguintes (QUINLAN, 1986; 1993).

Em um paralelo com a história dos computadores, nos anos de 1980,


surgiu a segunda geração de computadores, com máquinas menores e poder
compuacional maior. Com isso, as redes neurais ressurgiram, afinal as máquinas
ficaram mais poenes. A parir dessa época, desponou ambém o uso de
metodologias experimentais para validar os experimentos.

A mineração de dados permite a descoberta de conhecimento a partir


dos bancos de dados. Nos anos de 1990, essa tecnologia atraiu uma quantidade
significaiva de aenção da pesquisa e das organizações, por explorar o uso de
algoritmos de Machine learning em outras aplicações e ter relação com outras
áreas da ineligência arificial (FAYYAD; PIATETSKY-SHAPIRO; SMYTH, 1996).

Por fim, foi na década de 2000 que a inerne chegou às casas dos usuários
e as redes sociais assumiram seu papel na comunicação virtual, gerando um
grande impacto no cotidiano das pessoas e das organizações. Esse momento, com
o grande volume de dados, gerando cenários de Big Data, contribuiu para que os
algoritmos de Machine learning fossem utilizados pelas empresas.

A Figura 5 sumariza a hisória do Machine learning, bem como dos demais


méodos de ineligência arificial descrios aneriormene.

6
TÓPICO 1 — INTRODUÇÃO AO MACHINE LEARNING

FIGURA 5 – HISTÓRIA DOS MÉTODOS DE MACHINE LEARNING

FONTE: CAO (2018, p. 3)

3 DEFINIÇÃO DE CONCEITOS
Machine learning, compreendido como o aprendizado de máquina a partir
dos dados previamene conhecido, é definido como um campo preocupado
com a questão de como construir programas de computador que melhorem
automaticamente a experiência do usuário (MITCHELL, 1997).

NOTA

Complementarmente a essa definição, Machine learning também é “Um


programa [que] aprende a partir da experiência E, em relação a uma classe de tarefas T,
com medida de desempenho P, se seu desempenho em T, medido por P, melhora com E”
(Mitchell, 1997).

Para compreendermos melhor essa definição, omaremos como exemplo o


“game of checkers”, proposto no experimento de Arthur Samuel (1959), que tratava
de um programa de aprendizado de máquina para jogar damas.

7
UNIDADE 1 — MACHINE LEARNING

FIGURA 6 – GAME OF CHECKERS

FONTE: Samuel (1959, p. 4)

Ao aplicarmos a definição de Machine learning proposta por Mitchell


(1997) no exemplo do jogo de damas, êm-se:

• T: tarefa de realizar o jogo de damas.


• E: experiência com histórico de vários jogos de damas.
• P: a medida de desempenho é a probabilidade de ganhar a próxima partida,
com base em jogos anteriores.

TE
INTERESSAN

O jogo de damas, com cereza, não é segredo para você. Confira o arigo que deu
origem ao primeiro trabalho (SAMUEL, 1959), bem como originou o termo Machine learning:
hps://[Link]/sysem/files/privae/downloads/636026949/repor_frank_
[Link].

Um exemplo cotidiano na internet são as tarefas relacionadas aos bots,


algoritmos que enviam mensagens e fazem postagens simulando serem pessoas
na rede. Nesses cenários, algoritmos de Machine learning podem ser utilizados
para a detecção de mensagens feitas por bots.

FIGURA 7 – BOTS NA WEB

FONTE: <[Link]
Acesso em: 2 out. 2020.

8
TÓPICO 1 — INTRODUÇÃO AO MACHINE LEARNING

Ao aplicarmos a definição de Machine learning proposta por Mitchell


(1997) no exemplo da classificação de bots na web, êm-se:

• T: tarefa de categorizar as mensagens enviadas por bots e por humanos.


• E: experiência com histórico de várias mensagens anteriores corretamente
idenificadas.
• P: a medida de desempenho é a porcentagem de mensagens de bots
correamene classificadas.

TE
INTERESSAN

Os bots invadiram a vida dos mais diversos usuários da web, seja para
quem joga, utiliza e-mail, aplicativos de mensagens, bem como as mais diversas redes
sociais. Por isso, é interessante conhecer mais sobre os bots, uma vez que, no decorrer
dos nossos estudos, compreenderemos o seu desenvolvimento e a sua detecção. Leia:
[Link]
[Link].

A área médica provê uma grande quantidade de dados para as mais


diversas aplicações de Machine learning. Um exemplo é a área de diagnósticos,
em que as imagens podem ser analisadas para gerar o diagnóstico com base nos
sintomas apresentados pelo paciente.

FIGURA 8 – DIAGNÓSTICO UTILIZANDO INTELIGÊNCIA ARTIFICIAL

FONTE: <[Link] Acesso em: 2 out. 2020.

Ao aplicarmos a definição de Machine learning proposta por Mitchell (1997)


no exemplo da aplicação para diagnósicos médicos auomaizados, êm-se:

• T: tarefa de diagnosticar um paciente de acordo com os sintomas que ele


apresentar.
• E: experiência com histórico de pacientes anteriores, que foram diagnosticados
conforme seus respectivos sintomas.
• P: a medida de desempenho é a porcentagem de pacientes que obtiverem o
diagnóstico correto.

9
UNIDADE 1 — MACHINE LEARNING

TE
INTERESSAN

Existem diversas aplicações na área médica, desde a medicina avançada


até o suporte ao usuário. Um exemplo é a Dra. Lara, uma assistente virtual de apoio e
acompanhamento ao pré-natal, desenvolvida no seguinte trabalho sobre o processo de
desenvolvimento de um chatbot para área médica: [Link]
Rodrigo_Nogueira16/publication/338668367_DRA_LARA_ASSISTENTE_VIRTUAL_DE_
APOIO_E_ACOMPANHAMENTO_AO_PRE-NATAL/links/5e95fd93a6fdcca78915bf24/
[Link].

Até o momento, vimos que um algoritmo de Machine learning funciona por


meio de experiência, tarefa e medidas de desempenho. Ao analisar os exemplos
apresentados, a experiência é sempre adquirida por meio dos dados, ou seja, os
dados são essenciais para a existência do processo de Machine learning.
Machine learning é uma forma de Ineligência Arificial muio uilizada
atualmente, que permite o aprendizado, pelo sistema, a partir de dados
imputados, que servirão como base de treinamento para que o sistema
gere modelos ou saídas que possam servir para análises preditivas ou,
ainda, para futuras tomadas de decisão (MOREIRA, 2020, p. 1).

De modo geral, os algoritmos de Machine learning são de inteligência


arificial, pois aprendem com dados hisóricos armazenados. Essa ecnologia uiliza
os mais diversos tipos algoritmos, embora, em geral, sejam modelos matemáticos
baseados em distância, probabilísticos, baseados em regras, gradiente descendente,
e muitos outros que iremos estudar ao longo deste livro didático.

Os modelos matemáticos geram a inteligência dos algoritmos, permitindo


a exisência do conhecimeno a parir dos dados. A Figura 9 mosra uma maneira
simplificada de como os algorimos de Machine learning funcionam.

FIGURA 9 – FLUXO DE APRENDIZADO DE UM ALGORITMO DE MACHINE LEARNING

FONTE: O autor

10
TÓPICO 1 — INTRODUÇÃO AO MACHINE LEARNING

4 CARACTERÍSTICAS DE MACHINE LEARNING


Os sistemas de aprendizado de máquina apresentam características
peculiares, que possibiliam uma classificação não exclusiva desses sisemas
em função da linguagem de descrição, do modo de aprendizado, do paradigma
de aprendizado, das formas e da tarefa de aprendizado (STANGE, 2011). Para
elucidar a relação dessas características, o quadro a seguir elenca maneira
organizada de acordo com os seus tipos.

QUADRO 1 – CLASSIFICAÇÃO DOS SISTEMAS DE MACHINE LEARNING

Modos de Paradigmas de Formas de Tarefas de


aprendizado aprendizado aprendizado aprendizado

Supervisionado Simbólico Incremental Classificação


Não
Estatístico Não incremental Regressão
supervisionado
Por reforço Conexionista Agrupamento
Genético Associação
FONTE: Adaptado de Stange (2011)

No que se refere à classificação dos méodos de Machine learning, podem


acontecer pela característica denominada modo de aprendizado, isto é, a maneira
com que os resulados da execução dos algorimos são influenciados por
especialistas externos. Os modos de aprendizado podem ser supervisionados,
semissupervisionados, não supervisionados e aprendizado por reforço.

Segundo Zubelli (2017), no aprendizado supervisionado, são apresentados


exemplos do que é desejado como entrada e saída, de modo que o objetivo é
aprender uma regra que mapeia a entrada na saída. Já no não supervisionado,
nenhuma informação é dada a priori, deixando o algoritmo descobrir sozinho
estruturas e padrões nas entradas fornecidas.

Complementarmente, o aprendizado semissupervisionado envolve um


pequeno grau de supervisão, tal como um conjunto de “sementes”, para começar
o processo de aprendizagem.

O aprendizado por reforço envolve a interação com o ambiente


circundante, abordando a questão de como um agente autônomo que sente e age
em seu ambiente pode aprender a escolher ações ideais para atingir seus objetivos.
O comportamento de um agente é recompensado com base nas ações que ele
realiza no ambiente. Ele considera as consequências de suas ações e adota medidas
ótimas. Um computador jogando xadrez com um ser humano, aprendendo a
reconhecer palavras faladas e a classificar novas esruuras asronômicas é um
exemplo de aprendizado por reforço (SHOBHA; RANGASWAMY, 2018).
11
UNIDADE 1 — MACHINE LEARNING

Os paradigmas de aprendizado de máquina podem ser simbólicos,


estatísticos, conexionistas, baseado em exemplos ou genético. Tais conceitos são
descritos por Monard e Baranauskas (2003) como:

• Simbólico: os sistemas de aprendizado simbólico buscam aprender


construindo representações simbólicas de um conceito, por meio da análise
de exemplos e contraexemplos dele. As representações simbólicas estão
tipicamente na forma de alguma expressão lógica, árvore de decisão, regras
ou rede semântica.
• Estatístico: pesquisadores em estatística têm criado diversos métodos
de classificação, muios deles semelhanes aos méodos poseriormene
desenvolvidos pela comunidade de aprendizado de máquina. A ideia geral
consiste em modelos estatísticos para encontrar uma boa aproximação do
conceito induzido.
• Baseado em exemplos: uma forma de classificar um exemplo é lembrar de
outro similar, cuja classe é conhecida, e assumir que o novo exemplo tem a
mesma classe. Essa filosofia demonsra os sisemas baseados em exemplos, que
os classificam como nunca visos por meio de exemplos similares conhecidos.
Esse tipo de sistema de aprendizado é denominado lazy (preguiçoso) e
necessia maner os exemplos na memória para classificar novos exemplos,
em oposição aos sistemas eager (gulosos), que utilizam os exemplos para
induzir o modelo, descarando-os logo após.
• Conexionista: de modo geral, essa abordagem trata das redes neurais, que
são consruções maemáicas simplificadas, inspiradas no modelo biológico
do sistema nervoso. A representação de uma rede neural envolve unidades
altamente interconectadas e, por isso, o nome conexionismo é utilizado, para
descrever a área de estudo.
• Genético: paradigma de aprendizado derivado do modelo evolucionário pro-
posto por David Goldberg, em 1989, no livro “Algoritmos genéticos em pesqui-
sa, otimização e Machine learning”. Um classificador genéico consise de uma
população de elemenos de classificação que compeem para fazer a predição.

As formas de aprendizado estão ligadas à maneira com que o algoritmo


obtém o conhecimento a partir dos dados. Como você aprendeu, os algoritmos
de Machine learning aprendem a partir dos dados armazenados, e as formas de
aprendizado estão relacionadas à atualização desses dados. No cenário real de
implementação de um algoritmo que tem os dados atualizados a todo momento,
a cada novo dado, o algoritmo precisa atualizar o modelo matemático; quando o
algoritmo precisa ler todo o conjunto de dados, ele é chamado de não incremental,
mas se conseguir atualizar o modelo a partir do novo dado é incremental.

As tarefas de aprendizado de máquina são tipicamente divididas


conforme os sinais de entrada e as respostas do aprendizado (ZUBELLI, 2017).
Essas arefas podem ser de classificação, regressão, agrupameno ou associação –
cada um desses métodos será estudado em seguida.

12
TÓPICO 1 — INTRODUÇÃO AO MACHINE LEARNING

TE
INTERESSAN

FIGURA 10 - A CIÊNCIA DOS DADOS É MULTIDISCIPLINAR

FONTE: <[Link]
-Data-Data-Mining>. Acesso em: 2 out. 2020.

Machine learning, muitas vezes, pode ser confundida com outras áreas do conhecimento,
principalmente em sistemas inteligentes, pois, como são áreas próximas, é comum tal
confusão. Por isso, é interessante compreender a relação entre essas áreas:

• A ciência de dados é o guarda-chuva de técnicas nas quais você está tentando extrair
informações e insights sobre os dados. Isso inclui desde trabalhar com programação
em baixo nível até a entrega de informação em nível mais alto.
• A mineração de dados é a ciência de coletar histórico de dados e, em seguida,
procurar padrões neles. Você procura padrões consistentes e relacionamentos
entre variáveis. Depois de encontrar essas informações, você as válidas aplicando os
padrões detectados a novos subconjuntos de dados.
• Análise de dados é qualquer tentativa de entender os dados.
• Estatística é o estudo da coleta, da análise, da interpretação, da apresentação e da
organização dos dados. A estatística lida com todos os aspectos dos dados, incluindo o
planejamento da coleta de dados, em termos de projeto de pesquisas e experimentos.
• Bancos de dados é uma coleção organizada de dados, com esquemas, tabelas,
consultas, relatórios, visualizações e outros objetos. Os dados são normalmente
organizados para modelar aspectos da realidade, de maneira a suportar processos
que requerem informações.
• Inteligência artificial (IA) é a inteligência exibida por máquinas ou software, isto é,
campo de estudo acadêmico sobre como criar computadores e softwares capazes
de comportamento inteligente.
• A descoberta de conhecimento em bancos de dados (KDD) é o processo que
identifica o conhecimento útil de uma coleção de dados.
• O reconhecimento de padrões se concentra no reconhecimento de padrões e
regularidades nos dados, embora em alguns casos seja considerado quase sinônimo
de aprendizado de máquina.
• A neurocomputação estuda um programa de software que usa uma rede neural,
simulando o cérebro humano, que pode ser treinada para executar tarefas específicas,
como reconhecimento de padrões.

FONTE: <[Link]
Data-Data-Mining>. Acesso em: 2 out. 2020.

13
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu que:

• O Machine learning está presente no cotidiano dos usuários da web.

• As grandes corporações utilizam essa tecnologia para otimizar seus negócios.

• A história do Machine learning teve início com um jogo de damas que utilizava
ineligência arificial.

• Os fundamentos históricos acompanham o de outras tecnologias, como a


ineligência arificial e Big Daa.

• Um programa aprende a partir da experiência E, em relação a uma classe de


tarefas T, com medida de desempenho P; se seu desempenho em T, medido
por P, melhora com E.

• Os algorimos são de ineligência arificial, que aprendem com dados


históricos armazenados.

• Os sistemas apresentam diversas características. São elas: modos de


aprendizado – supervisionado, não supervisionado e por reforço; paradigmas
de aprendizado – simbólico, estatístico, conexionista ou genético; formas de
aprendizado – incremental ou não incremental; e tarefas de aprendizado –
classificação, regressão, agrupameno ou associação.

14
AUTOATIVIDADE

1 Leia o texto a seguir:

Os sistemas de Machine learning, em português conhecidos como sistema


de aprendizagem automática ou sistemas de aprendizado de máquina,
podem ajudar a descobrir padrões, realizar determinadas tarefas através da
generalização de casos e na utilização de dados.

FONTE: OLIVEIRA, P. M. M. de. Benchmarking sobre técnicas de otimização para modelos


de apoio à decisão na medicina intensiva. 2015. Tese de Doutorado.

Os algoritmos de aprendizado de máquina têm um modo de aprendizado que


depende de um especialista externo para avalizar seus resultados. Assinale a
alternativa CORRETA que contenha esse modo:

a) ( ) Aprendizado por reforço.


b) ( ) Aprendizado supervisionado.
c) ( ) Aprendizado não supervisionado.
d) ( ) Aprendizado por inteligência.

2 Leia o texto a seguir:

Os algoritmos de Machine learning podem ser aplicados para uma larga gama
de siuações problema, desde deecção de fraudes fiscais, aé recomendações,
porém isso só pode ser feito devido à grande quantidade de dados fornecidas
pelos datasets.

FONTE: FREITAS, D. W. Recomendação de animes utilizando Machine learning: uma aborda-


gem baseada em avaliações dos usuários. Engenharia da Computação, 2018.

Com relação aos algoritmos de Machine learning, assinale a alternativa


CORRETA que contenha os paradigmas de aprendizado:

a) ( ) Simbólico, estatístico, conexionista e genético.


b) ( ) Supervisionado, estatístico, conexionista e genético.
c) ( ) Simbólico, estático, conexionista e genético.
d) ( ) Simbólico, estatístico, colaborador e georreferenciado.

3 A internet soma mais de 2 bilhões de sites publicados, sendo a principal


fonte de informação deste século. No entanto, cada vez mais opções de sites
implicam diversos veículos que não produzem notícias verdadeiras, as
ditas fakes news. O sistema desenvolvido por Monteiro, Nogueira e Moser
(2019) tem como objetivo implementar um algoritmo de Machine Leaning
para classificar noícias em reais e fake news.

15
FONTE: MONTEIRO, R.; NOGUEIRA, R.; MOSER, G. Desenvolvimento de um sistema para a
classificação de Fakenews acoplado à etapa de ETL de um Data Warehouse de Textos de No-
tícias em língua Portuguesa. In: Anais da XV Escola Regional de Banco de Dados. SBC, 2019.
p. 131-140. Disponível em: [Link]
Acesso em: 2 out. 2020.

Sobre o problema de Machine learning apresentado no enunciado, indique a


experiência, a tarefa e a medida de desempenho.

E:__________________________________________________________________
____________________________________________________________________
T:__________________________________________________________________
____________________________________________________________________
P:__________________________________________________________________
____________________________________________________________________

4 Leia o texto a seguir:

A lucratividade promovida pelo Google em sua nova plataforma de


distribuição de vídeos do YouTube atraiu um número crescente de usuários.
No enano, esse sucesso ambém araiu usuários mal-inencionados, que êm
como objetivo autopromover seus vídeos ou disseminar vírus e malwares. Como
o YouTube oferece ferramentas limitadas para moderação de comentários, o
volume de spam aumenta surpreendentemente, o que leva os proprietários
de canais famosos a desativar a seção de comentários em seus vídeos.

FONTE: ALBERTO, T. C.; LOCHTER, J. V.; ALMEIDA, T. A. TubeSpam: Comment spam filtering
on YouTube. In: 2015 IEEE 14th International Conference on Machine learning and Applica-
tions (ICMLA). IEEE, 2015. p. 138-143. Disponível em: [Link]
papers/TCA_ICMLA15.pdf. Acesso em: 2 out. 2020.

No trabalho descrito pelo texto, foram implementados algoritmos de Machine


learning para a detecção de comentários de publicidade (spam) em vídeos
da internet. Sobre o problema de Machine learning apresentado, indique a
experiência, a tarefa e a medida de desempenho.

16
E:__________________________________________________________________
____________________________________________________________________
T:__________________________________________________________________
____________________________________________________________________
P:__________________________________________________________________
____________________________________________________________________

5 Os algoritmos de Machine learning têm seu aprendizado baseado em dados


históricos e diversas aplicações: agricultura de precisão, reconhecimento
de imagem, classificação de exos, desenvolvimeno de chabos. Torna-se
difícil um setor do novo modelo tecnológico que não utilize suas técnicas.
Sobre Machine learning, assinale a alternativa CORRETA que contenha as
tarefas de aprendizado:

a) ( ) Classificação, revolução, agrupameno e associação.


b) ( ) Classificação, regressão, agrupameno e associação.
c) ( ) Categorização, regressão, análise e dissociação.
d) ( ) Classificação, regressão, agrupameno e dissociação.

17
18
TÓPICO 2 —
UNIDADE 1

PREPARANDO O AMBIENTE PARA TRABALHAR


COM MACHINE LEARNING

1 INTRODUÇÃO
Ao desenvolver sistemas que utilizam Machine learning são diversos os
itens a serem considerados, desde a compreensão do conceito, as características
dos métodos, os tipos de métodos, as tarefas que podem ser realizadas, e as
estratégias para otimizar e avaliar o funcionamento.

Este livro didático tem uma abordagem prática sobre Machine learning e,
para facilitar a compreensão de cada um desses conceitos, primeiramente, vamos
preparar o nosso ambiente, conhecendo e instalando as principais ferramentas.

NOTA

No decorrer dos estudos e da prática sobre programação, a programação


vetorial (ou programação matricial) será muito utilizada. Para isso, recomendamos a
seguinte leitura: GOLUB, G. H.; VAN LOAN, C. F. Matrix Computations. 4. ed. Baltimore: The
Johns Hopkins University Press, 2013.

2 LINGUAGEM DE PROGRAMAÇÃO
O desenvolvimento de sistemas inteligentes, por meio de algoritmos de
Machine learning, pode ser feito pelas diversas linguagens de programação. Entre
elas, podemos destacar as ferramentas MatLab, R, Scala e Python.

Um ponto importante é que praticamente todas as linguagens de


programação da atualidade têm a capacidade de implementar algoritmos
de Machine learning, bem como bibliotecas que já contêm esses algoritmos
implementados.

Um exemplo é a linguagem Java, que teve um papel importante na


implementação do framework de Big Data Apache Hadoop, além de sua
aplicabilidade em sisemas disribuídos. A linguagem cona com o JAVA-ML,
uma biblioteca que apresenta os algoritmos de Machine learning implementados.

19
UNIDADE 1 — MACHINE LEARNING

A Microsoft, por sua vez, tem evoluído muito no mercado de computação em


nuvem, por meio da sua plataforma Microsoft Azure. A linguagem C# e a plataforma
.NET têm recursos de integração com as ferramentas de Machine learning, bem como
sua própria biblioteca dessa tecnologia, denominada de [Link].

Diante de um cenário no qual há diversas linguagens com suas respectivas


características, daremos continuidade ao estudo de Machine learning com a
linguagem Python. O Python é uma linguagem de código aberto, com diversas
bibliotecas para auxiliar na preparação de dados e no desenvolvimento de
algoritmos de Machine learning.

TE
INTERESSAN

Existem diversas características que fazem do Python uma poderosa


linguagem de programação. Confira algumas listadas pela ComputerWorld (2019):

1. Python é linguagem de programação popular na ciência e nas empresas.


2. Conhecimentos em Python são exigidos em muitas vagas.
3. Python tem muitas bibliotecas e estruturas.
4. Python tem bibliotecas poderosas para a ciência de dados.
5. Python é muito utilizado em inteligência artificial e Machine learning.
Além de muito usada na ciência de dados, há também muitas bibliotecas eficientes na
programação de inteligência artificial e Machine learning. Theano, Scikit-learn, Tensorflow
estão entre os módulos mais usados para algoritmos de machine learning. Já o Keras é uma
biblioteca de rede neural open source, dedicada para aplicações de inteligência artificial.
6. Python é utilizado no desenvolvimento de aplicações web.
7. Python é funcional em diversos sistemas operacionais.
8. Tem uma comunidade grande de desenvolvedores contribuindo com sua evolução.
9. Python é usado para criar interfaces gráficas de usuário (GUI).
10. Python é usado para automação de diversas tarefas.

Entre suas principais características, o Python pode ser executado na


maioria dos sistemas operacionais, desde os tradicionais, como Windows,
MacOs e Linux, aé sisemas operacionais diversos como FreeBSD, uilizado em
servidores, e OpenELEC, uma versão do Linux com poucos recursos utilizada em
dispositivos de IoT (Internet of Things).

Para realizar a instalação do Linux, você pode acessar direto a página de


downloads da plaaforma: htps://[Link][Link]/downloads/. No decorrer do
desenvolvimento deste livro didático, foi utilizada a versão 3.8 do Python, porém os
códigos desenvolvidos podem ser executados em qualquer instalação da versão 3.X.

No decorrer desta unidade, você irá utilizar algumas das principais


bibliotecas do Python para realização de tarefas correlatas aos processos Machine
learning, desde colea de dados, pré-processameno aé implemenação dos
algoritmos. Para instalar bibliotecas, o Python utiliza o gerenciador de pacotes PIP.
20
TÓPICO 2 — PREPARANDO O AMBIENTE PARA TRABALHAR COM MACHINE LEARNING

DICAS

Para realizar a instalação do PIP nos principais sistemas operacionais, confira


alguns links para o auxiliar:
• Windows: [Link]
comando-interno/
• Linux: [Link]
• MacOS: [Link]

3 JUPYTER NOTEBOOK E GOOGLE COLAB RESEARCH


O noebook Jupyer é uma inerface gráfica que uiliza os navegadores
de internet para executar códigos Python e cria, nele, um rico conjunto de
recursos de exibição dinâmica. Além de executar instruções Python, o Jupyter
Notebook permite que o usuário inclua texto formatado, visualizações estáticas
e dinâmicas, equações matemáticas, widgets JavaScript e muito mais. Ademais,
esses documentos podem ser salvos de maneira a permitir que outras pessoas os
abram e executem o código em seus próprios sistemas (VANDERPLAS, 2016).

Se você seguiu os passos indicados na seção anterior e realizou a instalação


do Python e o gerenciador de pacotes PIP na sua máquina, basta executar o
seguinte comando:

Na sequência, para executar o Jupyter Notebook e receber o link para que


seja aberto, deve ser executado:

A partir de agora, você já terá o Jupyter instalado em seu computador e


esará apo a execuar códigos dinâmicos com IPyhon. A Figura 11 mosra a ela
do Jupyter após a instalação – ao clicar em New Python 3, será inicializada
uma tela em branco, chamada de Notebook.

21
UNIDADE 1 — MACHINE LEARNING

FIGURA 11 – TELA INICIAL DO JUPYTER NOTEBOOK

FONTE: O autor

Atualmente, nosso mundo é dinâmico no que se refere às equipes de


desenvolvimento de sistemas e multidisciplinares. Nesse cenário, pesquisadores
e desenvolvedores atuam em projetos de maneira remota, acessando o mesmo
código e compartilhando soluções.

Com relação à utilização do Notebook e ao compartilhamento de código,


uma solução interessante é o Google Colaboratory, também chamado de Google
Colab. Segundo Rosa (2019), raa-se de um serviço na nuvem grauio, que
oferece supore de processameno (nesse caso, uma GPU Tesla K80) e ambém
pode contar com 12 GB de memória RAM. Por isso, é uma ótima ferramenta para
o treinamento de algoritmos de aprendizado de máquina.

NOTA

O termo GPU (Graphics Processing Unit, em português “Unidade de


Processamento Gráfico”) é a responsável por dar vida aos jogos eletrônicos. De modo
geral, pode-se compreendê-la como as placas de vídeo de aceleração.
O motivo de uma placa de vídeo ter destaque em um tema como o nosso é que, com GPU,
é possível a execução dos algoritmos utilizando CUDA e OpenCL. Em geral, essas duas
tecnologias permitem que os algoritmos sejam executados utilizando a placa de vídeo.

Tendo como objetivo aproximar o aluno do conteúdo prático apresentado


ao longo deste livro didático, iremos utilizar diversos exemplos desenvolvidos na
plaaforma Google Colab. Com a uilização dessa ferramena, os processos de ensino-
aprendizagem podem se beneficiar do uso de recursos on-line, permiindo a melhoria
da produividade para alunos e professores, por meio da flexibilidade e do rabalho
colaborativo. Particularmente, nos cursos de computação, as ferramentas de código
aberto, como o Jupyter Notebook, fornecem um ambiente de programação para o
desenvolvimento e o compartilhamento de materiais educacionais, combinando
22
TÓPICO 2 — PREPARANDO O AMBIENTE PARA TRABALHAR COM MACHINE LEARNING

diferentes tipos de recursos, como texto, imagens e código, em várias linguagens


de programação em um único documento, acessível pela web do navegador. Esse
ambiene ambém é adequado para fornecer acesso a experimenos on-line e explicar
como usá-los (CARDOSO; LEITÃO; TEIXEIRA, 2018).

No decorrer de nossa disciplina, utilizaremos o Google Colab para que


você tenha acesso aos exemplos completos desenvolvidos no curso. Caso ainda
não enha experiência com o Google Colab, convido-o a acessar o link do Noebook
e dar início ao uso dessa ferramenta, que será importante para o desenvolvimento
da disciplina.

ATENCAO

O Notebook com o conteúdo deste tópico está disponível no link: [Link]


[Link]/drive/1SD5qmxVjTtOpbfcSXN1G9WTqsr06ci0w.

A Figura 12 mosra um exemplo da ela de cabeçalho de um documeno


Colab Notebook. Para ter um melhor aproveitamento desse conteúdo, é necessário
conecar-se à plaaforma uilizando uma cona Google. Ao abrir o programa, você
perceberá que poderá apenas visualizar os códigos disponibilizados, sem poder
execuá-los – clique em Open in playground para poder habilitar essa função e,
a partir desse momento, você irá executar os códigos em seu próprio ambiente,
utilizando os recursos de hardware anteriormente mencionados.

FIGURA 12 – TELA INICIAL DO GOOGLE COLAB NOTEBOOK

FONTE: O Autor

DICAS

Caso esteja curioso sobre o funcionamento do Google Colab, e para conhecer


mais sobre a execução de código utilizando GPU, leia o artigo Google Colab – Guia do Iniciante:
[Link]

23
UNIDADE 1 — MACHINE LEARNING

4 GITHUB
No processo de desenvolvimento de software, seja de cunho comercial
ou desenvolvimento de sistemas inteligentes utilizando algoritmos de Machine
learning, o código passa por diversas alterações conforme o projeto evolui. Nesse
contexto, o versionamento de código permite que sejam geradas diversas versões
do código-fone desenvolvido.

Um sistema de versionamento de código é uma aplicação capaz de


gravar as mudanças em um ou mais arquivos durante determinado período. A
uilização desse ipo de aplicação orna possível reornar a uma versão específica
daquele arquivo em qualquer momento. A principal vantagem do uso desse tipo
de sistema é a organização do projeto, visto que se pode manter um histórico
do desenvolvimento, possibilitando desenvolver funcionalidades paralelamente
a partir do mesmo código. Além disso, viabiliza a criação de uma nova versão do
projeto sem alterar a versão principal (GIORDANI, 2019).

Nos mais diversos tipos de projetos de software são utilizadas estratégias


de versionamento, cada qual abordada de maneira distinta. Existem diversos
sofwares de gerenciameno de versões disponíveis no mercado, podendo-se ciar
CVS, Subversion, TFS e o Gi – o qual iremos conhecer mais a fundo.

O Git é um sistema de controle de versão distribuído, utilizado para


registrar o histórico de alterações em arquivos e comum em equipes de
desenvolvimento de software. Com o uso do Git, é possível reverter um software
para versões anteriores de forma rápida e fácil (SILVERMAN, 2013).

O Gi uiliza reposiórios que armazenam as versões do código-fone


e, embora os repositórios possam ser feitos em servidores das empresas,
radicionalmene, são feios on-line em serviços próprios, como o GiHub.

O GitHub é um repositório de hospedagem de serviços Git – entre


outras tantas características próprias. As interações entre seus usuários são de
natureza complexa e ocorrem de diferentes formas, principalmente porque
pode ser considerado uma rede social, além de uma plataforma colaborativa.
Usando o GitHub, os programadores podem interagir e colaborar em torno de
repositórios de código aberto, o que permite que eles façam download, cooperem,
compartilhem, entre outras funcionalidades (WEITZEL; SPIES; SANTOS, 2017).

24
TÓPICO 2 — PREPARANDO O AMBIENTE PARA TRABALHAR COM MACHINE LEARNING

E
IMPORTANT

Cada sistema operacional tem sua particularidade durante a instalação do Git;


por isso, separamos alguns artigos para auxiliar na instalação de acordo com o seu sistema
operacional:
• Instalação em Windows: [Link]
• Instalação no Linux: [Link]
instalar-o-git-no-ubuntu-18-04-pt.
• Instalação no MacOS: [Link]
Instalando-o-Git.

Para compreender melhor o funcionamento do Git, o ideal é criar um


repositório. Para isso, utilizaremos o GitHub ([Link]) – entretanto,
você pode optar por uma alternativa de repositório.

DICAS

Mesmo o GitHub tendo destaque no mercado há muito tempo são diversas


alternativas para criar seu repositório de arquivos versionados na nuvem. Veja, a seguir, a
lista criada pelo Imaster (2018) com cinco das principais alternativas:

• GitLab (BSD): certamente, a alternativa mais conhecida. Escrito em Ruby on Rail, é de


longe o mais completo (e complexo) de todos, abrangendo outras funcionalidades que
não estão presentes, por padrão, no Github (por exemplo, Continous Integration). Pode
ser acessado em: [Link]
• Gogs (MIT): mais simples que o GitLab, mesmo assim consegue oferecer uma boa
gama de recursos, aproximando-se bastante das funções mais importantes do GitHub,
inclusive na interface de usuário web. Pode ser acessado em: [Link]
• Phabricator: a opção que tenta se afastar mais do GitHub, na tentativa de criar algo
melhor e mais completo, que supra a maior parte das necessidades de um projeto de
desenvolvimento de software. Pode ser acessado em: [Link]
• GitBucket: é uma plataforma web escrita em Scala, que conta com a instalação
simplificada de um arquivo .war em sistemas que podem rodar Java 8. Pode ser
acessada em: [Link]
• Kallithea (GPL3): o projeto é membro da Software Freedom Conservancy e suporta
Mercurial, além de Git. Escrito em Python, traz alguns outros recursos interessantes.
Pode ser acessado em: [Link]
• GitPrep (GPL): um recurso mais simples, mas que tem uma interface semelhante à do
GitHub, precisa apenas de Perl 5.10.1+ para rodar e já traz um servidor web integrado.
Além disso, possui issue tracker e suporte a CGI, SSL e autenticação por chave pública.
Pode ser obtido em: [Link]

25
UNIDADE 1 — MACHINE LEARNING

5 DATASETS
O termo Dataset vem do idioma inglês e em como significado “conjuno
de dados”. Em disciplinas relacionadas a bancos de dados (Relacionais, NoSQL,
entre outras), o tema pode ser discutido mais a fundo – com conceito de dados,
informação e conhecimeno (Figura 13).

FIGURA 13 – DADOS, INFORMAÇÃO E CONHECIMENTO

FONTE: <[Link]
to-a-movement/>. Acesso em: 20 maio 2020.

TE
INTERESSAN

Vamos relembrar os conceitos de dados, informação e conhecimento, uma


vez que, no decorrer desta disciplina, nosso objetivo é extrair conhecimento. Na definição
de Nogueira (2020):

• Dados: são fatos de um mundo real, que estão armazenados em algum lugar, mas não
contêm sentido; pode-se dizer que o dado é a informação em sua forma bruta, ou seja,
ainda não lapidada.
• Informação: é quando o dado tem algum tipo de organização, de tal modo que passa a
ter algum sentido. Pode-se dizer que a informação é composta por dados organizados,
mas de maneira compreensível.
• Conhecimento: vem de discernimento, prática e experiência de vida. O conhecimento
é extraído a partir dos dados e das informações armazenadas, sendo aquilo que não
pode ser visto por uma perspectiva humana, mas, sim, extraído.

Em nosso estudo sobre Machine learning, consideraremos que um Dataset


é literalmente um conjunto de dados, que, quando utilizado, será extraído
conhecimento, ou seja, é um conjunto de dados sob qual será aplicado o algoritmo de
Machine learning.

26
TÓPICO 2 — PREPARANDO O AMBIENTE PARA TRABALHAR COM MACHINE LEARNING

Nesse sentido, para essa aplicação, um conjunto de dados pode ter diversas
formas. Na sequência, veremos alguns exemplos de tipos de fontes de dados (datasets)
para algoritmos de Machine learning, bem como exemplos de suas aplicações.

5.1 BANCOS DE DADOS E DATA WAREHOUSING


No ambiente empresarial, os dados são armazenados prioritariamente em
sistemas gerenciadores de bancos de dados (relacionais ou NoSQL). Os dados
organizacionais também podem ser depositados em um ambiente de Business
Intelligence, integrados por intermédio de um Data Warehouse.

FIGURA 14 – MACHINE LEARNING EM AMBIENTES ORGANIZACIONAIS

FONTE: <[Link]
Acesso em: 2 out. 2020.

Do ponto de vista dos ambientes organizacionais, são diversas as


aplicações de algoritmos de Machine learning e elas podem variar conforme o
segmento de atuação da empresa:
• Deecção de perfil de clienes.
• Previsão de falhas na linha de produção.
• Predição de lucros e dividendos.
• Sugesão de produos em loja on-line.
• Previsão de falhas em equipamentos.
• Obtenção de valores que impactam na compra/venda de ações.
• Análise auomáica de mercado financeiro.

5.2 ÁUDIO, IMAGEM E VÍDEO


Os dados não estruturados apresentam diversos formatos, como imagens,
áudios e vídeos – esses três tipos, em especial, têm como característica comum
a demanda por processamento para que os algoritmos sejam executados.
Uma sequência de passos tem que ser executada para que os dados se tornem
compreensíveis para os algoritmos de Machine learning.
27
UNIDADE 1 — MACHINE LEARNING

FIGURA 15 – RECONHECIMENTO DE FACES COM MACHINE LEARNING

FONTE: <[Link]
-and-deep-learning/>. Acesso em: 2 out. 2020.

Apesar da demanda por processamento ser alta, as aplicações com esses


ipos de dados esão enre as mais ineressanes, podendo-se ciar como exemplos:

• Reconhecimento facial.
• Detecção de objetos em vídeos.
• Reconhecimento por voz.
• Classificação de imagens.
• Idenificação de objeos.

5.3 ARQUIVOS DE TEXTOS


Os textos podem ser coletados de sites de notícias, redes sociais, mensagens
SMS, e-mails, além de poderem ser uilizados documenos na forma de exo
(PDF, por exemplo). Os documenos de exo ambém são do ipo não esruurado
e demandam preprocessamento para que sejam compreendidos pelos algoritmos
de Machine learning.

FIGURA 16 – EXEMPLO DE APLICAÇÃO DE DATASETS DE TEXTO

FONTE: <[Link] Acesso em: 2 out. 2020.

28
TÓPICO 2 — PREPARANDO O AMBIENTE PARA TRABALHAR COM MACHINE LEARNING

A área que utiliza textos com algoritmos de Machine learning faz parte do
NLP (Natural Language Processing, que significa “Linguagem de Processameno
Natural”). As tarefas de Machine learning são utilizadas na automatização de
diversos tipos de cenários com textos, por exemplo:

• Detecção automática de spams (Ham ou Spam).


• Classificação de noícias (espore, políica, economia ec.).
• Análise de sentimento (positivo, negativo, neutro).
• Agrupamento de textos (juntar textos de acordo com as palavras).
• Sumarização de textos (resumo de textos).
• Detecção automática de notícias falsas (real ou fake news).
• Desenvolvimento de chatbots.

5.4 DOCUMENTOS SEMIESTRUTURADOS


Os documentos semiestruturados são aqueles cuja estrutura pode ser
alterada durante a execução de programas. No caso de algoritmos de Machine
learning, estes recebem tais documentos para análise. São exemplos de documentos
planilhas de Excel, documentos JSON, documentos CSV e arquivos XML.

FIGURA 17 – EXEMPLO DE DOCUMENTO SEMIESTRUTURADO

FONTE: O autor

Os documentos semiestruturados permitem armazenar os mais diversos


tipos de dados, mas, principalmente, valores numéricos e discretos. Com isso,
existem as mais diversas aplicações, bem como inúmeros conjuntos desses dados.
Como são tantas as aplicações que utilizam os dados semiestruturados, desde
análises simples, como ipos de folhas de flores, aé datasets mais complexos, com
dados de células que objeivam a classificação em cancerígena ou não.

Para compreender melhor os muitos exemplos que utilizam dados nos


formatos mencionados, vamos estudar, a seguir, alguns sites que disponibilizam
datasets gratuitos.

29
UNIDADE 1 — MACHINE LEARNING

5.5 KAGGLE
Uma das fontes de conjuntos de dados que utilizaremos, no decorrer do
nosso estudo, é o Kaggle. Considerado um dos maiores repositórios de dados para
aplicações de Machine learning, também é uma rede social para cientistas de dados.
O Kaggle é uma plataforma feita para a comunidade de Data Science e Machine
learning, cujos propósitos são compartilhar conjuntos de dados, fomentar a
formação de novos Daa-Scieniss e engenheiros de Machine learning, e promover
compeições enre profissionais da área (JORDÃO, 2018).

FIGURA 18 – EXEMPLO DE UTILIZAÇÃO DO KAGGLE

FONTE: O autor

Em seu ambiente, o Kaggle disponibiliza diversos recursos além dos


conjunos de dados. Você poderá codificar on-line, uilizar Jupyters e participar
de desafios uilizando os datasets da plataforma.

DICAS

Acesse o Kaggle, crie sua conta e explore os mais diversos datasets que a
plataforma disponibiliza: [Link]

5.6 UCI MACHINE LEARNING REPOSITORY


Em ambienes de pesquisa cienífica, o UCI Machine learning Repository
está entre os sites mais utilizados para obter datasets para realização de pesquisas,
bem como para benchmark para novas bases criadas (MENEZES, 2016).
30
TÓPICO 2 — PREPARANDO O AMBIENTE PARA TRABALHAR COM MACHINE LEARNING

O UCI Machine learning Repository é um site que provê diversos datasets


gerados e utilizados pela comunidade para aplicação de algoritmos de Machine
learning. Foi criado, inicialmene, em 1987, por David Aha e ouros alunos da
Universidade da Califórnia.

Esse site tem sido muito utilizado por pesquisadores em todo mundo como
um centralizador com diversos conjuntos de dados. Essa centralização permite
que possam ser comparados diferentes resultados, metodologias e abordagens
que utilizam o mesmo conjunto de dados.

A Figura 19 mosra um recho do acesso a um Dataset (no caso, Iris Dataset),


na qual: Data Set Information traz um texto descrevendo, de maneira geral, do que
se trata o conjunto de dados; Atribue Informaion descreve cada campo e seu
respectivo tipo de dados; e Relevant Papers traz a lista de artigos que utilizaram o
Dataset para o seu desenvolvimento.

FIGURA 19 – EXEMPLO DA UTILIZAÇÃO DO UCI MACHINE LEARNING REPOSITORY

FONTE: O autor

DICAS

Link para acesso ao UCI Machine learning Repository: [Link]


edu/ml/[Link].

31
UNIDADE 1 — MACHINE LEARNING

TUROS
ESTUDOS FU

Existem diversos outros sites que disponibilizam bases de dados, com duas
opções interessantes com dados brasileiros:

• Portal Brasileiro de Dados Abertos: concentra dados do governo brasileiro, distribuindo


dados e informações públicas sobre os mais diversos setores do governo. Disponível
em: [Link]
• O Brasil em Dados Libertos: é um site mantido pela comunidade de desenvolvedores e
cientistas de dados brasileiros, que tem como objetivo aumentar a qualidade dos dados
disponibilizados pelo governo, bem como complementá-lo por meio de outras fontes.
Disponível em: [Link]

32
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu que:

• Existem diversas linguagens de programação e bibliotecas para desenvolver


algoritmos de Machine learning.

• Por diversas características positivas, o Python é uma das linguagens mais


utilizadas para a aplicação de Machine learning.

• O Python pode ser instalado nos principais sistemas operacionais do mercado.

• É possível codificar algorimos de Machine learning on-line pelo Google Colab


Research.

• É possível executar algoritmos de Machine learning utilizando GPU.

• Os versionadores de código permitem uma melhor gestão dos algoritmos


desenvolvidos.

• Algoritmos de Machine learning podem consumir dados de diversos tipos de


fontes de dados, bem como serem aplicados em vários cenários.

• Existem diversos conjuntos de dados sob os quais podem ser realizados


experimentos e desenvolvidas aplicações de Machine learning.

33
AUTOATIVIDADE

1 Leia o texto a seguir:

Machine learning pode ser utilizado para vários objetivos, para ofertar
programação de acordo com sua uilização na Neflix, saber o que esão
falando sobre sua marca no Twiter e deecção de fraudes em compras com
cartão de crédito, por exemplo.

FONTE: STAUDT, J. M. Machine learning para análise do desgaste da força de trabalho. Mo-
nografia (Sistemas de Informação). Novo Hamburgo: Universidade Feevale, 2017. Disponível
em: [Link] Acesso em: 2 out. 2020

Assinale a alternativa CORRETA que contenha uma linguagem de


programação que pode ser utilizada para desenvolvimento de algoritmos de
Machine learning:

a) ( ) Matlab.
b) ( ) Python.
c) ( ) Java.
d) ( ) Todas as alternativas.

2 No desenvolvimento de programas que aplicam algoritmos de Machine


learning, a linguagem Python tem sido muito utilizada, principalmente pelo
seu grande número de bibliotecas e pela participação da comunidade em
sua evolução. Dentro do Python, o PIP tem uma importante contribuição.
Assinale a alternativa CORRETA sobre o PIP:

a) ( ) O PIP é o gerenciador de pacotes do Python.


b) ( ) O PIP é o gerenciador de arquivos do Python.
c) ( ) O PIP é a linguagem de programação do Python.
d) ( ) O PIP é o sistema operacional do Python.

3 O Jupyter Notebook permite a execução de códigos Python no navegador,


fazendo com que os usuários incluam texto formatado, visualizações
estáticas e dinâmicas, equações matemáticas, entre outros recursos. Assinale
a alternativa CORRETA com o comando para inicializar o Jupyter Notebook:

a) ( ) pip install jupyter.


b) ( ) sudo apt-get jupyter.
c) ( ) jupyter notebook.
d) ( ) notebook jupyter.

34
4 Leia o texto a seguir:

Machine learning é uma técnica utilizada para auxiliar os programas a


aprenderem a partir de informações existentes em bases de dados, cujo
principal objetivo é a previsão de resultados futuros, por exemplo, indicando
um produto do agrado de um consumidor de acordo com o comportamento
de compras dele.

FONTE: STAUDT, J. M. Machine learning para análise do desgaste da força de trabalho. Mo-
nografia (Sistemas de Informação). Novo Hamburgo: Universidade Feevale, 2017. Disponível
em: [Link] Acesso em: 2 out. 2020.

Sobre o Google Colab Research, assinale a alternativa CORRETA:

a) ( ) É uma linguagem de programação.


b) ( ) É uma plaaforma colaboraiva para codificação.
c) ( ) É um navegador de internet.
d) ( ) É um pora-documenos na nuvem.

5 As aplicações de Machine learning estão dominando os mais diversos setores,


mandatoriamente os da tecnologia, mas também envolvendo diversas áreas
multidisciplinares. Com isso, são gerados cada vez mais dados. Vimos alguns
sites de datasets que fornecem dados para pesquisas com Machine learning.
Busque na web e liste ao menos outros cinco sites que forneçam dados.
1. _________________________________________________________________
2. _________________________________________________________________
3. _________________________________________________________________
4. _________________________________________________________________
5. _________________________________________________________________

35
36
TÓPICO 3 —
UNIDADE 1

ARQUITETURA DE UM PROJETO DE MACHINE LEARNING

1 INTRODUÇÃO
Ao atuar no desenvolvimento de software, existe um conjunto de
ferramentas que auxilia a garantir a qualidade do software que chegará ao usuário
final. Há odo o arcabouço fornecido pela engenharia de sofware, levanameno
de requisitos, diagramas UML (Unified Modeling Language) e também técnicas de
teste de software – tudo para garantir que o software desenvolvido atenderá a
necessidade de um cliene, o usuário final.

No entanto, neste livro didático não tratamos do simples processo de


software que atenderá à necessidade de um usuário. Um algoritmo de Machine
learning automatizará importantes processos nas organizações e, muitas vezes,
até pode substituir o agente humano em tais operações.

FIGURA 20 – ROBÔS QUE UTILIZAM MACHINE LEARNING

FONTE: <[Link] Acesso em: 2 out. 2020.

Quando falamos que um algoritmo de Machine learning pode substituir


um ser humano, por exemplo, na forma de chatbot, temos que considerar que, se
ele falhar, poderá apresentar erros como saudar um cliente com bom dia em vez
de boa noite ou, até mesmo, responder a alguma informação de maneira errônea
em um FAQ da empresa. E se for um algorimo que realiza análise e predição de
células cancerígenas? Com certeza, ele terá uma responsabilidade maior, trazendo
preocupação com quem o desenvolveu e para seus usuários.

Para ambos os exemplos ciados, exise um fluxo de implemenação


(Figura 21) para algorimos de Machine learning. Traa-se de uma sequência de
passos que objetivam ensinar o algoritmo, a partir de um conjunto de dados, a
realizar a ação, mas, principalmente, garantir que o algoritmo aprendeu.
37
UNIDADE 1 — MACHINE LEARNING

FIGURA 21 – FLUXO DE UM ALGORITMO DE MACHINE LEARNING

FONTE: Adaptado de <[Link] Acesso em: 2 out. 2020.

2 COLETA DE DADOS
A etapa de coleta de dados é a primeira do processo de Machine learning e
pode ser simples, do ponto de vista de se conectar a um Dataset CSV ou a um banco
de dados relacional. No entanto, quando se trabalha com outros tipos de dados,
orna-se necessário criar scrips específicos para colear dados desses cenários.

E
IMPORTANT

Ao longo dos próximos conteúdos, desenvolveremos exemplos práticos


de todas as etapas do processo de Machine learning. No que se refere à etapa de
coleta de dados, ela é muito similar ao processo de extração de um Data Warehouse,
por isso recomendamos a leitura do livro “Business intelligence na prática: modelagem
multidimensional e data warehouse”, disponível na Biblioteca Virtual da UNIASSELVI:
[Link]

3 PREPARAÇÃO DOS DADOS


Cada base de dados tem uma característica em especial, sejam números,
textos, imagens ou vídeos. Não importa o tipo de dados que exista na fonte na
hora da colea, uma série de procedimenos deve ser realizada, a fim de preparar
os dados para a execução de um algoritmo.

Sabe-se que mais de 80% do empo necessário para realizar qualquer


projeto de Machine learning com dados reais, geralmente, é gasto na etapa de
preparação dos dados (LOSARWAR; JOSHI, 2012). Essa etapa é responsável por
preparar os dados, ornando-os mais limpos e consisenes para a execução de
um algoritmo de Machine learning.

A preparação de dados é a eapa em que se deve raá-los, de forma


correta, antes de seu uso ou armazenamento. Pode ser utilizada em conjunto com
a análise exploratória de dados, quando se realiza um estudo das características
dos dados, geralmene por meio de gráficos (ERBS, 2020, p. 13).
38
TÓPICO 3 — ARQUITETURA DE UM PROJETO DE MACHINE LEARNING

DICAS

Nos exemplos práticos, aplicaremos alguns dos principais métodos de


preparação dos dados, conforme é possível observar no livro Business intelligence na
prática: modelagem multidimensional e data warehouse, disponível na sua Biblioteca
Virtual: [Link]

Com relação ao processo de preparação de dados e análise exploratória, recomendamos


a leitura do livro Preparação e Análise Exploratória de Dados, disponível em: https://
[Link]/livros/livro/249088.

4 ESCOLHA DO MODELO
O processo de desenvolvimento com Machine learning pode envolver um
ou vários algoritmos para sua implementação. Esse é o momento de selecionar
os algoritmos que serão avaliados e futuramente aplicados em sua aplicação de
Machine learning.

No decorrer dos nossos estudos, você aprenderá alguns dos principais


algoritmos utilizados em Machine learning. Segundo Mall et al. (2014), existem
diversos métodos de Machine learning no mundo, para as mais diversas aplicações.

Então, como escolher o melhor algoritmo para resolver o seu problema? O


primeiro passo é seguir os estudos deste livro didático – note que você já conhece
os principais tipos de dados e as principais tarefas para os respectivos datasets.
No decorrer dos seus estudos, seu conhecimento sobre tarefa de aprendizado de
máquina, bem como os principais métodos, será aprofundado – e isso servirá de
fundamento para a escolha de um método de Machine learning.

Complemenarmene, lembre-se de que você esá se ornando um cienisa


de dados e esse é o momeno de recorrer ao méodo cienífico. Especificamene,
para obter os principais métodos, será necessário realizar uma pesquisa
exploratória nas principais bases de dados, tendo como objetivo encontrar artigos
cieníficos relacionados ao problema que deseja resolver.

NOTA

Pesquisa exploratória: é usada em casos nos quais é necessário definir


o problema com maior precisão e identificar cursos relevantes de ação ou obter dados
adicionais antes que se possa desenvolver uma abordagem. Como o nome sugere, a
pesquisa exploratória procura explorar um problema ou uma situação para prover critérios e
compreensão (VIEIRA, 2002).

39
UNIDADE 1 — MACHINE LEARNING

DICAS

Confira a lista com algumas das principais bases de dados acadêmicos que
podem ajudá-lo a encontrar artigos científicos: [Link]
cientificos/.

Aniceto (2016) é um exemplo de pesquisa exploratória com revisão da


literatura para suporte na escolha de um método de Machine learning. Esse estudo
visa a idenificar écnicas de Machine learning para estimação de risco de crédito.

No trabalho de Aniceto (2016), foi possível listar mais de 50 algoritmos


diferentes para resolução do problema, os quais foram obtidos na leitura de 80
arigos disribuídos em dez revisas cieníficas. A Figura 22 mosra um gráfico de
radar que sumariza os principais métodos obtidos e permitiu a continuidade das
etapas do processo de Machine learning.

FIGURA 22 – TÉCNICAS DE APRENDIZADO DE MÁQUINA MAIS UTILIZADAS NA ESTIMAÇÃO DE


RISCO DE CRÉDITO

FONTE: Aniceto (2016, p. 31)

DICAS

Para realizar um estudo mais aprofundado, você pode fazer a leitura do trabalho
de Aniceto (2016), disponível em: [Link]
Ma%c3%[Link].

40
TÓPICO 3 — ARQUITETURA DE UM PROJETO DE MACHINE LEARNING

5 TREINO E TESTE
Você já sabe que os algoritmos de Machine learning aprendem com
determinado conjunto de dados. O objetivo desses algoritmos é realizar a predição
de um campo (chamado de output) com base em um conjunto de características
(input).

Se o algoritmo utilizar todo o conjunto de dados para aprender, a única


maneira de saber aé que pono um modelo esá funcionando correamene é esá-
lo em novos casos. Uma maneira de fazer isso é colocar seu modelo em produção e
monitorar o seu desempenho, o que, em teoria, não parece ser uma má ideia, mas,
se o modelo for horrivelmente ruim, você pode ter sérios problemas (GÉRON, 2019).

Para compreender melhor, imagine que você esteja desenvolvendo um


algoritmo para a detecção de células cancerígenas (malignas ou benignas). Para
isso, pode considerar o dataset Breast Cancer Wisconsin, que exibe dados extraídos,
a partir de uma imagem digitalizada de massa mamária, e cada atributo descreve
caracerísicas dos núcleos celulares presenes na imagem (Figura 23).

FIGURA 23 – EXEMPLO DO DATASET BREAST CANCER WISCONSIN

FONTE: <[Link]
Acesso em: 2 out. 2020.

DICAS

O dataset Breast Cancer Wisconsin pode ser acessado pelo link: [Link]
[Link]/ml/datasets/Breast+Cancer+Wisconsin+(Diagnostic).

41
UNIDADE 1 — MACHINE LEARNING

Se você utilizar todo o conjunto de dados históricos para ensinar seu


algoritmo de Machine learning, só haverá uma maneira de verificar se ele aprendeu
corretamente: testar se o algoritmo está predizendo corretamente com dados reais
dos usuários que venham a utilizar esse sistema. Dada a complexidade desse
cenário, é possível imaginar a quantidade de problemas que isso pode ocasionar.

Diante disso, a melhor opção é dividir os dados do dataset em dois


conjuntos: o conjunto de treinamento (treino) e o conjunto de teste. Como esses
nomes sugerem, você treina seu modelo usando o conjunto de treinamento
(momento em que o algoritmo estará aprendendo) e o testa utilizando o conjunto
de ese (momeno em que se verifica se o algorimo aprendeu com os dados;
GÉRON, 2019).

Para compreender melhor como que funciona essa separação no


aprendizado, imagine-se ensinando deerminado caminho a uma criança.
Esse caminho segue um padrão e você guiará a criança até determinado ponto
(cerca de 75% do caminho), no qual ela visualizará odas as curvas e obsáculos,
aprendendo sobre os padrões.

FIGURA 24 – PROCESSO DE TREINAMENTO NO COTIDIANO

FONTE: <[Link] Acesso em: 2 out. 2020.

Em um segundo momento será a hora de avaliar se a criança aprendeu


os padrões do caminho. Lembre-se de que ela não conhece 25% do caminho,
os quais serão utilizados para testar se ela aprendeu. A partir da área testada,
você poderá avaliar se ela seguiu corretamente o caminho, podendo atribuir um
percentual de acerto.

42
TÓPICO 3 — ARQUITETURA DE UM PROJETO DE MACHINE LEARNING

FIGURA 25 – TESTE NO COTIDIANO: 25% DO CAMINHO DESCONHECIDO

FONTE: <[Link] Acesso em: 2 out. 2020.

O processo de esconder uma parte dos dados permite garantir a


capacidade de generalização (erro de generalização ou taxa de generalização). A
generalização significa algo genérico, ou seja, a capacidade de o méodo predizer
algo em um cenário desconhecido.

No exemplo do dataset Breast Cancer Wisconsin, o mesmo teste pode ser


realizado, ao faiarmos o conjuno de dados, com 75% dos regisros para realizar
o reino e 25% para realizar os eses. A Figura 26 mosra um exemplo com as
proporções dos dados utilizados – vale ressaltar que, no momento do teste, a
coluna a ser predita.

DICAS

O tamanho da fatia pode variar em diversas abordagens da literatura. Em geral,


as fatias de treino variam entre 70%, 75% e 80% (SU, 2020; AGARAP, 2018; GÉRON, 2016).

43
UNIDADE 1 — MACHINE LEARNING

FIGURA 26 – DIVISÃO DO DATASET EM TREINO/TESTE

FONTE: O autor

TUROS
ESTUDOS FU

Até o momento, dissertamos, de maneira genérica, sobre o processo de


treino e teste, tendo como objetivo fluidez em seus estudos sobre as etapas do processo
de Machine learning. A partir da Unidade 2, retomaremos esse conteúdo com uma visão
prática, aplicada ao desenvolvimento dos métodos de Machine learning.

6 AVALIAÇÃO
Até aqui, aprendemos que é necessário que um conjunto de dados
consistente e limpo seja fatiado em treino e teste, para ser consumido por um
algoritmo de Machine learning.

A avaliação é responsável por uilizar o conjuno de eses e verificar a


capacidade de generalização do algorimo, ou seja, verificar se o algorimo aprendeu
com os dados de treino. No exemplo do Dataset Breast Cancer Wisconsin, uma das
méricas de avaliação, que pode ser uilizada, é a acurácia. Traa-se de uma mérica
simples, que retorna a porcentagem de acerto com base no conjunto de teste.

44
TÓPICO 3 — ARQUITETURA DE UM PROJETO DE MACHINE LEARNING

UNI

Cada tarefa de Machine learning tem métricas específicas. No decorrer dos


estudos sobre os métodos, abordaremos cada métrica especificamente.

7 TUNING DE PARÂMETROS
Ao longo dos seus estudos, você conhecerá diversos métodos de Machine
learning, cada um com caracerísicas específicas. A eapa de Tuning tem como
objetivo obter os melhores parâmetros, para que os algoritmos obtenham o melhor
desempenho possível.

8 PREDIÇÃO
A etapa de predição está relacionada com o funcionamento do Machine
learning em si, sendo feita quando toda a preparação dos dados foi realizada,
bem como o algoritmo foi selecionado e avaliado. Vale ressaltar que, durante
todo o processo, devem ser selecionados o algoritmo e os parâmetros com melhor
desempenho, de acordo com as medidas de avaliação.

FIGURA 27 – ALGORITMO DE MACHINE LEARNING EM FUNCIONAMENTO

FONTE: <[Link] Acesso em: 2 out. 2020.

A etapa da predição em um sistema que utiliza Machine learning é análoga


à etapa de produção de um software de gestão, inclusive podem acontecer em
conjunto. É, nesse momento, que o algoritmo irá para funcionamento. No exemplo
que utilizamos, a predição será o algoritmo que realizará o diagnóstico dos pacientes
com base em imagens.

45
UNIDADE 1 — MACHINE LEARNING

LEITURA COMPLEMENTAR

5 HISTÓRIAS DE SUCESSO DE USO DE MACHINE LEARNING


Clint Boulton

Segundo um levanameno do Garner, 58% das empresas afirmaram que


já implanaram ineligência arificial (IA) em seus negócios e que êm, em média,
quatro projetos de IA/machine learning (ML) em andamento. Os participantes
também revelaram que esperam adicionar mais seis projetos nos próximos 12
meses e outros 15 nos próximos três anos. Até 2022, a expectativa é de que essas
organizações tenham uma média de 35 iniciativas de IA ou ML.

De acordo com Whit Andrews, analista do Gartner, a melhor experiência do


cliente e a automação de tarefas por meio de assistentes virtuais, para atendimento
e tomada de decisão, estão entre os projetos mais populares nas empresas. Apesar
disso, os investimentos, por si só, não contribuem para um trabalho de IA mais
amplo, já que uma pesquisa com 2.473 organizações, realizada pela IDC, descobriu
que apenas 25% desenvolveram esraégias de IA para oda a companhia.

Segundo o relaório da IDC, cerca de 25% dos enrevisados apresenaram


axa de falha de 50% na implanação dos sisemas, por cona da fala de alenos e
expecaivas irrealisas. Conudo, mesmo com as dificuldades, empresas de odo
o mundo parecem estar dispostas a arriscar na tecnologia. Neste artigo, CEOs
que estão experimentando, construindo e implementando IA e ML compartilham
seus casos e dão alguns conselhos práticos.

Conheça JiLL: assistente de IA para escritório


Muitas pessoas não acreditam que uma empresa de imóveis comerciais
utilizaria IA, mas a Jones Lang LaSalle (JLL) se associou ao Google para
desenvolver a JiLL, uma assistente de voz que permite que os funcionários do
escritório façam reuniões, encontrem colegas, consultem horários ou preencham
solicitações de serviço por voz ou texto.

FIGURA 1 – ASSISTENTE DE IA JILL

FONTE: <[Link] Acesso em: 2 out. 2020.

46
TÓPICO 3 — ARQUITETURA DE UM PROJETO DE MACHINE LEARNING

“A JiLL pode lidar com solicitações como ‘Hey, JiLL, marcar uma reunião
semanal com minha equipe’ ou ‘Hey, JiLL, encontrar uma mesa desocupada no
terceiro andar esta tarde’”, explica o diretor de produtos digitais da JLL, Vinay Goel.

Goel diz que JiLL leva em consideração os conjuntos de dados da JLL sobre
edifícios, interações de usuários e transações em espaços físicos, que são processados
denro do GCP, bem como conainers do Kubernees. “Com o empo, esperamos
que a JiLL se torne uma plataforma essencial para centenas de habilidades que
ajudam os funcionários a melhorarem sua produtividade diária”, acrescenta Goel.

Conselho-chave: para as organizações que procuram mudar os serviços,


os assistentes virtuais podem ser um investimento que vale a pena. A JiLL, da JLL,
faz parte de uma estratégia para alavancar a tecnologia, para fornecer serviços
de valor agregado, idealmente para atrair mais clientes. A JLL planeja adicionar
outras habilidades e abrir a plataforma para recursos de terceiros, parte de uma
estratégia de mercado projetada para impulsionar a adoção da tecnologia. De
forma mais ampla, a iniciativa sugere que assistentes virtuais serão popularizados
para o consumo geral.

Machine learning para análise de crédito

Na gigante de análise de crédito Experian, a transformação digital preparou


o caminho para um novo produto estratégico, que aproveita os recursos da ML:
o Ascend Analytics On Demand, uma plataforma de análise de autoatendimento
que permite às empresas criar modelos preditivos para determinar fatores críticos,
qualificando os consumidores para a avaliação de soliciações de crédio.

FIGURA 2 – PLATAFORMA DE ANÁLISE DE AUTOATENDIMENTO DA EXPERIAN

FONTE: <[Link] Acesso em: 2 out. 2020.

Os clientes podem fazer análises robustas de dados em questão de


minutos, em comparação com o que atualmente leva várias semanas. Idealmente,
a ferramena permiirá que os consumidores recebam qualificações para crédio
a partir de sua demanda.

47
UNIDADE 1 — MACHINE LEARNING

“Os clientes querem a capacidade de ver enormes conjuntos de informações


em tempo real”, diz Barry Libenson, CEO da Experian Global, que supervisionou a
construção da plataforma. “Já se foram os dias em que poderíamos prescrever coisas.
Eles os querem em tempo real, quando querem, da maneira que querem”, acrescenta.

Recomendação importante: você não pode criar novas plataformas de


análise em softwares já existentes e esperar que elas tenham um bom desempenho.
Para apoiar a Ascend, a Experian adotou uma abordagem de nuvem híbrida e
investiu em ferramentas de código aberto, incluindo containers, mecanismos de
API e microsserviços. A Experian também padronizou a maneira como constrói e
consome software, com aplicativos e códigos que podem ser reutilizados por seus
funcionários e clientes em todo o mundo.

Machine learning para combater fraudes em cartão de crédito

Como as empresas de monitoramento de crédito, as empresas de cartão


de crédito estão sempre lutando contra as fraudes. Em uma época em que
muitos especialistas criticam o digital, como se a tecnologia fosse a ruína para a
privacidade e a segurança on-line, as ferramenas de ML e IA podem ornar os
serviços mais seguros do que os tradicionais cartões de crédito de plástico.

A Mastercard utiliza diversas camadas de ML e IA para eliminar


consumidores com intenção maliciosa. Na base do sistema, está um banco de
dados que já salvou a companhia de um prejuízo estimado em US$ 1 bilhão em
perdas por fraude desde 2016, afirma Ed McLaughlin, presidene de ecnologia e
operações da Mastercard.

FIGURA 3 – DETECÇÃO DE FRAUDES EM CARTÃO DE CRÉDITO

FONTE: <[Link] Acesso em: 2 out. 2020.

Para evitar os crimes, o software usa mais de 200 atributos capazes de


antecipar e evitar as ações fraudulentas. Esse sistema central, combinado com
tokenização, biometria, deep learning e outras abordagens inovadoras, ajudou a
Mastercard a manter sua reputação como empresa segura.

48
TÓPICO 3 — ARQUITETURA DE UM PROJETO DE MACHINE LEARNING

Conselho-chave: os seres humanos são o elo mais fraco quando se raa de


segurança cibernética. “O mais importante é tirar o humano do circuito” o máximo
possível, diz McLaughlin, acrescentando que o software de ML, IA e processamento de
linguagem natural são componentes essenciais no kit de ferramentas da Mastercard.

Machine learning para empresa de corridas


A Mercedes-AMG Peronas Moorspor esá usando as capacidades de
ML para ajudar a visualizar o desempenho dos carros de corrida. Para isso, a
companhia colea diversos canais de dados em seus veículos da Fórmula 1, às
vezes até 10.000 pontos por segundo, para tomar decisões importantes, explica
Mat Harris, líder de TI da Mercedes.

A empresa usa o software da Tibco para visualizar as variáveis, como clima,


temperatura dos pneus e quantidade de combustível em seus carros. O software
também permite que os engenheiros analisem detalhes como o desempenho e
o desgaste das engrenagens das máquinas. Em geral, os motoristas trocam de
marcha 100 vezes a cada volta, e cada vez que o piloto faz uma troca, a Tibco
coleta cerca de 1.000 pontos de dados.

FIGURA 4 – USO DE ML PELA MERCEDES NA FÓRMULA 1

FONTE: <[Link] Acesso em: 2 out. 2020.

“Quando você visualiza esses dados, é realmente possível fazer a caixa de


engrenagens durar mais tempo ou, o que é mais importante, fazer mudanças de
engrenagens mais duras”, diz Harris. “Você pode descobrir que, se você colocar
a caixa de engrenagens em um modo específico, será aproximadamene 50
milissegundos mais rápido por volta. Carros podem ser separados por milésimos
de segundo na qualificação, enão 50 milissegundos são imporanes”, finaliza.

Harris afirma ainda que a companhia esá consruindo algorimos de ML


para ajudar a “fazer coisas que os humanos não podem". O executivo acredita
que essas capacidades acabarão por se tornar um facilitador chave para a equipe,
dando vantagem competitiva frente aos concorrentes.

Recomendação importante: por que criar algo que não é sua competência
principal? Anes de aerrissar na Tibco, a Mercedes-AMG Peronas usou um
sofware de visualização caseiro que se mosrou ineficiene demais para ser
49
UNIDADE 1 — MACHINE LEARNING

mantido ao longo do tempo. Ao se apoiar na Tibco, a empresa pôde se concentrar


em sua força: construir carros de alto desempenho. “O importante é permitir que
as pessoas sejam criativas e pensem em resolver problemas”, defende Harris.

Machine learning para prever rotatividade nas empresas


Como a maioria das empresas de reparo automotivo, a Caliber Collision há
muito tempo tem um problema de rotatividade, já que mecânicos, pintores e membros
das equipes de suporte ao cliente tendem a entrar e deixar as companhias rapidamente.

Parte do problema, segundo a Caliber, é que suas lojas, muitas vezes, não
inham carros suficienes para a equipe conserar, resulando em pagamenos
inconsistentes. Isso fez com que o CEO Ashley Denison se perguntasse: e se a Caliber
pudesse prever quando um funcionário poderia querer sair e fazer intervenção?

A partir dessa ideia, a companhia começou a trabalhar com a consultora


de tecnologia Sparkhound, que criou programas para extrair dados do setor de
Recursos Humanos da Caliber, complemenando-os com o Microsof PowerBI
para criar um modelo capaz de prever a saída de um funcionário. Em seguida, a
Caliber entra em contato com a equipe para aplicar sistemas de intervenção.

FIGURA 5 – VISUALIZAÇÃO DO PROGRAMA AXPULSE DA CALIBER

FONTE: <[Link] Acesso em: 2 out. 2020.

Se o pagamento de um funcionário demora a cair, por exemplo, os gerentes


regionais da Caliber podem conseguir mais carros para o colaborador trabalhar.
Por outro lado, se um funcionário está sobrecarregado, a empresa pode realocar
alguns carros para outras equipes. O resultado? A Caliber está economizando até
US$ 1 milhão por ano.

Os principais conselhos: eliminar problemas para economizar dinheiro


é uma maneira prática de usar algoritmos. “Torna muito mais fácil reter os
funcionários depois de sua entrada”, completa Denison.

FONTE: Adaptado de BOULTON, C. 5 histórias de sucesso de uso de Machine Learning. CIO.


com. IT MIDIA, 24 jul. 2019. Disponível em: [Link]
-de-uso-de-machine-learning/. Acesso em: 2 out. 2020.

50
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu que:

• Para garantir o processo de aprendizagem, os algoritmos de Machine learning


são compostos por sete etapas principais.

• O processo de coleta de dados é responsável por coletar os dados das fontes.

• A preparação dos dados realiza todas as operações necessárias para que os


dados coletados sejam mais bem compreendidos pelos algoritmos de Machine
learning.

• Durante a escolha do modelo, é necessário um conhecimento prévio sobre os


algoritmos de Machine learning e saber que a ciência pode ser utilizada para se
conhecer problemas já solucionados.

• A etapa de treino e teste é uma das mais importantes, pois é, nesse processo,
que será possível avaliar os métodos de Machine learning.

• Existem diversas métricas de avaliação, cada uma para um tipo de tarefa de


Machine learning e todas servem para avaliar o aprendizado dos métodos.

• O processo de tuning tem como objetivo ajustar os parâmetros dos métodos


para obter melhores resultados.

• A predição é o processo de colocar o algoritmo em produção, realizando


tarefas no mundo real.

CHAMADA

Ficou alguma dúvida? Construímos uma trilha de aprendizagem


pensando em facilitar sua compreensão. Acesse o QR Code, que levará ao
AVA, e veja as novidades que preparamos para seu estudo.

51
AUTOATIVIDADE

1 Considere o texto e a imagem a seguir:

Para que ocorra o armazenamento dos Tweets para posterior uso nas consultas,
é efeuada a colea dos exos, assim como o pré-processameno, compondo a
eapa de ETL. Finalmene, após os dados pré-processados e limpos, podem ser
realizadas consultas OLAP para explorar o cubo de dados. Com os textos já
limpos, seleciona-se a daa do regisro e é efeuada sua formaação para que possa
ser inserido na base. A partir disso, os dados do Tweet estão preparados para que
possam ser “quebrados” e se efetue a Bag of Words. Com os dados do Tweet, as
palavras são quebradas pelo script e inseridas na base de dados multidimensional.
Caso a palavra já exista na base, é apenas atualizada sua frequência.

FONTE: SUTER, J. et al. Um Data Warehouse baseado no Twitter para análise de sentimento
em língua portuguesa: estudo de caso das eleições de 2018. In: Anais da XV Escola Regional
de Banco de Dados. Anais [...] SBC, 2019. p. 41-50. Disponível em: [Link]
php/erbd/article/view/8477/8378. Acesso em: 2 out. 2020.

Analisando a imagem e associando com as etapas de aprendizado de um


algoritmo de Machine learning, assinale a alternativa CORRETA sobre em qual
etapa o processo de fonte de dados e Crawler estão relacionados:

a) ( ) Coleta de dados.
b) ( ) Preparação de dados.
c) ( ) Escolha do modelo.
d) ( ) Divisão em treino/teste.

2 Considere o texto a seguir:

52
Uma coleção de 243 pergunas em poruguês, curadas por profissionais
médicos, também foi incluída na base de conhecimento do chatbot Dra. Lara,
para ter capacidade de responder às perguntas comuns que as gestantes
normalmente querem saber, como a possibilidade de comer um determinado
elemento ou riscos associados à prática de um determinado exercício.

FONTE: CARVALHO, L. et al. Dra. Lara: assistente virtual de apoio e acompanhamento ao pré-
-natal. In: Conferências IADIS Ibero-Americanas WWW/Internet e Computação Aplicada.
Anais [...] 2019. Disponível em: [Link]
LARA_ASSISTENTE_VIRTUAL_DE_APOIO_E_ACOMPANHAMENTO_AO_PRE-NATAL. Acesso
em: 2 out. 2020.

Considerando que se deseja avaliar a base de dados, assinale a alternativa


CORRETA com o nome de como a base de dados é dividida para al fim:

a) ( ) Treino/teste.
b) ( ) Coleta de dados.
c) ( ) Preparação de dados.
d) ( ) Seleção.

3 Machine Learning tem como objetivo principal a extração de conhecimentos


a parir dos dados, na qual, enre suas écnicas, se desaca a classificação.
Sobre a classificação de spams, considere a figura a seguir:

FONTE: <[Link]
-processing-part-2-a0093185aebd?gi=c3977479b17d>. Acesso em: 2 out. 2020.

Assinale a alternativa CORRETA sobre o que representa o campo Prediction:

a) ( ) Predição de um campo (output).


b) ( ) Conjunto de características (input).
c) ( ) Conjunto de características (output).
d) ( ) Predição de um campo (input).

4 Os algoritmos de Machine learning geram conhecimento a partir de bases


de dados, permiindo realizar, enre muias arefas, a classificação. Sobre a
arefa de classificação de spams, considere a figura a seguir:

53
FONTE: <[Link]
-processing-part-2-a0093185aebd>. Acesso em: 2 out. 2020.

Assinale a alternativa CORRETA sobre o que representa o campo text:

a) ( ) Conjunto de características (input).


b) ( ) Predição de um campo (output).
c) ( ) Conjunto de características (output).
d) ( ) Predição de um campo (input).

5 Considere o texto a seguir:

Os algoritmos de Machine learning, também conhecidos como aprendizes,


são diferentes: eles descobrem tudo sozinhos, fazendo inferências a partir de
dados. E quano mais dados êm, melhor ficam seus resulados.

FONTE: DOMINGOS, P. O algoritmo mestre: como a busca pelo algoritmo de Machine lear-
ning definitivo recriará nosso mundo. Novatec Editora, 2017.

Assinale a alternativa CORRETA sobre a etapa do processo de Machine learning


que tem como objetivo obter os melhores parâmetros para os algoritmos:

a) ( ) Tuning de parâmetros.
b) ( ) Predição de parâmetros.
c) ( ) Conjunto de parâmetros.
d) ( ) Aplicação de parâmetros.

54
REFERÊNCIAS
AGARAP, A. F. M. On breas cancer deecion: an applicaion of machine learning
algorithms on the wisconsin diagnostic dataset. In: Proceedings of the 2nd In-
ternational Conference on Machine Learning and Soft Computing. Proceedings
[…] 2018. p. 5-9.
ANICETO, M. C. Estudo comparativo entre técnicas de aprendizado de máqui-
na para estimação de risco de crédito. 2016, 106f. Dissertação de Mestrado (Pro-
grama de Pós-Graduação em Adminisração). Universidade de Brasília, Brasília,
2016. Disponível em: htps://reposi[Link]/bisream/10482/20522/1/2016_
Ma%c3%adsaCardosoAnice[Link]. Acesso em: 2 ou. 2020.
CAO, C. et al. Deep learning and its applications in biomedicine. Genomics,
Proteomics & Bioinformatics, v. 16, n. 1, p. 17-32, 2018.
CARDOSO, A.; LEITÃO, J.; TEIXEIRA, C. Using the Jupyter notebook as a
tool to support the teaching and learning processes in engineering courses.
ICL 2018: The Challenges of the Digital Transformation in Education. Springer,
Cham, 2018. p. 227-236.
CHOW, M. Inteligência artificial e machine learning: o caminho para a relevância
em escala. Think wih Google, ou. 2017. Disponível em: htps://www.hinkwihgoo-
[Link]/inl/p-br/adverising-channels/novas-ecnologias/ineligencia-arificial-e-
-machine-learning-o-caminho-para-relevancia-em-escala/. Acesso em: 20 abr. 2020.
COMPUTERWORLD. Python: 10 motivos para aprender a linguagem em 2019.
COMPUTERWORLD. 15 se. 2019. Disponível em: htps://compu[Link].
br/2019/09/15/pyhon-10-moivos-para-aprender-a-linguagem-em-2019/. Acesso
em: 20 abr. 2020.
ERBS, S. Preparação e Análise Exploratória de Dados. Indaial: UNIASSELVI, 2020.
FAYYAD, U.; PIATETSKY-SHAPIRO, G.; SMYTH, P. From daa mining o
knowledge discovery in databases. AI Magazine, v. 17, n. 3, p. 37-37, 1996.
GÉRON, A. Hands-on machine learning with Scikit-Learn, Keras, and Ten-
sorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems. 2. ed.
O’Reilly Media, 2019.
GIORDANI, V. A. et al. Automatização do processo de entrega de softwres. 2019,
75f. Monografia. Universidade Federal de Sana Caarina, Florianópolis, 2019.
Disponível em: htps://reposi[Link]/bisream/handle/123456789/200137/
PFC%20Vio%20Archangelo%20Giordani_2019-[Link]?sequence=1&isAllowed=y.
Acesso em: 2 out. 2020.

55
JORDÃO, R. F. P. Um estudo em larga-escala de repositórios Open Source no
Github que utilizam containers. 2018, 44f. Monografia. Cenro de Informái-
ca, Universidade Federal de Pernambuco, Recife, 2018. Disponível em: htps://
[Link]/~g/2018-2/TG_SI/[Link]. Acesso em: 2 ou. 2020.
LOSARWAR, V.; JOSHI, M. Data preprocessing in web usage mining. In:
Inernaional Conference on arificial inelligence and embedded sysems
(ICAIES’2012). Proceedings […] Singapore, jul. 2012.
MALL, R. et al. Represenaive subses for big daa learning using k-NN graphs.
In: 2014 IEEE INTERNATIONAL CONFERENCE ON BIG DATA. Proceedings
[…] IEEE, 2014. p. 37-42. Disponível em: htps://[Link]/samp/samp.
jsp?p=&arnumber=7004210. Acesso em: 2 ou. 2020.
MENEZES, S. et al. Mineração em grandes massas de dados utilizando hadoop
mapreduce e algorimos bio-inspirados: Uma revisão sisemáica. Revista de
Informática Teórica e Aplicada, v. 23, n. 1, p. 69-101, 2016.
MINSKY, M.; PAPERT, S. Perceptrons – an introduction to computational geo-
metry. Cambridge: MIT Press, 1969. Cited on, p. 1, 1990.
MITCHELL, T. M. et al. Machine learning. McGraw-Hill, 1997. Disponível em:
htp://profsi[Link]/~monsefi/machine-learning/pdf/Machine-Learning-Tom-
-Mi[Link]. Acesso em: 2 ou. 2020.
MONARD, M. C.; BARANAUSKAS, J. A. Conceios sobre aprendizado de má-
quina. Sistemas inteligentes-fundamentos e aplicações, v. 1, n. 1, p. 32, 2003.
MOREIRA, M. P. Algoritmos de Machine Learning Aplicado ao Marketing. In:
XV SEMANA CIENTÍFICA DA UNILASALLE CANOAS – SEFIC. Anais [...]
Unilasalle Canoas, 2019, 2020.
NOGUEIRA, R. R. Business Intelligence na prática: Modelagem Multidimensio-
nal e Data Warehouse. Indaial: UNIASSELVI, 2020.
QUINLAN, J. R. C4.5: Programming for machine learning. São Francisco: Mor-
gan Kaufmann, 1993. p. 48.
QUINLAN, J. R. Induction of decision trees. Machine learning, v. 1, n. 1, p.
81-106, 1986. Disponível em: htps://[Link]/conen/pdf/10.1007/
[Link]. Acesso em: 2 ou. 2020.
QUORA. What is machine learning and how it is linked to Big Data/Data Mi-
ning? 2015. Disponível em: htps://[Link]/Wha-is-machine-learning-
-and-how-i-is-linked-o-Big-Daa-Daa-Mining. Acesso em: 20 abr. 2020.
ROSA, A. L. da. Classificação de imagens de frutas utilizando aprendizado de
máquina. 2019, 74f. Monografia. Deparameno de Engenharia Elérica e Elerô-
nica, Universidade Federal de Sana Caarina, Florianópolis, 2019. Disponível
em: htps://reposi[Link]/bisream/handle/123456789/197598/TCC-Ayron-
-[Link]?sequence=1&isAllowed=y. Acesso em: 2 ou. 2020.

56
ROSENBLATT, F. The perceptron, a perceiving and recognizing automaton.
Projec Para. Cornell Aeronauical Laboraory, 1957. Disponível em: htps://blogs.
[Link]/brain-wars/files/2016/03/[Link]. Acesso em: 2 ou. 2020.
SAMUEL, A. L. Some studies in machine learning using the game of checkers.
IBM Journal of Research and Development, v. 3, n. 3, p. 210-229, 1959. Dis-
ponível em: htps://[Link]/sysem/files/privae/downlo-
ads/636026949/repor_frank_gabel.pdf. Acesso em: 5 ou. 2020.
SHOBHA, G.; RANGASWAMY, S. Machine learning. In: GUDIVADA, V. N.;
RAO, C. R. (Eds.). Handbook of Statistics. Amserdam: Elsevier, 2018. p. 197-228.
SILVERMAN, R. Git – Guia prático. São Paulo: Novatec, 2013.
STANGE, R. L. Adaptatividade em aprendizagem de máquina: conceitos e
estudo de caso. 2011, 98f. Dissertação (Mestrado em Engenharia Elétrica). Uni-
versidade de São Paulo, São Paulo, 2011. Disponível em: htps://www.[Link].
br/eses/disponiveis/3/3141/de-02072012-175054/publico/Disseracao_RLSan-
ge_2011_Revisada.pdf. Acesso em: 5 ou. 2020.
SU, X. et al. Automated machine learning based on radiomics features predicts
H3 K27M muaion in midline gliomas of he brain. Neuro-oncology, v. 22, n. 3,
p. 393-401, 2020. Disponível em: htps://[Link]/neuro-oncology/ari-
cle-pdf/22/3/393/32794818/[Link]. Acesso em: 5 ou. 2020.
VANDERPLAS, J. Python data science handbook: Essential tools for working
with data. O’Reilly Media, 2016.
VIEIRA, V. A. As tipologias, variações e características da pesquisa de marke-
ting. Revista da FAE, v. 5, n. 1, p. 61-70, 2002. Disponível em: htps://revisafae.
[Link]/revistafae/article/download/449/344. Acesso em: 5 out. 2020.
WEITZEL, L.; SPIES, J. H. L.; SANTOS, M. M. Análise do GitHub como rede
social e rede de colaboração. In: 6ª CONFERÊNCIA IBERO-AMERICANA DE
COMPUTAÇÃO APLICADA (CIACA), 2017. Anais [...] Algarve, Portugal, 2017.
p. 252-260. Disponível em: htp://[Link][Link]/digial-library/mdownlo-
ad/an%C3%A1lise-do-gihub-como-rede-social-e-rede-de-colabora%C3%A7%-
C3%A3o. Acesso em: 5 ou. 2020.
ZUBELLI, F. S. Métodos de inteligência computacional para clusterização de
consumidores no setor de energia elétrica. 2017, 86f. Monografia. Universidade
Federal do Rio de Janeiro, Rio de Janeiro, 2017. Disponível em: htp://monogra-
fi[Link]/monografias/[Link]. Acesso em: 5 ou. 2020.

57
58
UNIDADE 2 —

CLASSIFICAÇÃO

OBJETIVOS DE APRENDIZAGEM
A partir do estudo desta unidade, você deverá ser capaz de:

• inroduzir os conceios fundamenais sobre a classicação;


• apresenar as ferramenas complemenares para a aplicação de algorimos;
• exemplicar onde os méodos de classicação podem ser aplicados;
• explanar conceios maemáicos da implemenação de méodos baseados
em disância;
• implemenar méodos baseados em disância, uilizando a biblioeca
scikit-learn;
• explanar conceios probabilísicos da implemenação de méodos
fundamenados em probabilidade;
• implemenar méodos probabilísicos uilizando a biblioeca scikit-learn;
• apresenar demais méodos de classicação.

PLANO DE ESTUDOS
Esa unidade esá dividida em quaro ópicos. No decorrer da unidade, você
enconrará auoaividades com o objeivo de reforçar o coneúdo apresenado.

TÓPICO 1 – INTRODUÇÃO ÀS TAREFAS DE CLASSIFICAÇÃO

TÓPICO 2 – MÉTODOS DE CLASSIFICAÇÃO BASEADOS EM DISTÂNCIA

TÓPICO 3 – MÉTODOS PROBABILÍSTICOS E OUTROS MÉTODOS DE


CLASSIFICAÇÃO

CHAMADA

Preparado para ampliar seus conhecimentos? Respire e vamos


em frente! Procure um ambiente que facilite a concentração, assim absorverá
melhor as informações.

59
60
TÓPICO 1 —
UNIDADE 2

INTRODUÇÃO ÀS TAREFAS DE CLASSIFICAÇÃO

1 INTRODUÇÃO
Em aprendizado de máquina, a classicação é uma arefa que em como
objeivo aprender com os dados e aribuir róulos (classes). A classicação é
uma tarefa de Machine learning que tem como característica o aprendizado
supervisionado, no qual é aribuído um róulo (classe) aos objeos com base nos
aribuos (HARRISON, 2020).

Em sua denição, um problema de classicação, supervisionado, é um


programa de compuador que recebe amosras (enradas) e resposas esperadas
(saídas) para elas, e gera uma hipóese genérica capaz de mapear as enradas para
as saídas correas (VON LOCHER, 2015).

Os rótulos contidos em tal conjunto correspondem a classes ou


valores obidos por alguma função desconhecida. Desse modo, um algorimo
de classicação buscará produzir um classicador capaz de generalizar as
informações conidas no conjuno de reinameno, com a nalidade de classicar,
poseriormene, objeos cujos róulos sejam desconhecidos.

2 VISÃO GERAL DA CLASSIFICAÇÃO


Compreender a classicação, bem como o signicado de méodo
supervisionado, vai além de compreender seus méodos, mas, primeiramene,
raa-se de compreender os dados sob os quais você irá auar.

A erminologia “supervisionado” refere-se ao fao de que exise uma


supervisão. Isso signica que há um conjuno de dados previamene roulado
(classicado) e que, por meio desses dados, será possível vericar se o méodo
funciona. Essa capacidade de vericar asserividade do méodo sem a inervenção
humana é a supervisão.

A classicação, ambém denominada de caegorização, é a aividade de


roular dados com suas respecivas caegorias emáicas, a parir de um conjuno de
dados predenidos. Os méodos de classicação podem ser de aprendizado on-line
ou o-line, de acordo com a capacidade de consruir e aualizar do classicador.

61
UNIDADE 2 — CLASSIFICAÇÃO

Os méodos de aprendizado on-line podem aualizar o modelo de


predição (ou classicador) a cada novo documeno, de maneira incremenal, sem
necessidade de refazer o reinameno com odos os documenos. Já os méodos de
aprendizado o-line, o modelo precisa ser recalculado a cada nova amosra, com
odos os documenos do reinameno, incluindo a nova amosra.

Para compreender a classicação, analisaremos um dos principais


problemas da lieraura: a classicação da or íris ou íris de Fisher (FISHER,
1936). Esse é um conjuno de dados, desenvolvido pelo biólogo briânico Ronald
Fischer, que permie classicar uma or denominada íris em: versicolor, virginica
ou versicolor, endo como base a largura e alura da péala e sépala.

FIGURA 1 – CATEGORIAS DA FLOR ÍRIS

FONTE: <[Link] Acesso em: 3 nov. 2020.

Agora, vamos compreender o comporameno dos dados, no que se refere


à arefa de classicação. Perceba que os primeiros aribuos são as enradas (alura
da sépala, largura da sépala, alura da péala e largura da péala) e, por úlimo, o
aribuo Species, que coném as classes de cada linha.

FIGURA 2 – DATASET DA FLOR IRIS

FONTE: O autor

É possível visualizar o conjuno de dados Iris Daase em sua máquina,


por meio do comando apresenado no Quadro 1.

62
TÓPICO 1 — INTRODUÇÃO ÀS TAREFAS DE CLASSIFICAÇÃO

QUADRO 1 – IMPORTANDO O DATASET ÍRIS


1 import numpy as np
2 import pandas as pd
3 from [Link] import load_iris
4 iris = load_iris()
5 dados = [Link](data= np.c_[iris['data'], iris['tar-
get']], columns= iris['feature_names'] + ['target'])
6 dados
FONTE: O autor

3 CENÁRIOS DE CLASSIFICAÇÃO
A classicação é uma arefa de aprendizado de máquina que gera um
algorimo predior com base em dados previamene caegorizados. No esudo
dos cenários de sua aplicação, serão descrios os dois ipos de arefas: classicação
binária e classicação muliclasse.

Enre as arefas de classicação, exise a arefa de classificação binária e,


como o nome sugere, é uma arefa que irá classicar os dados com base em duas
classes. Segundo Oliveira (2016), é o ao de dividir as observações em um conjuno
de dados em dois grupos. Em ouras palavras, envolve aribuir uma variável
dependene, consisindo em apenas duas caegorias à observação baseada na
covariável. Em um cenário simples, pode ser que os pesquisadores classiquem
as ransações de carão de crédio como legíimas ou fraudulenas, de acordo com
as seguines informações: o inervalo de empo enre os usos do carão de crédio,
a faixa de valores usada em comparação com o mês anerior, carões de crédio
muio usados, e assim por diane. Para esse exemplo, a classicação é dada por
“Sim” ou “Não”, com base na exisência da caracerísica de ineresse em um
conjuno de variáveis explicaivas.

A enrada de um algorimo de classicação é um conjuno de exemplos


roulados, em que cada róulo é um número ineiro de 0 ou 1, represenando uma
das duas possíveis classes. Segundo Microsof (2019), a saída de um algorimo de
classicação binária é um classicador, que pode ser usado para prever a classe
de novas insâncias sem róulo, na qual cenários de classicação binária incluem:

• reconhecer como “posiivo” ou “negaivo”;


• diagnosicar se um paciene em deerminada doença;
• omar a decisão de marcar um e-mail como spam ou não;
• deerminar se uma foo coném um iem especíco ou não (por exemplo, um
cão ou fruas).

Para Almeida (2010), muios dos problemas de classicação envolvem mais


do que duas classes, o que se designa como classificação multiclasse. Podemos
facilmene pensar no caso do esado de saúde de um paciene, o qual pode ser
denido, por exemplo, com as classes “mau”, “razoável”, “bom”, “muio bom”.
Nesse caso, preende-se classicar o esado de saúde do paciene em uma das classes.
63
UNIDADE 2 — CLASSIFICAÇÃO

Assim, as classicações binária e muliclasse diferem no número de classes


exisenes para a classicação: na binária, são denidas exaamene duas classes,
enquano, na muliclasse, são denidas n classes (n > 2), ou seja, é um problema
que coném duas ou mais classes (róulos) (ALMEIDA, 2010).

4 FERRAMENTAS COMPLEMENTARES
Com a ascensão dos méodos de Big Daa e da aplicação de Machine
learning nos mais diversos cenários de supore à decisão, ais recursos começaram
ser explorados cada vez mais em diversas aplicações, e não somene em cenários
de supore à decisão.

A parir dessa expansão do emprego de écnicas de Machine learning, as


linguagens de programação passaram a uilizar recursos para sua implemenação.
A linguagem Java, por exemplo, cona com a biblioeca Java-ML (Java Machine
Learning; ABEEL; VAN DE PEER; SAEYS, 2009), que é uma coleção de algorimos
de aprendizado de máquina com uma interface comum para cada tipo de
algorimo. O Java-ML é uma biblioeca desinada a engenheiros de sofware e
programadores, porano, sem inerface gráca do uilizador ou usuário (GUI,
do inglês Graphical User Interface), mas com inerfaces claras e implemenações de
referência para algorimos descrios na lieraura cieníca, com um código-fone
bem documenado e exemplos de código e uoriais.

QUADRO 2 – EXEMPLO DE UTILIZAÇÃO DO JAVA-ML


1 Dataset data = [Link](new File("[Link]"),
4, ",");
2 Classier knn = new KNearestNeighbors(5);
3 CrossValidation cv = new CrossValidation(knn);
4 Map<Object, PerformanceMeasure> p = [Link](data);
FONTE: Adaptado de Abeel; Van de Peer; Saeys (2019)

DICAS

O Java-ML contém um conjunto de diversos recursos, biblioteca, entre outros.


Para acessar sua documentação, bem como fazer download, visite o site oficial em: http://
[Link]/.

Em ambienes de programação Microsof, ambém houve inovação no


desenvolvimeno de aplicações de Machine learning. Já em programação DOT.
NET, a biblioeca uilizada é o [Link], um conjuno de recursos para colea, pré-
processameno de dados e, principalmene, aplicação de algorimos de Machine
learning (AHMED et al., 2019).
64
TÓPICO 1 — INTRODUÇÃO ÀS TAREFAS DE CLASSIFICAÇÃO

QUADRO 3 – EXEMPLO DE APLICAÇÃO DO [Link]


1 var ctx = new MLContext();
2 IDataView trainingData = [Link]
.LoadFromTextFile<ModelInput>(dataPath, hasHeader: true);
3 var pipeline = [Link]
.FeaturizeText("Features", nameof([Link]))
.Append([Link][Link]
.LbfgsLogisticRegression("Label", "Features"));
4 ITransformer trainedModel = [Link](trainingData);
5 var predictionEngine = [Link]
.CreatePredictionEngine<ModelInput, ModelOutput>(trainedModel);
6 var sampleStatement = new ModelInput() { Text = "This is a
horrible movie" };
7 var prediction = [Link](sampleStatement);
FONTE: Adaptado de Ahmed et al. (2019)

DICAS

O [Link] permite que você reutilize todo o conhecimento, habilidades,


código e bibliotecas que você já possui como um desenvolvedor .NET, para que possa
integrar facilmente o aprendizado de máquina em seus aplicativos da web, móvel, desktop,
jogos e Internet das coisas (IoT, do inglês Internet of Things). Na documentação ocial,
existe um conteúdo completo de como utilizar essa biblioteca. Acesse: [Link]
[Link]/apps/machinelearning-ai/ml-dotnet.

São muias as opções de linguagens de programação, no que se refere ao


desenvolvimeno de aplicações inegradas a méodos de Machine learning. Enre
elas, o Pyhon em um desaque especial. Para muios pesquisadores, Pyhon é
uma ferramena de primeira classe, principalmene por causa de suas biblioecas
para armazenar, manipular e ober informações a parir de dados, sendo um
conjuno compleo para prossionais de ciência de dados (VANDERPLAS, 2016).
Dessa maneira, vamos conhecer os principais recursos dessa linguagem, a m de
auxiliar na implemenação de algorimos de Machine learning.

4.1 LISTAS
Na linguagem de programação Pyhon, o objeo lisa é a sequência mais
geral fornecida. As lisas são coleções ordenadas de objeos de ipo arbirário e não
êm amanho xo (LUTZ, 2013). Também são muáveis, podem ser modicadas
no local, aribuindo deslocamenos, bem como uma variedade de chamadas de
méodo de lisa.

65
UNIDADE 2 — CLASSIFICAÇÃO

Uma lisa é uma esruura de dados que coném uma coleção ordenada
de iens, ou seja, você pode armazenar uma sequência de iens em uma lisa. Para
abrir um dataset no formao CSV (comma separated values) e transformá-lo em uma
lisa, conra o Quadro 4.

QUADRO 4 – TRABALHANDO COM LISTAS

1 import csv
2 lista1 = []
3 lista2 = []
4 with open([Link]') as csvle:
5 readCSV = [Link](csvle, delimiter=',')
6 dates = []
7 colors = []
8 for linha in readCSV:
9 elemento1 = linha[0]
10 elemento2 = linha[1]
11
12 [Link](elemento1)
13 [Link](elemento2)
14
15 print(lista2)
16 print(lista2)

FONTE: O autor

DICAS

Para conhecer mais sobre a manipulação de dados, utilizando a estrutura de


dados lista, acesse o código no Google Colab Notebooks: [Link]
com/drive/1siWWmsChWjyO6kFaItMj4fxALWY05Erd.

4.2 NUMPY
O NumPy é o pacoe fundamenal para a compuação cieníca em Pyhon.
É uma biblioeca Pyhon que fornece um objeo de mariz mulidimensional,
vários objetos derivados (como matrizes e matrizes mascaradas) e uma variedade
de roinas para operações rápidas em marizes (NASCIMENTO, 2019). Segundo
Bresser (2012), ais roinas incluem manipulação maemáica, lógica, de formas,
classicação, seleção, enrada/saída, ransformadas discreas de Fourier, álgebra
linear básica, operações esaísicas básicas, simulação aleaória, e muio mais.

66
TÓPICO 1 — INTRODUÇÃO ÀS TAREFAS DE CLASSIFICAÇÃO

Um exemplo de como acessar um dataset uilizando a biblioeca Numpy


pode ser viso no Quadro 5. Ressala-se que a uilização de al biblioeca não se
limia à criação de arrays, mas, sim, ao uso de um conjuno de operações algébricas
que podem auxiliar na preparação de dados.

QUADRO 5 – TRABALHANDO COM NUMPY

1 from numpy import genfromtxt


2 my_data = genfromtxt([Link]', delimiter=',')

FONTE: O autor

ATENCAO

O NumPy é uma biblioteca completa com os mais diversos recursos e


operações matemáticas para tratamento de dados. Para saber mais, acesse o Google Colab
Notebooks com informações sobre o NumPy em: [Link]
drive/1lgv-CxAUcDY5hxqw_RMMZYtqkHdcCoUE?usp=sharing.

4.3 ANACONDA
OAnaconda é um gerenciador de pacoes e ambiene para desenvolvimeno
de “daa science” que uiliza as linguagens Pyhon e R. A plaaforma cona com
uma coleção de mais de 1.500 pacoes de código abero. O Anaconda é grauio e
fácil de insalar, e oferece supore grauio à comunidade (SCHLICHTING, 2020).

No caso do Colab Noebook, é necessário baixar o pacoe e insalá-lo via linha


de comando; para isso, uilize o bloco de comandos conforme mosra o Quadro 6.

QUADRO 6 – INSTALANDO O ANACONDA NO COLAB NOTEBOOK


1 !wget -c [Link]
2 4-Linux-x86_64.sh
3 !chmod +x Miniconda3-4.5.4-Linux-x86_64.sh
4 !bash ./Miniconda3-4.5.4-Linux-x86_64.sh -b -f -p /usr/local
5 !conda install -q -y --prex /usr/local python=3.6 ujson
6 import sys
7 [Link]('/usr/local/lib/python3.6/site-packages')
8 # Para testar o funcionamento
9 import ujson
10 print([Link]({1:2}))
11
FONTE: O autor

67
UNIDADE 2 — CLASSIFICAÇÃO

DICAS

Anaconda é um pacote cientíco completo para manipulação de dados e


suporte a projetos de Machine learning. Para obter a biblioteca Anaconda nas mais diversas
plataformas e sistemas operacionais, acesse o site: [Link] Por meio do
link, é possível realizar a instalação completa, bem como encontrar a documentação ocial.
Conra o Google Colab Notebooks com a instalação e os exemplos de utilização em: https://
[Link]/drive/1uGzDCzyrN7cPNnQMpKfbq5hRGXJh1PB1?usp=sharing

4.4 SCIPY
Segundo Maldaner (2019), o SciPy é a exensão responsável por adicionar
ferramenas para oimização, funções especiais, processameno de imagens,
inegração numérica, resolução de equações diferenciais ordinárias, além de
possibiliar a realização de operações com os arranjos inroduzidos pelo NumPy.

Em cenários de Machine learning e na preparação de dados, a combinação


do SciPy com NumPy possibilia poencializar a aplicação do Pyhon, além de
exibilidade para os desenvolvedores, uma vez que a biblioeca foi desenvolvida
para maemáicos, cienisas e engenheiros.

QUADRO 7 – ÁLGEBRA RELACIONAL COM SCIPY


1 import numpy as np
2 from scipy import linalg
3 A = [Link]([[1,2],[3,4]])
4 print(A)
5 [Link](A)
6 b = [Link]([[5,6]]) b
7 b.T
8 A*b
9 [Link](b.T)
10 b = [Link]([5,6])
11 b
12 b.T
13 [Link](b)
FONTE: O autor

ATENCAO

Para saber mais sobre o SciPy, sua integração com Numpy, bem como seu
funcionamento, de modo geral, acesse o Google Colab Notebooks: [Link]
[Link]/drive/1leW5OOiXXQ65DEUM81CKsFSfv-dh018c?usp=sharing.

68
TÓPICO 1 — INTRODUÇÃO ÀS TAREFAS DE CLASSIFICAÇÃO

4.5 SCIKIT-LEARN
Scikit-learn é um módulo Pyhon que inegra uma ampla gama de algorimos
de aprendizado de máquina de úlima geração para problemas supervisionados e
não supervisionados de média escala. Tal pacoe se concenra em levar o aprendizado
de máquina para não especialisas, uilizando uma linguagem de alo nível de uso
geral. A ênfase é colocada na facilidade de uso, desempenho, documenação e
consisência da Inerface de Programação de Aplicações (API, do inglês Application
Programming Interface; PEDREGOSA et al., 2011).

Segundo Oliveira, Muniz e Farrapo (2020), a biblioeca para auxílio em


aprendizagem de máquina scikit-learn é um módulo que inegra uma vasa
quanidade de algorimos de Machine learning de úlima geração para problemas
supervisionados ou não. Em suma, scikit-learn fornece um ambiente rico para
implemenação de algorimos de aprendizagem de máquina, manendo uma
inerface fácil para manipulação. Pode-se dizer que isso é reexo da necessidade
da análise de dados esaísicos por não especialisas nas indúsrias de sofware,
bem como nos campos exernos à informáica, como a física e a engenharia.

DICAS

No ambiente do Google Colab Notebooks, o scikit-learn é executado de maneira


nativa, porém pode ser instalado de forma simples, por meio do PIP. A documentação
completa está disponível em: [Link]

5 MÉTRICAS DE AVALIAÇÃO PARA CLASSIFICAÇÃO


As méricas de avaliação êm como nalidade avaliar a capacidade de
generalização dos méodos de classicação, ou seja, a parir delas, é possível
vericar a axa de acero desses méodos.

Segundo Rodrigues (2019), para enender melhor cada mérica, é


necessário, primeiramene, enender alguns conceios. Uma mariz de confusão
é uma abela que indica os erros e os aceros do modelo, comparando com o
resulado esperado (ou eiqueas/labels). A Figura 3 apresena um exemplo de
uma mariz, bem como o signicado de seus elemenos na sequência.

69
UNIDADE 2 — CLASSIFICAÇÃO

FIGURA 3 – MATRIZ DE CONFUSÃO

FONTE: <[Link]
Acesso em: 3 nov. 2020.

A mariz de confusão é a forma de represenação da qualidade obida


de um méodo de classicação, sendo expressa por meio da correlação de
informações dos dados de referência (compreendidos como verdadeiros) com
os dados classicados. Essa roina ambém pode ser expressa pela análise das
amosras de reinameno associada aos dados classicados (PRINA; TRENTIN,
2015). Os elemenos da mariz de confusão represenam os seguines:

• verdadeiros posiivos: classicação correa da classe posiiva;


• falsos-negaivos: erro em que o modelo previu a classe negaiva quando o
valor real era da classe posiiva;
• falsos-positivos: erro em que o modelo previu a classe positiva quando o valor
real era da classe negaiva;
• verdadeiros negaivos: classicação correa da classe negaiva.

Uilizando a mariz de confusão, é possível exrair as principais méricas


de avaliação de modelos de classicação: precisão, revocação, f-medida e acurácia
(Figura 4).

FIGURA 4 – FÓRMULAS DAS MEDIDAS DE AVALIAÇÃO

FONTE: <[Link]
Acesso em: 3 nov. 2020.

70
TÓPICO 1 — INTRODUÇÃO ÀS TAREFAS DE CLASSIFICAÇÃO

Enre as méricas, desaca-se a acurácia, que indica a quanidade de exemplos


que foram, de fao, classicados correamene, independenemene da classe. Por
exemplo, se emos 100 amosras e 90 delas foram classicadas correamene, isso
signica que a acurácia foi de 90%. A seguir, é possível observar a fórmula da
acurácia (Figura 5) e como uilizar essa mérica com o scikit-learn (Quadro 8).

FIGURA 5 – FÓRMULA DA ACURÁCIA

FONTE: Adaptado de <[Link]


Acesso em: 3 nov. 2020.

QUADRO 8 – MÉTRICA ACURÁCIA COM SCIKIT-LEARN

1 from [Link] import accuracy_score


2 y_classicado = [0, 2, 1, 3]
3 y_original = [0, 1, 2, 3]
4 accuracy_score(y_original, y_classicado)
FONTE: O autor

A precisão é a porcenagem de amosras classicadas como perencenes


à classe posiiva e que realmene fazem pare de al classe (SILVA, 2017). A seguir,
veremos a fórmula da precisão (Figura 6) e como uilizar essa mérica com o scikit-
learn (Quadro 9).

FIGURA 6 – FÓRMULA DA PRECISÃO

FONTE: Adaptado de <[Link]


Acesso em: 3 nov. 2020.

QUADRO 9 – MÉTRICA PRECISÃO COM SCIKIT-LEARN

1 from [Link] import precision_score


2 y_classicado = [0, 2, 1, 3]
3 y_original = [0, 1, 2, 3]
4 precision_score(y_original, y_classicado, average='macro'))
FONTE: O autor

71
UNIDADE 2 — CLASSIFICAÇÃO

A revocação, ambém chamada de sensibilidade ou recall, é uma mérica


que, enre odas as siuações de classe posiiva como valor esperado, indica
quanas esão correas (RODRIGUES, 2019). A seguir, veremos a fórmula da
revocação (Figura 7) e como uilizar essa mérica com o scikit-learn (Quadro 10).

FIGURA 7 – FÓRMULA DA REVOCAÇÃO

FONTE: Adaptada de <[Link]


Acesso em: 3 nov. 2020.

QUADRO 10 – MÉTRICA REVOCAÇÃO COM SCIKIT-LEARN

1 from [Link] import precision_score


2 y_classicado = [0, 2, 1, 3]
3 y_original = [0, 1, 2, 3]
4 recall_score(y_original, y_classicado, average='macro'))

FONTE: O autor

72
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu que:

• A classicação é a aividade de roular dados com suas respecivas caegorias


emáicas, a parir de um conjuno de dados predenidos.

• A arefa de classicação esá presene em diversos cenários do coidiano.

• Os méodos de classicação podem aprender on-line ou o-line.

• O aprendizado on-line pode aualizar o modelo de predição (ou classicador)


a cada novo documeno de maneira incremenal.

• Nos méodos de aprendizado o-line, o modelo precisa ser recalculado a cada


nova amosra, com odos os documenos do reinameno.

• Problemas de classicação com classes são denominados binários.

• Problemas de classicação com duas ou mais classes são denominados


muliclasse.

• Exise um conjuno de biblioecas que pode auxiliar no pré-processameno de


dados e implemenação de algorimos de classicação.

• As méricas de avaliação auxiliam na avaliação dos modelos.

73
AUTOATIVIDADE

1 Nas mais diversas áreas do conhecimeno, os sisemas de Machine learning


podem ajudar a descobrir padrões, realizar deerminadas arefas, por
meio da generalização de casos e da uilização de dados. Com relação à
classicação, assinale a alernaiva CORRETA:

a) ( ) É um méodo supervisionado.
b) ( ) É um méodo não supervisionado.
c) ( ) É um méodo dessupervisionado.
d) ( ) É um méodo visionado.

2 Os méodos de classicação permiem roular auomaicamene novos


regisros com base em hisórico de dados. Supondo que exisa um conjuno
de dados que possa receber róulos 0-negaivos ou 1-posiivos, qual ipo de
arefa de classicação que será realizada?

a) ( ) Classicação binária.
b) ( ) Classicação unária.
c) ( ) Classicação ernária.
d) ( ) Classicação muliclasse.

3 A caegorização de exos de noícias é a arefa de roular uma deerminada


noícia, com base em um conjuno de exos previamene roulado.
Considerando que, em uma base de dados, exisam 35 caegorias de
noícias, qual ipo de arefa de classicação será realizado?

a) ( ) Classicação muliclasse.
b) ( ) Classicação binária.
c) ( ) Classicação unária.
d) ( ) Classicação ernária.

4 O Pyhon é uma linguagem de alo nível, inerpreada, orienada a objeos


com uma semânica dinâmica, amplamene uilizada em projeos de
Machine learning. Sobre a uilização do Pyhon, assinale a biblioeca que
implemena os méodos de Machine learning:

a) ( ) Scikit-learn.
b) ( ) Pandas.
c) ( ) Malab.
d) ( ) PIP.

74
5 Pyhon é uma linguagem básica, simples, uilizada em diversos cenários
da compuação, com desaque para projeos de Machine learning. Sobre o
Pyhon, assinale qual biblioeca é uilizada para a visualização de dados:

a) ( ) MaploLib.
b) ( ) Scikit-learn.
c) ( ) Pandas.
d) ( ) Numpy.

75
76
TÓPICO 2 —
UNIDADE 2

MÉTODOS DE CLASSIFICAÇÃO BASEADOS EM DISTÂNCIA

1 INTRODUÇÃO
Os méodos de classicação baseados em disância consideram
proximidade enre dados em relação ao espaço caresiano. Esse ipo de méodo
considera que dados similares endem a esar em uma mesma região no espaço
de enrada.

Segundo Carvalho (2012), esse ipo de méodo é considerado do ipo


aprendizado preguiçoso, pois só olha os dados de reinameno quando precisa
classicar um novo objeo. A parir de um novo objeo, de suas caracerísicas,
disposas no espaço caresiano, um novo objeo será classicado. Por exemplo, ao
enrar um novo objeo que anda e lae como um cachorro, enão provavelmene é
um cachorro (Figura 8).

FIGURA 8 – CLASSIFICAÇÃO POR DISTÂNCIA

FONTE: <[Link] Acesso em: 3 nov. 2020.

Para Soldi (2013), quando objeos são agrupados, a proximidade é


usualmene indicada por uma espécie de disância. Por ouro lado, as variáveis
são usualmene agrupadas com base nos coecienes de correlação ou ouras
medidas de associação. Essas medidas podem ser de:

• Similaridade: quano maior o valor observado, mais parecidos são os objeos.


Por exemplo, o coeciene de correlação.
• Dissimilaridade: quano maior o valor observado, menos parecidos (mais
dissimilares) serão os objeos.

77
UNIDADE 2 — CLASSIFICAÇÃO

2 MÉTODOS BASEADOS EM DISTÂNCIA


A disância euclidiana (Figura 9) é uma das medidas de dissimilaridade
enre comunidades mais uilizadas na práica. Quano menor o valor da disância
euclidiana enre dois objeos, mais próximas elas se apresenam em ermos de
parâmeros quaniaivos por classe; logo, quano menor a disância euclidiana,
maior a eciência do procedimeno (BORGES; DA SILVA; CASTRO, 2007).

FIGURA 9 – EQUAÇÃO DA DISTÂNCIA EUCLIDIANA

FONTE: Adaptada de Soldi (2013)

Em que D (x, y) é a disância enre dois objeos (x e y), dada pela equação,
na qual i represena as posições no pono caresiano de cada objeo (x e y) e n
é número de ocorrências. A seguir, veremos a implemenação da disância
euclidiana uilizando Pyhon (Quadro 11) e NumPy.

QUADRO 11 – CÁLCULO DA DISTÂNCIA EUCLIDIANA EM PYTHON

1 import numpy as np
2
3 x = [1, 2.5, 3.8, 4.5]
4 y = [0.5, 4.5, 9.6, 3.4]
5
6 def dist_euclidiana_np(x, y):
7 x, y = [Link](x), [Link](y)
8 di = x – y
9 quad_dist = [Link](di, di)
10 return [Link](quad_dist)
11
12 print('%.2f' % dist_euclidiana_np(x, y))
FONTE: O autor

Complemenarmene à disância euclidiana, exisem disâncias que podem


ser uilizadas na implemenação de algorimos de Machine learning baseados
em disância. A medida de disância euclidiana dada à mérica de disância de
Minkowski, ambém conhecida como disância de Minkowski, é apresenada na
Figura 10.

78
TÓPICO 2 — MÉTODOS DE CLASSIFICAÇÃO BASEADOS EM DISTÂNCIA

FIGURA 10 – EQUAÇÃO DA DISTÂNCIA MINKOWSKI

FONTE: Adaptada de Tan, Steinbach e Kumar (2016)

Segundo Tan, Seinbach e Kumar (2016), a disância de Minkowski é uma


generalização da disância euclidiana, em que r é um parâmero, n é o número
de dimensões (aribuos) e pk e qk são, respecivamene, os k-ésimos aribuos
(componenes) dos objeos de dados p e q.

Na disância de Minkowski, aproveiam-se os recursos do pacoe Scipy


para realizar sua implemenação; nesse caso, poderia ser implemenado do zero,
al como a disância euclidiana. Nessa implemenação, os primeiros aribuos são
os veores x e y, e o úlimo parâmero é o coeciene de normalização.

QUADRO 12 – CÁLCULO DA DISTÂNCIA DE MINKOWSKI EM PYTHON E SCIPY

1 from [Link] import distance


2 [Link]([1, 0, 0], [0, 1, 0], 1)
3 [Link]([1, 0, 0], [0, 1, 0], 2)
4 [Link]([1, 0, 0], [0, 1, 0], 3)
FONTE: O autor

Agora que já compreendemos uma visão geral do funcionameno das


disâncias, vamos enender o funcionameno do méodo KNN (do inglês K-Nearest
Neighbors), baseado em disâncias.

2.1 KNN
O méodo do vizinho mais próximo (KNN, do inglês K-Nearest Neighbors)
rabalha de acordo com a proximidade, ou seja, roula um deerminado objeo
conforme os objeos mais próximos. O número de objeos a serem agrupados são
os K vizinhos mais próximos.

A ideia básica do KNN é deerminar a caegoria de um deerminado


objeo com base em similaridades enre os documenos no espaço. Para calcular
a similaridade, usa-se uma mérica de disância. O méodo KNN percorre odo
o conjuno de dados, compuando a disância de cada elemeno em relação ao
documeno que esá sendo consulado. Uma vez calculadas as disâncias, a caegoria
será deerminada pelos K documenos mais próximos ao documeno consulado.

79
UNIDADE 2 — CLASSIFICAÇÃO

Segundo Locher (2015), a eapa de classicação envolve calcular a


dissimilaridade de uma nova amosra para odas as amosras conhecidas e
classicá-la com a caegoria mais frequene enre as “k” amosras mais próximas
a ela. O méodo KNN não gera um modelo a parir das amosras, mas consula
odas para cada nova classicação. Além disso, o algorimo KNN é basane
penalizado quando uma das classes do problema apresenta muito mais amostras
que as demais classes.

2.1.1 Implementação matemática do método


Como o méodo do KNN explora muio o espaço veorial e o plano
caresiano, primeiramene, precisamos compreender o funcionameno desses
elemenos, uilizando a linguagem de programação.

A visualização dos dados é de grande imporância para compreender o


cenário, bem como seu comporameno; anal, com ela, conseguimos observar os
dados e compreendê-los, uma vez que as pessoas êm muio mais facilidade para
capar e processar comunicações visuais (BIGDATACORP, 2019).

Para isso, os dados são disposos por meio de grácos que compõem
o plano caresiano e os pares ordenados. Um sisema de eixos orogonais é
consiuído por dois eixos perpendiculares, Ox e Oy, que êm a mesma origem.

A parir desses eixos, emos o plano caresiano, cujos eixos orogonais o


dividem em quaro quadranes. Para idenicar um par ordenado, indicamos por
um pono no plano caresiano, conforme gura gerada a parir do código-fone,
onde o pono esá sendo indicado por P (1, 1).

QUADRO 13 – PLOTANDO O EIXO CARTESIANO COM MATPLOTLIB

1 import [Link] as plt


2 [Link](1,1,'bo',mfc='none',markersize=20)
3 [Link]('Eixo das ordenadas')
4 [Link]('Eixo das abscissas')
5 [Link]()

FONTE: O autor

80
TÓPICO 2 — MÉTODOS DE CLASSIFICAÇÃO BASEADOS EM DISTÂNCIA

FIGURA 11 – PLOTANDO O EIXO CARTESIANO COM MATPLOTLIB

FONTE: O autor

Vamos gerar uma lisa com os valores que serão uilizados no decorrer
do exemplo. Como comando range no inervalo indicado, o nosso conjuno de
valores será de -10 aé 10 para que possamos er a percepção de como a função irá
se comporar em um conjuno negaivo e posiivo.

QUADRO 14 – PLOTANDO UM CONJUNTO DE DADOS COM MATPLOTLIB

1 import numpy as np
2 import [Link] as plt
3 x = [Link](range(-10,11))
4 [Link](x)
5 [Link]()

FONTE: O autor

Com o comando import, realizamos a imporação da biblioeca Maplolib,


durane o código, oda vez que for uilizado o objeo pl, será um objeo do ipo
da biblioeca gráca. Ao uilizar pl.plo (valores), o conjuno de regisros será
mosrado no gráco.

FIGURA 12 – PLOTANDO UM CONJUNTO DE DADOS COM MATPLOTLIB

FONTE: O autor

81
UNIDADE 2 — CLASSIFICAÇÃO

Com o conjuno x, que represena os valores que serão mosrados no eixo x,


codicaremos a função y = f(x). Para denir uma função em Pyhon, uilizaremos
o def(). Em um exemplo simples, criaremos a função f(x) = x + 1. Logo em seguida,
chamando a função e passando parâmeros para ela.

QUADRO 15 – IMPLEMENTANDO E UTILIZANDO UMA FUNÇÃO F(X)


1 ###############################################
2 #### Criando a f(x) = x + 1
3 ###############################################
4 def f(x):
5 return x+1
6 ###############################################
7 #### Gerando f(x) para os dados de x
8 ###############################################
9 y = f(x)
10 print("x = ", x)
11 print("\n \n")
12 print("y = f(x) = ", y)
13
14
15
FONTE: O autor

Agora que já emos em mãos o conjuno de dados x e o conjuno f(x)


represenado por y, é possível ploar os valores e y em função de x. Como a pare
maemáica já foi realizada por meio da função codicada, basa passar os valores
para a função plo().

FIGURA 13 – PLOTANDO DE VALORES DE X EM F(X)

FONTE: O autor

Denido um padrão, vamos reproduzi-lo algumas vezes para faciliar o


seu enendimeno sobre o ema. Para focar na consrução maemáica, criaremos
uma função no Pyhon para receber x e f(x)/y, exibindo-os em forma de gráco.

82
TÓPICO 2 — MÉTODOS DE CLASSIFICAÇÃO BASEADOS EM DISTÂNCIA

QUADRO 16 – IMPLEMENTANDO E UTILIZANDO UMA FUNÇÃO F(X)


1 #criando a função para plotar o gráco
2 def escreve_graco(x,y):
3 [Link](x,y) #escreve a função
4
5 [Link](x,f(x),'r+') #escreve os pares ordenados
6
7 [Link]('Valores de Y em função de X')
8 [Link]('Valores de X')
9 [Link]()
10
11 #utilizando a função de plotagem
13 def f(x):
14 return x**2
15
16 escreve_graco(x,f(x))
FONTE: O autor

Sabe-se que a disância euclidiana é a medida de disância mais


frequenemene empregada quando odas as variáveis são quaniaivas; é
uilizada para calcular medidas especícas, além de disância euclidiana simples
e disância euclidiana quadráica ou absolua, a qual consise na soma dos
quadrados das diferenças, sem calcular a raiz quadrada (SEIDEL et al., 2008).

Para enender melhor a disância euclidiana e a sua aplicação no conceio


de um algorimo de Machine learning, primeiramene, vamos compreender o que
ela signica. Considere os ponos 1,2 em vermelho e o pono 3,6. O objeivo da
aplicação de disâncias é uilizar as coordenadas x e y de cada um desses ponos
e reornar a um limiar que mensura as disâncias.

QUADRO 17 – PLOTANDO DOIS PONTOS NO ESPAÇO

1 import [Link] as plt


2 #inicializa o gráco com tamanho de 0 até 7
3 [Link](0,0,mfc='none')
4 [Link](7,7,mfc='none')
5
6 ########################################
7 ####### Inicializa os pontos
8
9 [Link](1,2,'r+',mfc='none')
10 [Link](3,6,'bo',mfc='none')

FONTE: O autor

83
UNIDADE 2 — CLASSIFICAÇÃO

Noa-se que, no exemplo do Quadro 17, cada pono é composo por duas
dimensões (x,y). Desse modo, ao ranscrever um somaório que se inicializa em
1 e vai aé n, n = 2 (duas dimensões). Ao deduzir a fórmula para esses valores,
obemos a disância apresenada na Figura 14.

FIGURA 14 – DISTÂNCIA EUCLIDIANA ENTRE DOIS PONTOS

FONTE: O autor

Anes de resolver uilizando linguagem de programação, primeiramene,


deve-se calcular passo a passo a disância euclidiana enre os ponos p e q. Para
isso, uilizaremos a fórmula deduzida para duas dimensões e subsiuiremos os
valores.

FIGURA 15 – APLICANDO VALORES NA DISTÂNCIA EUCLIDIANA

FONTE: O autor

Uma vez compreendido o cálculo da disância, o gráco gerado pelo


código-fone (Quadro 18) mosra rês elemenos. A Figura 16 apresena os ponos
p (em vermelho) e q (em azul) e a disância enre os dois ponos (raço verde).

QUADRO 18 – MOSTRANDO PONTOS E TRAÇANDO UMA RETA ENTRE ELES

1 import [Link] as plt


2 #inicializa o gráco com tamanho de 0 até 7
3 [Link](0,0,mfc='none')
4 [Link](7,7,mfc='none')
5
6
7 [Link](1,2,'r+',mfc='none', label="p1")
8 [Link](3,6,'bo',mfc='none')
9

84
TÓPICO 2 — MÉTODOS DE CLASSIFICAÇÃO BASEADOS EM DISTÂNCIA

10 [Link]([1,3],[2,6], '-')
11
12
13
14 [Link]()
FONTE: O autor

FIGURA 16 – MOSTRANDO PONTOS E TRAÇANDO UMA RETA ENTRE ELES

FONTE: O autor

Durane a implemenação do KNN, qualquer disância pode ser


uilizada, como a disância Manhaan e Minkowski. No enano, agora
que já implemenamos um algorimo para calcular a disância euclidiana,
prosseguiremos para o méodo dos K-vizinhos mais próximos, uilizando essa
disância. O méodo KNN usará a disância enre objeos para classicar uma
nova enrada sob a qual não se sabe a classe. Para isso, considera os objeos mais
próximos, ou seja, os K-vizinhos mais próximos.

FIGURA 17 – ALGORITMO DO KNN

FONTE: <[Link]
Acesso em: 3 nov. 2020.

85
UNIDADE 2 — CLASSIFICAÇÃO

Quando iniciamos, falamos sobre números e ponos. Para car mais clara a
aplicação, vamos criar um conjuno de dados sinéico e rabalhar nele. O conjuno
de dados (Quadro 19) represena uma base de dados com pessoas, que, a parir
de sua renda familiar e idade, receberam crédios pessoais. A primeira coluna
represena a idade, a segunda mosra a renda mensal e a erceira, que pode ser
chamada de classe ou róulo, deermina se o crédio foi concedido ou não.

QUADRO 19 – GERANDO UM CONJUNTO DE DADOS

1 credito = [Link]([
2 [75,4600, "positivo"],
3 [21,850,"negativo"],
4 [39,840,"negativo"],
5 [45,1500,"negativo"],
6 [47,3200,"positivo"],
7 [51,3400,"positivo"],
8 [47,1200,"negativo"],
9 [25,1500,"negativo"],
10 [30,2800,"negativo"],
12 [69,1500,"positivo"],
13 [69,1800,"positivo"],
14 [50,2500,"positivo"],
15 [39,1700,"negativo"],
16 [42,1900,"negativo"],
17 [42,1900,"negativo"],
18
19 ])
FONTE: O autor

Uma vez criado o conjuno de dados, exploraremos o conceio de pares


ordenados, salário e idade, e uilizando a biblioeca Maplolib vamos ploar, no
gráco, cada pono que represena o crédio negaivo ou posiivo.

QUADRO 20 – EXIBINDO OS DADOS

1 import [Link] as plt


2 positivos = credito[credito[:,2]=="positivo"]
3 negativos = credito[credito[:,2]=="negativo"]
4
5 g = plt.gure()
6 ax1 = g.add_subplot()
7 ax1.set_ylabel('Salário')
8 ax1.set_xlabel('Idade')
9 ax1.set_title('Controle de Crédito')
10

86
TÓPICO 2 — MÉTODOS DE CLASSIFICAÇÃO BASEADOS EM DISTÂNCIA

12 [Link](negativos[:,0].astype(int) ,negativos[:,1].as-
13 type(int),'r+',mfc='none')
14 salario = int(input("Informe o salário"))
15 idade = int(input("Informe a idade"))
17
18 [Link](idade, salario,'go',mfc='none')
19
20 [Link](positivos[:,0].astype(int),positivos[:,1].astype(int),
21 'bo',mfc='none')
22 [Link]()

FONTE: O autor

Dividiremos o dataset de acordo com as classes, aribuindo um ipo de


visualização para cada uma delas. Ao reproduzir os exemplos, que aeno aos
comenários para compreender o que cada recho do código esá execuando.

O pono verde (salário, idade) mosrado na Figura 18 (40,2500) não possui


caegoria, ou seja, não se sabe se é posiivo ou negaivo. Ao uilizar o méodo dos
vizinhos mais próximos, é possível descobrir a qual classe o pono deve perencer,
de acordo com o número de k vizinhos mais próximos.

FIGURA 18 – EXIBINDO UM CONJUNTO DE DADOS

FONTE: O autor

Com os dados em mãos, vamos aplicar o algorimo em si, começando com o


processo fundamenal para o KNN, o cálculo da disância euclidiana (Quadro 21).

87
UNIDADE 2 — CLASSIFICAÇÃO

QUADRO 21 – REALIZANDO O CÁLCULO DA DISTÂNCIA

1 def distancia_euclidiana(x,y):
2 x1 = x[0].astype(oat)
3 x2 = x[1].astype(oat)
4 y1 = y[0]
5 y2 = y[1]
6 distancia = [Link](pow(x2-y2,2) + pow(x1-y1,2))
7 print("Valor de X =",x[0:2], " valor de Y=",y," D(x,y)=",
distancia )
8
9 return distancia

FONTE: O autor

Uma vez desenvolvida a função que realiza o cálculo da disância, nesse


momeno, deve-se calcular a disância para o novo objeo para com os demais.
Oura abordagem que poderia ser realizada seria criar um array de disâncias,
indicando a disância de cada objeo para odos os demais.

QUADRO 22 – REALIZANDO O CÁLCULO DA DISTÂNCIA


1 import math
2 import numpy as np
3 dados = credito
4 distancias = [Link](([Link][0],1))
5 dados = [Link](dados, distancias, axis=1)
6 print("Calculando as distâncias do novo objeto para todos os
outros \n \n")
7 for i in range(0,[Link][0]):
8 dados[i,3] = distancia_euclidiana(dados[i,:],[idade, sala-
rio])
9 dados[:,3]= dados[:,3].astype(oat)
10 dados = dados[dados[:,3].astype(oat).argsort(kind='merge-
sort')]
11 print("\n \n Conjunto de dados ordenado pela distância \n")
12 print (dados)
13
14
FONTE: O autor

Uma vez que as disâncias já foram calculadas, é o momeno de aplicar


o algorimo que será o responsável por realizar a classicação com base em
K-vizinhos mais próximos.

88
TÓPICO 2 — MÉTODOS DE CLASSIFICAÇÃO BASEADOS EM DISTÂNCIA

QUADRO 23 – IMPLEMENTANDO E EXECUTANDO O KNN


1 def knn(array_ordenado, n_vizinhos,indice_classe):
2 resultado = []
3 for i in range(1,n_vizinhos+1):
4 [Link](array_ordenado[i,indice_classe])
5 return max(resultado,key=[Link])
6 print("Executando o KNN")
7 print("Ao executar o método KNN para os dados a classicação
8 será:", knn(dados, 3,2))
9
FONTE: O autor

DICAS

Para acessar o código-fonte, bem como o passo a passo das etapas realizadas,
acesse o Google Colab Notebooks: [Link]
5j_98W6fRYMjvnqe0N9h_?usp=sharing.

2.2 IMPLEMENTAÇÃO COM SCIKIT-LEARN


Como viso aneriormene, a scikit-learn é uma das mais radicionais
biblioecas do Pyhon, sendo referência para implemenar sisemas que uilizam
recursos de Machine learning.

Como exemplo práico, vamos reproduzir o que foi realizado


aneriormene, quando codicamos o méodo KNN do zero, uilizando uma
base de dados sinéica, assumindo que a variável “dados” é a mesma aplicada
aneriormene.

Primeiramene, denimos quem serão os nossos aribuos de enrada


(inpu) e o róulo (a classe, o arge). Conforme o exemplo, os dados de enrada
serão o conjuno composo por salário e idade; no róulo, o aribuo que gosaríamos
de classicar é o ipo (posiivo ou negaivo). Por convenção, o conjuno de dados
de enrada (inpu) é denominado de X e o róulo (target output), de y.

89

Você também pode gostar