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 ferramenas 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 ineligência arificial, 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
arificial. Enreano, anes de aprofundarmos os conceios 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 auomaicamene. Para isso são
considerados nossos dados pessoais, os filmes que posiivamos (curimos), bem
como os dados de navegação do usuário (cookies).
Em 2009, apenas a Neflix, uma das pioneiras dessas plaaformas,
ofereceu 1 milhão de dólares para quem conseguisse otimizar seu algoritmo de
recomendação de filmes. Aé hoje, a plaaforma invese 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 ineligência arificial e machine learning. A
ineligência arificial esá reinvenando nossos produos, 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 Insiuo de Tecnologia de Massachusets (MIT),
considerado pioneiro do desenvolvimento de jogos de computador, inteligência
arificial e aprendizado de máquina. Em seu arigo, Samuel (1959) apresena um
esudo sobre algorimos de ineligência arificial que consulam 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 maemáico de ineligência arificial
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
suficiene 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
compuacional maior. Com isso, as redes neurais ressurgiram, afinal as máquinas
ficaram mais poenes. A parir dessa época, desponou 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
significaiva de aençã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 ineligência arificial (FAYYAD; PIATETSKY-SHAPIRO; SMYTH, 1996).
Por fim, foi na década de 2000 que a inerne 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 ineligência arificial descrios aneriormene.
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 previamene 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 cereza, não é segredo para você. Confira o arigo que deu
origem ao primeiro trabalho (SAMUEL, 1959), bem como originou o termo Machine learning:
hps://[Link]/sysem/files/privae/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
idenificadas.
• P: a medida de desempenho é a porcentagem de mensagens de bots
correamene 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ósicos médicos auomaizados, ê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 Ineligência Arificial muio uilizada
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
arificial, pois aprendem com dados hisóricos armazenados. Essa ecnologia uiliza
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 conhecimeno a parir dos dados. A Figura 9 mosra uma maneira
simplificada de como os algorimos 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 possibiliam uma classificação não exclusiva desses sisemas
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 resulados da execução dos algorimos 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 esruuras asronô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, muios deles semelhanes aos méodos poseriormene
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 demonsra os sisemas baseados em exemplos, que
os classificam como nunca visos por meio de exemplos similares conhecidos.
Esse tipo de sistema de aprendizado é denominado lazy (preguiçoso) e
necessia maner os exemplos na memória para classificar novos exemplos,
em oposição aos sistemas eager (gulosos), que utilizam os exemplos para
induzir o modelo, descarando-os logo após.
• Conexionista: de modo geral, essa abordagem trata das redes neurais, que
são consruções maemá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 consise de uma
população de elemenos de classificação que compeem 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, agrupameno 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
ineligência arificial.
• Os fundamentos históricos acompanham o de outras tecnologias, como a
ineligência arificial e Big Daa.
• 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 algorimos são de ineligência arificial, 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, agrupameno 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 siuações problema, desde deecçã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 enano, esse sucesso ambém araiu usuários mal-inencionados, 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 exos, desenvolvimeno de chabos. 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, agrupameno e associação.
b) ( ) Classificação, regressão, agrupameno e associação.
c) ( ) Categorização, regressão, análise e dissociação.
d) ( ) Classificação, regressão, agrupameno 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 sisemas disribuídos. A linguagem cona 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é sisemas operacionais diversos como FreeBSD, uilizado 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 plaaforma: 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 colea de dados, pré-processameno aé implemenaçã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 noebook Jupyer é uma inerface gráfica que uiliza 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
esará apo a execuar códigos dinâmicos com IPyhon. A Figura 11 mosra 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), raa-se de um serviço na nuvem grauio, que
oferece supore de processameno (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
plaaforma Google Colab. Com a uilização dessa ferramena, os processos de ensino-
aprendizagem podem se beneficiar do uso de recursos on-line, permiindo a melhoria
da produividade 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
ambiene ambém é adequado para fornecer acesso a experimenos 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 Noebook
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 mosra um exemplo da ela de cabeçalho de um documeno
Colab Notebook. Para ter um melhor aproveitamento desse conteúdo, é necessário
conecar-se à plaaforma uilizando uma cona 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-fone 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
uilização desse ipo de aplicação orna possível reornar 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
sofwares de gerenciameno de versões disponíveis no mercado, podendo-se ciar
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 uiliza reposiórios que armazenam as versões do código-fone
e, embora os repositórios possam ser feitos em servidores das empresas,
radicionalmene, são feios on-line em serviços próprios, como o GiHub.
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 “conjuno
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 conhecimeno (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:
• Deecção de perfil de clienes.
• Previsão de falhas na linha de produção.
• Predição de lucros e dividendos.
• Sugesão de produos em loja on-line.
• Previsão de falhas em equipamentos.
• Obtenção de valores que impactam na compra/venda de ações.
• Análise auomá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 enre as mais ineressanes, podendo-se ciar como exemplos:
• Reconhecimento facial.
• Detecção de objetos em vídeos.
• Reconhecimento por voz.
• Classificação de imagens.
• Idenificação de objeos.
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 uilizados documenos na forma de exo
(PDF, por exemplo). Os documenos de exo ambém são do ipo não esruurado
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 Processameno
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 (espore, políica, economia ec.).
• 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 objeivam 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 Daa-Scieniss e engenheiros de Machine learning, e promover
compeições enre 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
conjunos de dados. Você poderá codificar on-line, uilizar Jupyters e participar
de desafios uilizando 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 ambienes 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, inicialmene, em 1987, por David Aha e ouros 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 mosra 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; Atribue Informaion 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 algorimos 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 uilização na Neflix, saber o que esão
falando sobre sua marca no Twiter e deecçã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 plaaforma colaboraiva para codificação.
c) ( ) É um navegador de internet.
d) ( ) É um pora-documenos 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 sofware, levanameno
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 cliene, 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 algorimo 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 ciados, exise um fluxo de implemenação
(Figura 21) para algorimos de Machine learning. Traa-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 scrips específicos para colear 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 colea, uma série de procedimenos 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 consisenes para a execução de
um algoritmo de Machine learning.
A preparação de dados é a eapa 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, geralmene 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.
Complemenarmene, lembre-se de que você esá se ornando um cienisa
de dados e esse é o momeno de recorrer ao méodo cienífico. Especificamene,
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 idenificar é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
arigos disribuídos em dez revisas cieníficas. A Figura 22 mosra 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 pono um modelo esá funcionando correamene é 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
caracerísicas dos núcleos celulares presenes 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 ese (momeno em que se verifica se o algorimo aprendeu com os dados;
GÉRON, 2019).
Para compreender melhor como que funciona essa separação no
aprendizado, imagine-se ensinando deerminado 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 faiarmos o conjuno de dados, com 75% dos regisros para realizar
o reino e 25% para realizar os eses. A Figura 26 mosra 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 uilizar o conjuno de eses e verificar a
capacidade de generalização do algorimo, ou seja, verificar se o algorimo aprendeu
com os dados de treino. No exemplo do Dataset Breast Cancer Wisconsin, uma das
méricas de avaliação, que pode ser uilizada, é a acurácia. Traa-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 caracerísicas específicas. A eapa 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 levanameno do Garner, 58% das empresas afirmaram que
já implanaram ineligência arificial (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 esraégias de IA para oda a companhia.
Segundo o relaório da IDC, cerca de 25% dos enrevisados apresenaram
axa de falha de 50% na implanação dos sisemas, por cona da fala de alenos e
expecaivas irrealisas. Conudo, 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
denro do GCP, bem como conainers do Kubernees. “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 soliciações de crédio.
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 ferramena permiirá que os consumidores recebam qualificações para crédio
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 ferramenas 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, presidene 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 raa 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 Peronas Moorspor esá usando as capacidades de
ML para ajudar a visualizar o desempenho dos carros de corrida. Para isso, a
companhia colea 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á aproximadamene 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 imporanes”, finaliza.
Harris afirma ainda que a companhia esá consruindo algorimos 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? Anes de aerrissar na Tibco, a Mercedes-AMG Peronas usou um
sofware de visualização caseiro que se mosrou ineficiene 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 suficienes para a equipe conserar, resulando em pagamenos
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, complemenando-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,
é efeuada a colea dos exos, assim como o pré-processameno, compondo a
eapa de ETL. Finalmene, 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 daa do regisro e é efeuada sua formaaçã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 pergunas em poruguê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 parir dos dados, na qual, enre suas écnicas, se desaca 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, permiindo realizar, enre muias 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 quano mais dados êm, melhor ficam seus resulados.
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 deecion: an applicaion 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 Adminisração). Universidade de Brasília, Brasília,
2016. Disponível em: htps://reposi[Link]/bisream/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 wih Google, ou. 2017. Disponível em: htps://www.hinkwihgoo-
[Link]/inl/p-br/adverising-channels/novas-ecnologias/ineligencia-arificial-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/pyhon-10-moivos-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 daa 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 Sana Caarina, Florianópolis, 2019.
Disponível em: htps://reposi[Link]/bisream/handle/123456789/200137/
PFC%20Vio%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. Cenro 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:
Inernaional Conference on arificial inelligence and embedded sysems
(ICAIES’2012). Proceedings […] Singapore, jul. 2012.
MALL, R. et al. Represenaive subses for big daa learning using k-NN graphs.
In: 2014 IEEE INTERNATIONAL CONFERENCE ON BIG DATA. Proceedings
[…] IEEE, 2014. p. 37-42. Disponível em: htps://[Link]/samp/samp.
jsp?p=&arnumber=7004210. Acesso em: 2 ou. 2020.
MENEZES, S. et al. Mineração em grandes massas de dados utilizando hadoop
mapreduce e algorimos bio-inspirados: Uma revisão sisemá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. Conceios 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]/conen/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-Daa-Daa-Mining. Acesso em: 20 abr. 2020.
ROSA, A. L. da. Classificação de imagens de frutas utilizando aprendizado de
máquina. 2019, 74f. Monografia. Deparameno de Engenharia Elérica e Elerô-
nica, Universidade Federal de Sana Caarina, Florianópolis, 2019. Disponível
em: htps://reposi[Link]/bisream/handle/123456789/197598/TCC-Ayron-
-[Link]?sequence=1&isAllowed=y. Acesso em: 2 ou. 2020.
56
ROSENBLATT, F. The perceptron, a perceiving and recognizing automaton.
Projec Para. Cornell Aeronauical Laboraory, 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]/sysem/files/privae/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. Amserdam: 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/Disseracao_RLSan-
ge_2011_Revisada.pdf. Acesso em: 5 ou. 2020.
SU, X. et al. Automated machine learning based on radiomics features predicts
H3 K27M muaion in midline gliomas of he brain. Neuro-oncology, v. 22, n. 3,
p. 393-401, 2020. Disponível em: htps://[Link]/neuro-oncology/ari-
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://revisafae.
[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]/digial-library/mdownlo-
ad/an%C3%A1lise-do-gihub-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:
• inroduzir os conceios fundamenais sobre a classicação;
• apresenar as ferramenas complemenares para a aplicação de algorimos;
• exemplicar onde os méodos de classicação podem ser aplicados;
• explanar conceios maemáicos da implemenação de méodos baseados
em disância;
• implemenar méodos baseados em disância, uilizando a biblioeca
scikit-learn;
• explanar conceios probabilísicos da implemenação de méodos
fundamenados em probabilidade;
• implemenar méodos probabilísicos uilizando a biblioeca scikit-learn;
• apresenar demais méodos de classicação.
PLANO DE ESTUDOS
Esa unidade esá dividida em quaro ópicos. No decorrer da unidade, você
enconrará auoaividades com o objeivo de reforçar o coneúdo apresenado.
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 classicação é uma arefa que em como
objeivo aprender com os dados e aribuir róulos (classes). A classicação é
uma tarefa de Machine learning que tem como característica o aprendizado
supervisionado, no qual é aribuído um róulo (classe) aos objeos com base nos
aribuos (HARRISON, 2020).
Em sua denição, um problema de classicação, supervisionado, é um
programa de compuador que recebe amosras (enradas) e resposas esperadas
(saídas) para elas, e gera uma hipóese genérica capaz de mapear as enradas para
as saídas correas (VON LOCHER, 2015).
Os rótulos contidos em tal conjunto correspondem a classes ou
valores obidos por alguma função desconhecida. Desse modo, um algorimo
de classicação buscará produzir um classicador capaz de generalizar as
informações conidas no conjuno de reinameno, com a nalidade de classicar,
poseriormene, objeos cujos róulos sejam desconhecidos.
2 VISÃO GERAL DA CLASSIFICAÇÃO
Compreender a classicação, bem como o signicado de méodo
supervisionado, vai além de compreender seus méodos, mas, primeiramene,
raa-se de compreender os dados sob os quais você irá auar.
A erminologia “supervisionado” refere-se ao fao de que exise uma
supervisão. Isso signica que há um conjuno de dados previamene roulado
(classicado) e que, por meio desses dados, será possível vericar se o méodo
funciona. Essa capacidade de vericar asserividade do méodo sem a inervenção
humana é a supervisão.
A classicação, ambém denominada de caegorização, é a aividade de
roular dados com suas respecivas caegorias emáicas, a parir de um conjuno de
dados predenidos. Os méodos de classicação podem ser de aprendizado on-line
ou o-line, de acordo com a capacidade de consruir e aualizar do classicador.
61
UNIDADE 2 — CLASSIFICAÇÃO
Os méodos de aprendizado on-line podem aualizar o modelo de
predição (ou classicador) a cada novo documeno, de maneira incremenal, sem
necessidade de refazer o reinameno com odos os documenos. Já os méodos de
aprendizado o-line, o modelo precisa ser recalculado a cada nova amosra, com
odos os documenos do reinameno, incluindo a nova amosra.
Para compreender a classicação, analisaremos um dos principais
problemas da lieraura: a classicação da or íris ou íris de Fisher (FISHER,
1936). Esse é um conjuno de dados, desenvolvido pelo biólogo briânico Ronald
Fischer, que permie classicar uma or denominada íris em: versicolor, virginica
ou versicolor, endo como base a largura e alura da péala e sépala.
FIGURA 1 – CATEGORIAS DA FLOR ÍRIS
FONTE: <[Link] Acesso em: 3 nov. 2020.
Agora, vamos compreender o comporameno dos dados, no que se refere
à arefa de classicação. Perceba que os primeiros aribuos são as enradas (alura
da sépala, largura da sépala, alura da péala e largura da péala) e, por úlimo, o
aribuo Species, que coném as classes de cada linha.
FIGURA 2 – DATASET DA FLOR IRIS
FONTE: O autor
É possível visualizar o conjuno de dados Iris Daase em sua máquina,
por meio do comando apresenado 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 classicação é uma arefa de aprendizado de máquina que gera um
algorimo predior com base em dados previamene caegorizados. No esudo
dos cenários de sua aplicação, serão descrios os dois ipos de arefas: classicação
binária e classicação muliclasse.
Enre as arefas de classicação, exise a arefa de classificação binária e,
como o nome sugere, é uma arefa que irá classicar os dados com base em duas
classes. Segundo Oliveira (2016), é o ao de dividir as observações em um conjuno
de dados em dois grupos. Em ouras palavras, envolve aribuir uma variável
dependene, consisindo em apenas duas caegorias à observação baseada na
covariável. Em um cenário simples, pode ser que os pesquisadores classiquem
as ransações de carão de crédio como legíimas ou fraudulenas, de acordo com
as seguines informações: o inervalo de empo enre os usos do carão de crédio,
a faixa de valores usada em comparação com o mês anerior, carões de crédio
muio usados, e assim por diane. Para esse exemplo, a classicação é dada por
“Sim” ou “Não”, com base na exisência da caracerísica de ineresse em um
conjuno de variáveis explicaivas.
A enrada de um algorimo de classicação é um conjuno de exemplos
roulados, em que cada róulo é um número ineiro de 0 ou 1, represenando uma
das duas possíveis classes. Segundo Microsof (2019), a saída de um algorimo de
classicação binária é um classicador, que pode ser usado para prever a classe
de novas insâncias sem róulo, na qual cenários de classicação binária incluem:
• reconhecer como “posiivo” ou “negaivo”;
• diagnosicar se um paciene em deerminada doença;
• omar a decisão de marcar um e-mail como spam ou não;
• deerminar se uma foo coném um iem especíco ou não (por exemplo, um
cão ou fruas).
Para Almeida (2010), muios dos problemas de classicação envolvem mais
do que duas classes, o que se designa como classificação multiclasse. Podemos
facilmene pensar no caso do esado de saúde de um paciene, o qual pode ser
denido, por exemplo, com as classes “mau”, “razoável”, “bom”, “muio bom”.
Nesse caso, preende-se classicar o esado de saúde do paciene em uma das classes.
63
UNIDADE 2 — CLASSIFICAÇÃO
Assim, as classicações binária e muliclasse diferem no número de classes
exisenes para a classicação: na binária, são denidas exaamene duas classes,
enquano, na muliclasse, são denidas 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 Daa e da aplicação de Machine
learning nos mais diversos cenários de supore à decisão, ais recursos começaram
ser explorados cada vez mais em diversas aplicações, e não somene em cenários
de supore à decisão.
A parir dessa expansão do emprego de écnicas de Machine learning, as
linguagens de programação passaram a uilizar recursos para sua implemenação.
A linguagem Java, por exemplo, cona com a biblioeca Java-ML (Java Machine
Learning; ABEEL; VAN DE PEER; SAEYS, 2009), que é uma coleção de algorimos
de aprendizado de máquina com uma interface comum para cada tipo de
algorimo. O Java-ML é uma biblioeca desinada a engenheiros de sofware e
programadores, porano, sem inerface gráca do uilizador ou usuário (GUI,
do inglês Graphical User Interface), mas com inerfaces claras e implemenações de
referência para algorimos descrios na lieraura cieníca, com um código-fone
bem documenado e exemplos de código e uoriais.
QUADRO 2 – EXEMPLO DE UTILIZAÇÃO DO JAVA-ML
1 Dataset data = [Link](new File("[Link]"),
4, ",");
2 Classier 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 ambienes de programação Microsof, ambém houve inovação no
desenvolvimeno de aplicações de Machine learning. Já em programação DOT.
NET, a biblioeca uilizada é o [Link], um conjuno de recursos para colea, pré-
processameno de dados e, principalmene, aplicação de algorimos 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 ocial,
existe um conteúdo completo de como utilizar essa biblioteca. Acesse: [Link]
[Link]/apps/machinelearning-ai/ml-dotnet.
São muias as opções de linguagens de programação, no que se refere ao
desenvolvimeno de aplicações inegradas a méodos de Machine learning. Enre
elas, o Pyhon em um desaque especial. Para muios pesquisadores, Pyhon é
uma ferramena de primeira classe, principalmene por causa de suas biblioecas
para armazenar, manipular e ober informações a parir de dados, sendo um
conjuno compleo para prossionais de ciência de dados (VANDERPLAS, 2016).
Dessa maneira, vamos conhecer os principais recursos dessa linguagem, a m de
auxiliar na implemenação de algorimos de Machine learning.
4.1 LISTAS
Na linguagem de programação Pyhon, o objeo lisa é a sequência mais
geral fornecida. As lisas são coleções ordenadas de objeos de ipo arbirário e não
êm amanho xo (LUTZ, 2013). Também são muáveis, podem ser modicadas
no local, aribuindo deslocamenos, bem como uma variedade de chamadas de
méodo de lisa.
65
UNIDADE 2 — CLASSIFICAÇÃO
Uma lisa é uma esruura de dados que coném uma coleção ordenada
de iens, ou seja, você pode armazenar uma sequência de iens em uma lisa. Para
abrir um dataset no formao CSV (comma separated values) e transformá-lo em uma
lisa, conra o Quadro 4.
QUADRO 4 – TRABALHANDO COM LISTAS
1 import csv
2 lista1 = []
3 lista2 = []
4 with open([Link]') as csvle:
5 readCSV = [Link](csvle, 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 pacoe fundamenal para a compuação cieníca em Pyhon.
É uma biblioeca Pyhon que fornece um objeo de mariz mulidimensional,
vários objetos derivados (como matrizes e matrizes mascaradas) e uma variedade
de roinas para operações rápidas em marizes (NASCIMENTO, 2019). Segundo
Bresser (2012), ais roinas incluem manipulação maemáica, lógica, de formas,
classicação, seleção, enrada/saída, ransformadas discreas de Fourier, álgebra
linear básica, operações esaísicas básicas, simulação aleaória, e muio mais.
66
TÓPICO 1 — INTRODUÇÃO ÀS TAREFAS DE CLASSIFICAÇÃO
Um exemplo de como acessar um dataset uilizando a biblioeca Numpy
pode ser viso no Quadro 5. Ressala-se que a uilização de al biblioeca não se
limia à criação de arrays, mas, sim, ao uso de um conjuno 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 pacoes e ambiene para desenvolvimeno
de “daa science” que uiliza as linguagens Pyhon e R. A plaaforma cona com
uma coleção de mais de 1.500 pacoes de código abero. O Anaconda é grauio e
fácil de insalar, e oferece supore grauio à comunidade (SCHLICHTING, 2020).
No caso do Colab Noebook, é necessário baixar o pacoe e insalá-lo via linha
de comando; para isso, uilize o bloco de comandos conforme mosra 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 --prex /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 ocial.
Conra 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 exensão responsável por adicionar
ferramenas para oimização, funções especiais, processameno de imagens,
inegração numérica, resolução de equações diferenciais ordinárias, além de
possibiliar a realização de operações com os arranjos inroduzidos pelo NumPy.
Em cenários de Machine learning e na preparação de dados, a combinação
do SciPy com NumPy possibilia poencializar a aplicação do Pyhon, além de
exibilidade para os desenvolvedores, uma vez que a biblioeca foi desenvolvida
para maemáicos, cienisas 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 Pyhon que inegra uma ampla gama de algorimos
de aprendizado de máquina de úlima geração para problemas supervisionados e
não supervisionados de média escala. Tal pacoe se concenra em levar o aprendizado
de máquina para não especialisas, uilizando uma linguagem de alo nível de uso
geral. A ênfase é colocada na facilidade de uso, desempenho, documenação e
consisência da Inerface de Programação de Aplicações (API, do inglês Application
Programming Interface; PEDREGOSA et al., 2011).
Segundo Oliveira, Muniz e Farrapo (2020), a biblioeca para auxílio em
aprendizagem de máquina scikit-learn é um módulo que inegra uma vasa
quanidade de algorimos de Machine learning de úlima geração para problemas
supervisionados ou não. Em suma, scikit-learn fornece um ambiente rico para
implemenação de algorimos de aprendizagem de máquina, manendo uma
inerface fácil para manipulação. Pode-se dizer que isso é reexo da necessidade
da análise de dados esaísicos por não especialisas nas indúsrias de sofware,
bem como nos campos exernos à 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 classicação, ou seja, a parir delas, é possível
vericar a axa de acero desses méodos.
Segundo Rodrigues (2019), para enender melhor cada mérica, é
necessário, primeiramene, enender alguns conceios. Uma mariz de confusão
é uma abela que indica os erros e os aceros do modelo, comparando com o
resulado esperado (ou eiqueas/labels). A Figura 3 apresena um exemplo de
uma mariz, bem como o signicado de seus elemenos na sequência.
69
UNIDADE 2 — CLASSIFICAÇÃO
FIGURA 3 – MATRIZ DE CONFUSÃO
FONTE: <[Link]
Acesso em: 3 nov. 2020.
A mariz de confusão é a forma de represenação da qualidade obida
de um méodo de classicação, sendo expressa por meio da correlação de
informações dos dados de referência (compreendidos como verdadeiros) com
os dados classicados. Essa roina ambém pode ser expressa pela análise das
amosras de reinameno associada aos dados classicados (PRINA; TRENTIN,
2015). Os elemenos da mariz de confusão represenam os seguines:
• verdadeiros posiivos: classicação correa da classe posiiva;
• falsos-negaivos: erro em que o modelo previu a classe negaiva quando o
valor real era da classe posiiva;
• falsos-positivos: erro em que o modelo previu a classe positiva quando o valor
real era da classe negaiva;
• verdadeiros negaivos: classicação correa da classe negaiva.
Uilizando a mariz de confusão, é possível exrair as principais méricas
de avaliação de modelos de classicaçã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
Enre as méricas, desaca-se a acurácia, que indica a quanidade de exemplos
que foram, de fao, classicados correamene, independenemene da classe. Por
exemplo, se emos 100 amosras e 90 delas foram classicadas correamene, isso
signica que a acurácia foi de 90%. A seguir, é possível observar a fórmula da
acurácia (Figura 5) e como uilizar 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_classicado = [0, 2, 1, 3]
3 y_original = [0, 1, 2, 3]
4 accuracy_score(y_original, y_classicado)
FONTE: O autor
A precisão é a porcenagem de amosras classicadas como perencenes
à classe posiiva e que realmene fazem pare de al classe (SILVA, 2017). A seguir,
veremos a fórmula da precisão (Figura 6) e como uilizar 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_classicado = [0, 2, 1, 3]
3 y_original = [0, 1, 2, 3]
4 precision_score(y_original, y_classicado, average='macro'))
FONTE: O autor
71
UNIDADE 2 — CLASSIFICAÇÃO
A revocação, ambém chamada de sensibilidade ou recall, é uma mérica
que, enre odas as siuações de classe posiiva como valor esperado, indica
quanas esão correas (RODRIGUES, 2019). A seguir, veremos a fórmula da
revocação (Figura 7) e como uilizar 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_classicado = [0, 2, 1, 3]
3 y_original = [0, 1, 2, 3]
4 recall_score(y_original, y_classicado, average='macro'))
FONTE: O autor
72
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu que:
• A classicação é a aividade de roular dados com suas respecivas caegorias
emáicas, a parir de um conjuno de dados predenidos.
• A arefa de classicação esá presene em diversos cenários do coidiano.
• Os méodos de classicação podem aprender on-line ou o-line.
• O aprendizado on-line pode aualizar o modelo de predição (ou classicador)
a cada novo documeno de maneira incremenal.
• Nos méodos de aprendizado o-line, o modelo precisa ser recalculado a cada
nova amosra, com odos os documenos do reinameno.
• Problemas de classicação com classes são denominados binários.
• Problemas de classicação com duas ou mais classes são denominados
muliclasse.
• Exise um conjuno de biblioecas que pode auxiliar no pré-processameno de
dados e implemenação de algorimos de classicação.
• As méricas de avaliação auxiliam na avaliação dos modelos.
73
AUTOATIVIDADE
1 Nas mais diversas áreas do conhecimeno, os sisemas de Machine learning
podem ajudar a descobrir padrões, realizar deerminadas arefas, por
meio da generalização de casos e da uilização de dados. Com relação à
classicação, assinale a alernaiva 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 classicação permiem roular auomaicamene novos
regisros com base em hisórico de dados. Supondo que exisa um conjuno
de dados que possa receber róulos 0-negaivos ou 1-posiivos, qual ipo de
arefa de classicação que será realizada?
a) ( ) Classicação binária.
b) ( ) Classicação unária.
c) ( ) Classicação ernária.
d) ( ) Classicação muliclasse.
3 A caegorização de exos de noícias é a arefa de roular uma deerminada
noícia, com base em um conjuno de exos previamene roulado.
Considerando que, em uma base de dados, exisam 35 caegorias de
noícias, qual ipo de arefa de classicação será realizado?
a) ( ) Classicação muliclasse.
b) ( ) Classicação binária.
c) ( ) Classicação unária.
d) ( ) Classicação ernária.
4 O Pyhon é uma linguagem de alo nível, inerpreada, orienada a objeos
com uma semânica dinâmica, amplamene uilizada em projeos de
Machine learning. Sobre a uilização do Pyhon, assinale a biblioeca que
implemena os méodos de Machine learning:
a) ( ) Scikit-learn.
b) ( ) Pandas.
c) ( ) Malab.
d) ( ) PIP.
74
5 Pyhon é uma linguagem básica, simples, uilizada em diversos cenários
da compuação, com desaque para projeos de Machine learning. Sobre o
Pyhon, assinale qual biblioeca é uilizada para a visualização de dados:
a) ( ) MaploLib.
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 classicação baseados em disância consideram
proximidade enre dados em relação ao espaço caresiano. Esse ipo de méodo
considera que dados similares endem a esar em uma mesma região no espaço
de enrada.
Segundo Carvalho (2012), esse ipo de méodo é considerado do ipo
aprendizado preguiçoso, pois só olha os dados de reinameno quando precisa
classicar um novo objeo. A parir de um novo objeo, de suas caracerísicas,
disposas no espaço caresiano, um novo objeo será classicado. Por exemplo, ao
enrar um novo objeo que anda e lae como um cachorro, enão provavelmene é
um cachorro (Figura 8).
FIGURA 8 – CLASSIFICAÇÃO POR DISTÂNCIA
FONTE: <[Link] Acesso em: 3 nov. 2020.
Para Soldi (2013), quando objeos são agrupados, a proximidade é
usualmene indicada por uma espécie de disância. Por ouro lado, as variáveis
são usualmene agrupadas com base nos coecienes de correlação ou ouras
medidas de associação. Essas medidas podem ser de:
• Similaridade: quano maior o valor observado, mais parecidos são os objeos.
Por exemplo, o coeciene de correlação.
• Dissimilaridade: quano maior o valor observado, menos parecidos (mais
dissimilares) serão os objeos.
77
UNIDADE 2 — CLASSIFICAÇÃO
2 MÉTODOS BASEADOS EM DISTÂNCIA
A disância euclidiana (Figura 9) é uma das medidas de dissimilaridade
enre comunidades mais uilizadas na práica. Quano menor o valor da disância
euclidiana enre dois objeos, mais próximas elas se apresenam em ermos de
parâmeros quaniaivos por classe; logo, quano menor a disância euclidiana,
maior a eciência do procedimeno (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 enre dois objeos (x e y), dada pela equação,
na qual i represena as posições no pono caresiano de cada objeo (x e y) e n
é número de ocorrências. A seguir, veremos a implemenação da disância
euclidiana uilizando Pyhon (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
Complemenarmene à disância euclidiana, exisem disâncias que podem
ser uilizadas na implemenação de algorimos 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, é apresenada 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, Seinbach e Kumar (2016), a disância de Minkowski é uma
generalização da disância euclidiana, em que r é um parâmero, n é o número
de dimensões (aribuos) e pk e qk são, respecivamene, os k-ésimos aribuos
(componenes) dos objeos de dados p e q.
Na disância de Minkowski, aproveiam-se os recursos do pacoe Scipy
para realizar sua implemenação; nesse caso, poderia ser implemenado do zero,
al como a disância euclidiana. Nessa implemenação, os primeiros aribuos são
os veores x e y, e o úlimo parâmero é o coeciene 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 funcionameno das
disâncias, vamos enender o funcionameno 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, roula um deerminado objeo
conforme os objeos mais próximos. O número de objeos a serem agrupados são
os K vizinhos mais próximos.
A ideia básica do KNN é deerminar a caegoria de um deerminado
objeo com base em similaridades enre os documenos no espaço. Para calcular
a similaridade, usa-se uma mérica de disância. O méodo KNN percorre odo
o conjuno de dados, compuando a disância de cada elemeno em relação ao
documeno que esá sendo consulado. Uma vez calculadas as disâncias, a caegoria
será deerminada pelos K documenos mais próximos ao documeno consulado.
79
UNIDADE 2 — CLASSIFICAÇÃO
Segundo Locher (2015), a eapa de classicação envolve calcular a
dissimilaridade de uma nova amosra para odas as amosras conhecidas e
classicá-la com a caegoria mais frequene enre as “k” amosras mais próximas
a ela. O méodo KNN não gera um modelo a parir das amosras, mas consula
odas para cada nova classicação. Além disso, o algorimo KNN é basane
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 muio o espaço veorial e o plano
caresiano, primeiramene, precisamos compreender o funcionameno desses
elemenos, uilizando a linguagem de programação.
A visualização dos dados é de grande imporância para compreender o
cenário, bem como seu comporameno; anal, com ela, conseguimos observar os
dados e compreendê-los, uma vez que as pessoas êm muio mais facilidade para
capar e processar comunicações visuais (BIGDATACORP, 2019).
Para isso, os dados são disposos por meio de grácos que compõem
o plano caresiano e os pares ordenados. Um sisema de eixos orogonais é
consiuído por dois eixos perpendiculares, Ox e Oy, que êm a mesma origem.
A parir desses eixos, emos o plano caresiano, cujos eixos orogonais o
dividem em quaro quadranes. Para idenicar um par ordenado, indicamos por
um pono no plano caresiano, conforme gura gerada a parir do código-fone,
onde o pono 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 lisa com os valores que serão uilizados no decorrer
do exemplo. Como comando range no inervalo indicado, o nosso conjuno de
valores será de -10 aé 10 para que possamos er a percepção de como a função irá
se comporar em um conjuno negaivo e posiivo.
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 imporação da biblioeca Maplolib,
durane o código, oda vez que for uilizado o objeo pl, será um objeo do ipo
da biblioeca gráca. Ao uilizar pl.plo (valores), o conjuno de regisros será
mosrado no gráco.
FIGURA 12 – PLOTANDO UM CONJUNTO DE DADOS COM MATPLOTLIB
FONTE: O autor
81
UNIDADE 2 — CLASSIFICAÇÃO
Com o conjuno x, que represena os valores que serão mosrados no eixo x,
codicaremos a função y = f(x). Para denir uma função em Pyhon, uilizaremos
o def(). Em um exemplo simples, criaremos a função f(x) = x + 1. Logo em seguida,
chamando a função e passando parâmeros 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 conjuno de dados x e o conjuno f(x)
represenado por y, é possível ploar os valores e y em função de x. Como a pare
maemáica já foi realizada por meio da função codicada, basa passar os valores
para a função plo().
FIGURA 13 – PLOTANDO DE VALORES DE X EM F(X)
FONTE: O autor
Denido um padrão, vamos reproduzi-lo algumas vezes para faciliar o
seu enendimeno sobre o ema. Para focar na consrução maemáica, criaremos
uma função no Pyhon 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_graco(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_graco(x,f(x))
FONTE: O autor
Sabe-se que a disância euclidiana é a medida de disância mais
frequenemene empregada quando odas as variáveis são quaniaivas; é
uilizada para calcular medidas especícas, além de disância euclidiana simples
e disância euclidiana quadráica ou absolua, a qual consise na soma dos
quadrados das diferenças, sem calcular a raiz quadrada (SEIDEL et al., 2008).
Para enender melhor a disância euclidiana e a sua aplicação no conceio
de um algorimo de Machine learning, primeiramene, vamos compreender o que
ela signica. Considere os ponos 1,2 em vermelho e o pono 3,6. O objeivo da
aplicação de disâncias é uilizar as coordenadas x e y de cada um desses ponos
e reornar 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
Noa-se que, no exemplo do Quadro 17, cada pono é composo 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,
obemos a disância apresenada na Figura 14.
FIGURA 14 – DISTÂNCIA EUCLIDIANA ENTRE DOIS PONTOS
FONTE: O autor
Anes de resolver uilizando linguagem de programação, primeiramene,
deve-se calcular passo a passo a disância euclidiana enre os ponos p e q. Para
isso, uilizaremos a fórmula deduzida para duas dimensões e subsiuiremos 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-fone (Quadro 18) mosra rês elemenos. A Figura 16 apresena os ponos
p (em vermelho) e q (em azul) e a disância enre os dois ponos (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
Durane a implemenação do KNN, qualquer disância pode ser
uilizada, como a disância Manhaan e Minkowski. No enano, agora
que já implemenamos um algorimo para calcular a disância euclidiana,
prosseguiremos para o méodo dos K-vizinhos mais próximos, uilizando essa
disância. O méodo KNN usará a disância enre objeos para classicar uma
nova enrada sob a qual não se sabe a classe. Para isso, considera os objeos 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 ponos. Para car mais clara a
aplicação, vamos criar um conjuno de dados sinéico e rabalhar nele. O conjuno
de dados (Quadro 19) represena uma base de dados com pessoas, que, a parir
de sua renda familiar e idade, receberam crédios pessoais. A primeira coluna
represena a idade, a segunda mosra a renda mensal e a erceira, que pode ser
chamada de classe ou róulo, deermina se o crédio 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 conjuno de dados, exploraremos o conceio de pares
ordenados, salário e idade, e uilizando a biblioeca Maplolib vamos ploar, no
gráco, cada pono que represena o crédio negaivo ou posiivo.
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, aribuindo um ipo de
visualização para cada uma delas. Ao reproduzir os exemplos, que aeno aos
comenários para compreender o que cada recho do código esá execuando.
O pono verde (salário, idade) mosrado na Figura 18 (40,2500) não possui
caegoria, ou seja, não se sabe se é posiivo ou negaivo. Ao uilizar o méodo dos
vizinhos mais próximos, é possível descobrir a qual classe o pono deve perencer,
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 algorimo em si, começando com o
processo fundamenal 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
momeno, deve-se calcular a disância para o novo objeo para com os demais.
Oura abordagem que poderia ser realizada seria criar um array de disâncias,
indicando a disância de cada objeo 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 momeno de aplicar
o algorimo que será o responsável por realizar a classicaçã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 classicaçã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 viso aneriormene, a scikit-learn é uma das mais radicionais
biblioecas do Pyhon, sendo referência para implemenar sisemas que uilizam
recursos de Machine learning.
Como exemplo práico, vamos reproduzir o que foi realizado
aneriormene, quando codicamos o méodo KNN do zero, uilizando uma
base de dados sinéica, assumindo que a variável “dados” é a mesma aplicada
aneriormene.
Primeiramene, denimos quem serão os nossos aribuos de enrada
(inpu) e o róulo (a classe, o arge). Conforme o exemplo, os dados de enrada
serão o conjuno composo por salário e idade; no róulo, o aribuo que gosaríamos
de classicar é o ipo (posiivo ou negaivo). Por convenção, o conjuno de dados
de enrada (inpu) é denominado de X e o róulo (target output), de y.
89