• Nenhum resultado encontrado

Machine learning

N/A
N/A
Protected

Academic year: 2021

Share "Machine learning"

Copied!
51
0
0

Texto

(1)

Guia de estudos

Guia de estudos

Data Science 

Data Science 

Machine

Machine

Learning

Learning

Neuron/USP

Neuron/USP

(2)

FACEBOOK

FACEBOOK..COCOMM /  / NEURONUSPNEURONUSP

Este material, em conjunto com os Notebooks do Jupyter que o acompanham, é de propriedade do Este material, em conjunto com os Notebooks do Jupyter que o acompanham, é de propriedade do grupo Neuron/USP e, legalmente, não pode ser reproduzido para fins comerciais (sujeito a processos grupo Neuron/USP e, legalmente, não pode ser reproduzido para fins comerciais (sujeito a processos  judiciais). Qualquer dúvida ou sugestão entre em contato conosco pela nossa página do Facebook ou  judiciais). Qualquer dúvida ou sugestão entre em contato conosco pela nossa página do Facebook ou

e-mail:

e-mail: neuron.conteudo@gmail.com neuron.conteudo@gmail.com..

Autores: Leonardo Ernesto, Samuel Henrique, Felipe Maia

Autores: Leonardo Ernesto, Samuel Henrique, Felipe Maia Polo e Matheus Faleiros.Polo e Matheus Faleiros.

 Edição:

(3)

Sumário

Sumário

1

1

  Introdução

  Introdução

. . .

. . .

5

5

1.1

1.1

O

O grupo

grupo

55

1.2

1.2

O

O conteúdo

conteúdo

55

1.3

1.3

Os

Os autores

autores

66

1.4

1.4

Gestão

Gestão 2018

2018

88

2

2

Introdução

Introdução

ao

ao

Aprendizado

Aprendizado

de

de

Máquina

Máquina

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

9

9

2.1

2.1

Tipos

Tipos de

de Aprendizado

Aprendizado de

de Máquina

Máquina

99

2.2

2.2

O

O Aprendizado

Aprendizado Não

Não Supervisionado

Supervisionado

99

2.2.1

2.2.1 Métodos Métodos de de Aprendizado Aprendizado Não Não SupervisionadoSupervisionado . . . 99 2.2.2

2.2.2 Clusterização Clusterização HierárquicaHierárquica . . .  . . . . . . 1010 2.2.3

2.2.3 Métodos Métodos de de ParticionamentoParticionamento . . . 1313 2.2.4

2.2.4 Principal Principal Components Components Analysis Analysis  - PCA - PCA . . . 1515 2.2.5

2.2.5 Materiais Materiais complementares complementares para para Aprendizado Aprendizado Não SNão Supervisionadoupervisionado . . . 1616

2.3

2.3

O

O Aprendizado

Aprendizado Supervisionado

Supervisionado

16

16

2.3.1

2.3.1 Introdução Introdução às às Árvores Árvores de Dde Decisãoecisão . . . 1717 2.3.2

2.3.2 Introdução Introdução ao ao Random Random ForestForest . . . 1818

3

3

Aprendizado

Aprendizado

de

de

Máquina

Máquina

Supervisionado

Supervisionado

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

21

21

3.1

3.1

Modelos

Modelos de

de Regressão

Regressão

21

21

3.1.1

3.1.1 Regressão Regressão LinearLinear . . . 2121 3.1.2

3.1.2 Árvore Árvore de de RegressãoRegressão . . . 2626 3.1.3

(4)

3.1.4

3.1.4 Como avaComo avaliar a liar a performance performance de modelos de modelos de regressãde regressão?o? . . . 2727

3.2

3.2

Modelos

Modelos de

de Classificação

Classificação

28

28

3.2.1

3.2.1 Árvores Árvores de de ClassificaçãClassificaçãoo  . . .  . . . . . . 2828 3.2.2

3.2.2 Random Random ForestForest . . .  . . . 2929 3.2.3

3.2.3 Naive Naive BayesBayes . . . 2929 3.2.4

3.2.4 K-Vizinhos K-Vizinhos Próximos Próximos (KNN)(KNN) . . . 3232 3.2.5

3.2.5 Máquina Máquina de de vetores vetores de de suportesuporte . . . 3434 3.2.6

3.2.6   Perceptron  Perceptron . . .  . . . . . . 3535 3.2.7

3.2.7 Regressão Regressão LogísticaLogística . . . 3737 3.2.8

3.2.8 Como avaComo avaliar a liar a performance performance de modelos de modelos de classifide classificação?cação? . . . 3939 3.2.9

3.2.9 Materiais Materiais ComplementaresComplementares . . .  . . . . . . 4040

4

4

Redes

Redes

Neurais

Neurais

Artificiais

Artificiais

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

.

.

41

41

4.1

4.1

Redes

Redes Neurais

Neurais

41

41

4.2

4.2   Perceptron

  Perceptron

43

43

4.3

4.3

Multilayer

Multilayer Perceptron

Perceptron

44

44

4.4

4.4

Deep

Deep Learning

Learning

45

45

4.4.1

4.4.1 Redes Redes Neurais Neurais ConvoluciConvolucionaisonais . . . 4646 4.4.2

(5)

1. Introdução

1. Introdução

1.1

1.1

O

O grupo

grupo

O grupo Neuron surge com o principal intuito de cobrir um

O grupo Neuron surge com o principal intuito de cobrir um gap gap existente na realidade dos brasi- existente na realidade dos

brasi-leiros e até mesmo das principais universidades brasileiras: o estudo, discussão e desenvolvimentos leiros e até mesmo das principais universidades brasileiras: o estudo, discussão e desenvolvimentos de projetos relacionados ao

de projetos relacionados ao Data Science Data Science, que engloba programação, análise de dados e , que engloba programação, análise de dados e o empregoo emprego

das tecnologias de Aprendizado de Máquina com fins práticos ligados tanto à pesquisa quanto aos das tecnologias de Aprendizado de Máquina com fins práticos ligados tanto à pesquisa quanto aos negócios. Como atividade principal, o grupo Neuron abrigará um grupo de estudos em

negócios. Como atividade principal, o grupo Neuron abrigará um grupo de estudos em Data Science Data Science

a partir do

a partir do ano de 2018 localizado no campus da ano de 2018 localizado no campus da UniversidadUniversidade de São e de São Paulo (USP) em Ribeirão Preto,Paulo (USP) em Ribeirão Preto, São Paulo. No que tange às atividades extras, traremos periodicamente profissionais e estudiosos São Paulo. No que tange às atividades extras, traremos periodicamente profissionais e estudiosos da área para conversar com nossos membros e daremos apoio a alunos que queiram desenvolver da área para conversar com nossos membros e daremos apoio a alunos que queiram desenvolver projetos próprios. Além disso, fechamos parceria com o grupo HAIT, mais importante grupo de projetos próprios. Além disso, fechamos parceria com o grupo HAIT, mais importante grupo de estudos em Inteligência Artificial formado por alunos das melhores universidades japonesas. Essa estudos em Inteligência Artificial formado por alunos das melhores universidades japonesas. Essa parceria possibilitará grande troca de experiência e

parceria possibilitará grande troca de experiência e networking networking entre os membros dos dois grupos, entre os membros dos dois grupos,

sendo que o desenvolvimento de projetos entre alunos de diferentes nacionalidades será o ponto alto. sendo que o desenvolvimento de projetos entre alunos de diferentes nacionalidades será o ponto alto. Espero que aprovei

Espero que aproveite seu tempo no Neuron. te seu tempo no Neuron. Grande abraço,Grande abraço,

Felipe Maia Polo - Presidente 2018 Felipe Maia Polo - Presidente 2018

1.2

1.2

O

O conteúdo

conteúdo

O conteúdo do Neuron foi desenvolvido com a finalidade de maximizar o seu aprendizado em O conteúdo do Neuron foi desenvolvido com a finalidade de maximizar o seu aprendizado em

 Data Science

 Data Science, utilizando a linguagem de programação Python com o enfoque em Aprendizado de, utilizando a linguagem de programação Python com o enfoque em Aprendizado de

Máquina. Os

Máquina. Os assuntos que serão abordados foram dividassuntos que serão abordados foram divididos em quatro grandes tópicos: idos em quatro grandes tópicos: IntroduçãoIntrodução a Programação em Python, Fundamentos de Matemática,

a Programação em Python, Fundamentos de Matemática, Machine Learning Machine Learning ee Deep Learning Deep Learning..

Esses tópicos serão divididos em subtópicos, para melhor explicação dos mesmos. Os conteúdos Esses tópicos serão divididos em subtópicos, para melhor explicação dos mesmos. Os conteúdos serão abordados em aulas

serão abordados em aulas expositiexpositivas com exercícios práticos, que serão disponibilizados antes devas com exercícios práticos, que serão disponibilizados antes de cada aula.

cada aula. TTambém contaremos com palestras de profissioambém contaremos com palestras de profissionais das diversnais das diversas áreas, com as áreas, com o intuitoo intuito de propiciar aos membros do

de propiciar aos membros do grupo um conhecimento amplo sobre as grupo um conhecimento amplo sobre as aplicaçaplicações das tecnologiaões das tecnologia no estudos em

(6)

colaboração do Felipe Maia Polo e do Samuel Henrique. Espero que o conteúdo seja completo e de colaboração do Felipe Maia Polo e do Samuel Henrique. Espero que o conteúdo seja completo e de fácil compreensão.

fácil compreensão. AtenciosamAtenciosamente,ente,

Leonardo Ernesto – Vice-Presidente 2018 Leonardo Ernesto – Vice-Presidente 2018

1.3

1.3

Os

Os autores

autores

Este espaço é

Este espaço é dedicado para que você conheça um dedicado para que você conheça um pouco dos nossos autores.pouco dos nossos autores. Felipe Maia Polo

Felipe Maia Polo

Estudante de Economia pela Faculdade de Economia, Administração e Contabilidade de Ribeirão Estudante de Economia pela Faculdade de Economia, Administração e Contabilidade de Ribeirão Preto da Universidade de São Paulo. Tem experiência com Estatística, Econometria e Aprendizado Preto da Universidade de São Paulo. Tem experiência com Estatística, Econometria e Aprendizado de Máquina.

de Máquina. TrabTrabalhou no Laboratóalhou no Laboratório de Estudos e Pesquisas em Economia Social (LEPES)rio de Estudos e Pesquisas em Economia Social (LEPES) focando majoritariamente em avaliação de políticas públicas na área da educação. Concluiu parte focando majoritariamente em avaliação de políticas públicas na área da educação. Concluiu parte da graduação na Universidade de Tóquio, onde teve contato com grupos voltados ao ensino e da graduação na Universidade de Tóquio, onde teve contato com grupos voltados ao ensino e treinamento de pessoas em

treinamento de pessoas em Data Science Data Science, estes que , estes que foram grandes inspiraçõforam grandes inspirações para a es para a concretizconcretizaçãoação

do Grupo de Estudos em

do Grupo de Estudos em Data Science Data Science N Neuron/USPeuron/USP..

Leonardo Ernesto Leonardo Ernesto

Estudante de Informática Biomédica pela Faculdade de Medicina de Ribeirão Preto e pela Estudante de Informática Biomédica pela Faculdade de Medicina de Ribeirão Preto e pela Faculdade de Filosofia Ciências e Letras de Ribeirão Preto na Universidade de São Paulo. Exerce o Faculdade de Filosofia Ciências e Letras de Ribeirão Preto na Universidade de São Paulo. Exerce o cargo de diretor de assuntos acadêmicos no Centro Estudantil da Informática Biomédica - CEIB, cargo de diretor de assuntos acadêmicos no Centro Estudantil da Informática Biomédica - CEIB, o qual está sob sua responsabilidade desde 2016 e já foi representante Discente na Comissão o qual está sob sua responsabilidade desde 2016 e já foi representante Discente na Comissão Coorden

Coordenadora da IBM em adora da IBM em 2016. 2016. É aluno de iniciação cientÉ aluno de iniciação cientifica desde 2014 no Laboratóifica desde 2014 no Laboratório derio de Tráfego Intracelular de Proteínas, onde desenvolve pesquisa de interação de proteínas. Possui amplo Tráfego Intracelular de Proteínas, onde desenvolve pesquisa de interação de proteínas. Possui amplo conhecimento nas áreas de Bioinformática, Inteligência Artificial, Reconhecimento de Padrões e conhecimento nas áreas de Bioinformática, Inteligência Artificial, Reconhecimento de Padrões e

 Data

 Data MiningMining..

Matheus Faleiros Matheus Faleiros

Formado em Informática Biomédica e mestrando do programa Interunidades em Bioengenharia Formado em Informática Biomédica e mestrando do programa Interunidades em Bioengenharia da Universidade de São Paulo. Trabalha com classificação e reconhecimento de padrões em imagens da Universidade de São Paulo. Trabalha com classificação e reconhecimento de padrões em imagens médicas. Possui conhecimento em técnicas de

médicas. Possui conhecimento em técnicas de Machine Learning Machine Learning e e Deep Learning Deep Learning..

Samuel Henrique Samuel Henrique

Estudante de Informática Biomédica pela Faculdade de Medicina de Ribeirão Preto e pela Estudante de Informática Biomédica pela Faculdade de Medicina de Ribeirão Preto e pela Facul-dade de Filosofia Ciências e Letras de Ribeirão Preto na UniversiFacul-dade de São Paulo. Conhecimento dade de Filosofia Ciências e Letras de Ribeirão Preto na Universidade de São Paulo. Conhecimento avançado na linguagem Python 3.6, algumas de suas bibliotecas e Programação Orientada a Objetos. avançado na linguagem Python 3.6, algumas de suas bibliotecas e Programação Orientada a Objetos. Pablo Leonardo

Pablo Leonardo

Graduando em engenharia de produção pela faculdade Pitágoras.Graduando em licenciatura Graduando em engenharia de produção pela faculdade Pitágoras.Graduando em licenciatura plena em matemática pela Univ

plena em matemática pela Universidadersidade Federal do Maranhão. e Federal do Maranhão. Amante de neuromatemáAmante de neuromatemática etica e matemática

(7)

11..33 OOssaauuttoorreess 77

Murilo Henrique Soave Murilo Henrique Soave

Estudante de Economia Empresarial e Controladoria na Faculdade de Economia, Administração Estudante de Economia Empresarial e Controladoria na Faculdade de Economia, Administração e Contabilidade da Universidade de São Paulo. Possui conhecimento avançado em Python e C, e Contabilidade da Universidade de São Paulo. Possui conhecimento avançado em Python e C, além de experiência na programação de sistemas embarcados. Atualmente, desenvolve trabalho de além de experiência na programação de sistemas embarcados. Atualmente, desenvolve trabalho de iniciação científica vinculad

iniciação científica vinculado ao o ao Instituto Federal de São Paulo.Instituto Federal de São Paulo. Carlos Henrique Lavieri Marcos Garcia

Carlos Henrique Lavieri Marcos Garcia

Estudante de Economia na Faculdade de Economia, Administração e Contabilidade de Ribeirão Estudante de Economia na Faculdade de Economia, Administração e Contabilidade de Ribeirão Preto (FEA-RP/USP), com interesse em

Preto (FEA-RP/USP), com interesse em ciência de dados e ciência de dados e AprendizadAprendizado de o de Máquina.Máquina. Mateus Padua

Mateus Padua

Bacharel em Ciência da Computação pela UniSEB COC. Trabalha como desenvolvedor WEB e Bacharel em Ciência da Computação pela UniSEB COC. Trabalha como desenvolvedor WEB e Engenheiro de Software a 18 anos. Possui conhecimento avançado em Python, Django, JavaScript, Engenheiro de Software a 18 anos. Possui conhecimento avançado em Python, Django, JavaScript, OOP, Banco de dados, AWS. Sempre em busca de novos desafios.

OOP, Banco de dados, AWS. Sempre em busca de novos desafios. Thiago M. Carvalho

Thiago M. Carvalho

Graduado e mestre em estatística pela Universidade de Brasília, trabalha no Banco do Brasil Graduado e mestre em estatística pela Universidade de Brasília, trabalha no Banco do Brasil com a linguagem SAS. Aprendiz de R e Python, é um cientista de dados em formação. Atualmente com a linguagem SAS. Aprendiz de R e Python, é um cientista de dados em formação. Atualmente estuda estatística bayesiana.

(8)

1.4

1.4

Gestão

Gestão 2018

2018

P

Prreessiiddeenntte e VViiccee--PPrreessiiddeennttee

FFeelliippe e MMaaiia a PPoollo o LLeeoonnaarrddo o EErrnneessttoo

Conteúdo Conteúdo  Diretor:

 Diretor: Samuel Samuel HenriqueHenrique   Membro:  Membro: Matheus Matheus FaleirosFaleiros  Membro:

 Membro: Pablo Pablo LeonardoLeonardo    Membro:Membro: Murilo Murilo SoaveSoave  Membro:

 Membro: Carlos Carlos HenriqueHenrique    Membro:Membro: Charles Charles ChenChen  Membro:

 Membro: Thiago Thiago CarvalhoCarvalho   Membro:  Membro: Bruno Bruno ComitreComitre  Membro:

 Membro: Mateus Mateus PaduaPadua

Projeto Projeto  Diretor:

 Diretor: Leonardo Leonardo ErnestoErnesto   Membro:  Membro: Eduardo Eduardo JunqueiraJunqueira Desenvolvimento de pessoas

Desenvolvimento de pessoas  Diretor:

 Diretor: Gustavo Gustavo RibeiroRibeiro    Membro:Membro: Edvaldo Edvaldo SantosSantos  Membro:

 Membro: Henrique Henrique NogueiraNogueira

Financeiro Financeiro  Diretora:

 Diretora: Natasha Natasha FreitasFreitas    Membro:Membro: Beatriz Beatriz MachadoMachado  Membro:

 Membro: Murilo Murilo SoaveSoave

Marketing Marketing  Diretor:

 Diretor: Jonathan Jonathan BatistaBatista    Membro:Membro: Cassio Cassio VilelaVilela  Membro:

 Membro: Willy Willy OliveiraOliveira    Membro:Membro: Gustavo Gustavo SantosSantos Relações Públicas

Relações Públicas  Diretor:

(9)

2. Introdução ao Aprendizado de Máquina

2. Introdução ao Aprendizado de Máquina

Com o avanço da tecnologia, o poder de processamento computacional está cada vez maior Com o avanço da tecnologia, o poder de processamento computacional está cada vez maior e, em

e, em função disso, os computadores começarfunção disso, os computadores começaram a am a aprendeaprender com r com algorialgoritmos a tmos a automatautomatização deização de extração de conhecimentos com muito mais po

extração de conhecimentos com muito mais poder e rapidez. der e rapidez. Hoje em dia o Aprendizado de MáquinaHoje em dia o Aprendizado de Máquina (ou

(ou Machine Learning Machine Learning) está presente em nossos celulares e computadores, usando algoritmos que) está presente em nossos celulares e computadores, usando algoritmos que

aprende

aprendem interatim interativamentvamente a e a partir de dados. partir de dados. A partir de agora, vamos entrar mais a A partir de agora, vamos entrar mais a fundo nofundo no aprendizado de máquina e como ele pode ser utilizado. Veremos quais são os principais métodos de aprendizado de máquina e como ele pode ser utilizado. Veremos quais são os principais métodos de aprendizado mais a frente.

aprendizado mais a frente.

2.1

2.1

Tipos d

Tipos de Apr

e Aprendizado

endizado de M

de Máquina

áquina

Os principais tipos de aprendizado de máquina são: aprendizagem supervisionada, não Os principais tipos de aprendizado de máquina são: aprendizagem supervisionada, não super-visio

visionada e semi-supernada e semi-supervisionvisionada. ada. A seguir obserA seguir observamos a caractevamos a característicrística de cada uma delas. a de cada uma delas. DeDe certa forma, todos os

certa forma, todos os tipos de aprendizado são baseados em experiências passadas (dados) e inferetipos de aprendizado são baseados em experiências passadas (dados) e infere algo sobre a

algo sobre a realidadrealidade, tentando resolver um problema. e, tentando resolver um problema. ResumidResumidamente, os amente, os algorialgoritmos utilizamtmos utilizam reconhecimento de padrões e grande quantidade de dados para obter respostas precisas. Exemplos: reconhecimento de padrões e grande quantidade de dados para obter respostas precisas. Exemplos: recomendaçõe

recomendações do s do Netflix, ReconhecimenNetflix, Reconhecimento de to de face do Facebook, carro autônomo da face do Facebook, carro autônomo da Google.Google.

2.2

2.2

O Ap

O Aprendizado

rendizado Não

Não Supervisionado

Supervisionado

Neste tipo de aprendizado não existe supervisão ou “professor” que fornece os resultados Neste tipo de aprendizado não existe supervisão ou “professor” que fornece os resultados correto

corretos de saída, apenas os dados de entrada. s de saída, apenas os dados de entrada. O algoritmo buO algoritmo busca por padrões e procura sabersca por padrões e procura saber quando a característica ocorre e quando não ocorre, ou seja, tem liberdade de classificar como quando a característica ocorre e quando não ocorre, ou seja, tem liberdade de classificar como quiser. O conjunto das técnicas não supervisionadas e mais utilizadas para agrupar os dados que são quiser. O conjunto das técnicas não supervisionadas e mais utilizadas para agrupar os dados que são semelhantes se chama

semelhantes se chama clustering clustering, por exemplo., por exemplo.

2.2.1

2.2.1

Métodos

Métodos de A

de Aprendizado N

prendizado Não Supervisionado

ão Supervisionado

Os principais objetivos do aprendizado não supervisionado, são encontrar estruturas em Os principais objetivos do aprendizado não supervisionado, são encontrar estruturas em dadosdados não classificados, padrões inesperados e classificar os dados em grupos por alguma similaridade. não classificados, padrões inesperados e classificar os dados em grupos por alguma similaridade.

(10)

Figura 2.1: Exemplo das diferentes abordagens de aprendizado, a primeira mostra o supervisionado: Figura 2.1: Exemplo das diferentes abordagens de aprendizado, a primeira mostra o supervisionado: onde as figuras são separadas de acordo com um atributo já conhecido; enquanto a segunda mostra onde as figuras são separadas de acordo com um atributo já conhecido; enquanto a segunda mostra o aprendizado não

o aprendizado não supervisupervisionadsionado, onde o, onde ocorre a ocorre a classiclassificação de ficação de acordo com acordo com caractercaracterísticaísticas s emem comum.

comum. Disponível em: https://lakshaysuri.files.wordpress.com/2017/03/sup-vs-unsup.png?w=648  Disponível em: https://lakshaysuri.files.wordpress.com/2017/03/sup-vs-unsup.png?w=648 

Nesse estudo explicaremos como funcionam os algoritmos de algumas técnicas de Clustering e Nesse estudo explicaremos como funcionam os algoritmos de algumas técnicas de Clustering e redução de dimensionalidade, que englobam classificação atributos em grupos e a diminuição redução de dimensionalidade, que englobam classificação atributos em grupos e a diminuição do número de variáveis usad

do número de variáveis usadas sem uma as sem uma perda de informação releperda de informação relevantevante. . Dentre esses métodoDentre esses métodoss abordaremos; o Métodos de Particionamento (

abordaremos; o Métodos de Particionamento (Partitioning Method Partitioning Method ), ), ClusteClusterização Hierárquicarização Hierárquica

(( Hierarchical Clustering Hierarchical Clustering) e ) e AnálisAnálise do e do ComponenComponente Principal (te Principal (Principal Components Analysis – Principal Components Analysis – 

PCA PCA).).

2.2.2

2.2.2

Clusterização

Clusterização Hierárquica

Hierárquica

Dentro do Machine Learning são inúmeras as naturezas que um conjunto de dados a ser

Dentro do Machine Learning são inúmeras as naturezas que um conjunto de dados a ser utilizadoutilizado em um modelo pode assumir. Assim sendo, tão diverso quanto os âmagos de cada conjunto, são os em um modelo pode assumir. Assim sendo, tão diverso quanto os âmagos de cada conjunto, são os métodos de agrupálos. Afinal, características distintas demandam algoritmos também distintos métodos de agrupálos. Afinal, características distintas demandam algoritmos também distintos -para lograr um

para lograr um maior êxito nas previsões feitas pelo modelo implementado.maior êxito nas previsões feitas pelo modelo implementado.

Por exemplo, imaginemos uma situação na qual temos informações acerca de um aglomerado Por exemplo, imaginemos uma situação na qual temos informações acerca de um aglomerado de compradore

de compradores e queremos divids e queremos dividí-los em função do seu perfil de compra. í-los em função do seu perfil de compra. Por tratar-Por tratar-se de umse de um conjunto cujo número de clusters é desconhecido, o método de Clusterização Hierárquica conjunto cujo número de clusters é desconhecido, o método de Clusterização Hierárquica apresenta-se como uma excelente opção. Pois, esapresenta-se método de classificação tem como um de apresenta-seus resultados a se como uma excelente opção. Pois, esse método de classificação tem como um de seus resultados a construção de um dendrograma, que é um instrumento capaz de

construção de um dendrograma, que é um instrumento capaz de nos mostrar a relação de nos mostrar a relação de proximidadeproximidade entre os

entre os elementos.elementos.

O algoritmo hierárquico de clusterização pode ser empregado de duas

O algoritmo hierárquico de clusterização pode ser empregado de duas formas:formas: 1.

1.  Modo aglomerativo: O algoritmo inicia com todos os elementos da matriz separados em Modo aglomerativo: O algoritmo inicia com todos os elementos da matriz separados em grupos distint

grupos distintos e, a os e, a cada passo, os dois grupos mais próximos são agrupados. Este processocada passo, os dois grupos mais próximos são agrupados. Este processo repete-se até que haja somente um único grupo como objeto final.

repete-se até que haja somente um único grupo como objeto final. 2.

2. Modo divisiModo divisivo: Aqui há vo: Aqui há o processo inverso do modo supracitado, o algoritmo começa com umo processo inverso do modo supracitado, o algoritmo começa com um único grupo e os vai dividindo em pares até que restem os objetos isolados da matriz inicial. único grupo e os vai dividindo em pares até que restem os objetos isolados da matriz inicial. O modo adotado na literatura clássic

O modo adotado na literatura clássica – a – e que também e que também adotareadotaremos aqui – mos aqui – é o é o primeiro modo.primeiro modo. Segue uma demonstração gráfica

(11)

22..2 2 O O AApprreennddiizzaaddo o NNãão o SSuuppeerrvviissiioonnaaddo o 1111

Figura 2.2:

Figura 2.2: FluxogramFluxograma do algoritmoa do algoritmo

Vale notar que o processo de encontrar os dois grupos mais próximos é feito através de um dos Vale notar que o processo de encontrar os dois grupos mais próximos é feito através de um dos métodos abaixos:

métodos abaixos:

••  Single: A distância entre os grupos é mensurada através da distância mínima encontrada entre Single: A distância entre os grupos é mensurada através da distância mínima encontrada entre os objetos que os

os objetos que os compõem.compõem. •

• Complete: Diferente do primeiro métodoComplete: Diferente do primeiro método, o critério é a distância máxima entre os objetos., o critério é a distância máxima entre os objetos. •

• AAverage: Já aqui, o que é verage: Já aqui, o que é levalevado em consideração é a distância média entre todos os objdo em consideração é a distância média entre todos os objetos.etos. •

• Centroid: É considerada a disCentroid: É considerada a distância entre os centrotância entre os centroides dos dois clides dos dois clusters.usters.

••  Ward: Caso os dois clusters selecionados unam-se, medirá como mudará a distância total em Ward: Caso os dois clusters selecionados unam-se, medirá como mudará a distância total em relação aos

relação aos centroides originais.centroides originais. Par

Paraa maimaiss detdetalhalheses sobsobrere aa teoteoriaria, , veverrhttp://www.saedsayad.com/clustering_hierarchicalhttp://www.saedsayad.com/clustering_hierarchical.. htm

htm. Agora que os fundamentos teóricos básicos foram introduzidos, vamos a um exemplo prático. Agora que os fundamentos teóricos básicos foram introduzidos, vamos a um exemplo prático

para fixá-los.

para fixá-los. TrabaTrabalharemos com um dataset lharemos com um dataset que contém informações sobre compradoresque contém informações sobre compradores11.. import

import  pandas  pandas asas pdpd

import

import  numpy  numpy asas npnp

import

import  matplotlib.pyplot  matplotlib.pyplot asas pltplt  #Plo  #Plotagetagem m dos dos gráfgráficosicos

import

import  scipy.cluster.hierarchy  scipy.cluster.hierarchy asas shcshc  #Co  #Construção do nstrução do dendrogdendrograma rama 

from

from  sklearn.cluster  sklearn.cluster  import  import  AgglomerativeClustering  AgglomerativeClustering  #for  #formaçãmação o dos dos cluclustersterss 11O download do dataset encontra-se no drive junto com O download do dataset encontra-se no drive junto com o material da apostilao material da apostila

(12)

data

data == pdpd..read_csv(read_csv("/home/l4b/Downloads/shopping_data.csv""/home/l4b/Downloads/shopping_data.csv"))

O dataset é composto pelas colunas CustomerID, Genre, Age, Annual Income(Mensurado em O dataset é composto pelas colunas CustomerID, Genre, Age, Annual Income(Mensurado em milhares de reais) e Spending Score. Destas, restringir-nos-emos as duas últimas que apresentam as milhares de reais) e Spending Score. Destas, restringir-nos-emos as duas últimas que apresentam as inputs úteis ao nosso processo. A primeira aponta o rendimento anual e a segunda a propensão a inputs úteis ao nosso processo. A primeira aponta o rendimento anual e a segunda a propensão a consumir

consumir, sendo 0 o , sendo 0 o mínimo e 100 o máximo.mínimo e 100 o máximo.

infos

infos ==  data  data..iloc[:,iloc[:,33 :5:5]]..valuesvalues  #Se  #Seleçãleção o das das duas duas refereferidaridas s colcolunasunas..

plt

plt..figure(figsizefigure(figsize==((1010,,1010))))  #D  #Dimenimensões do sões do grágráfico que fico que será plotadserá plotado.o.

link

link == shcshc..linkage(linkage(infos, infos, methodmethod==wardward))  #Re  #Realaliza iza a a ununiãião o dodos s grgrupoupos s utiutililizanzando do o o mémétodtodo o wa wa 

dendrogram

dendrogram == shcshc..dendrogram(link)dendrogram(link)  #Cons  #Constroi troi o o denddendrogrrograma.ama.

plt

plt..show()show()  #Exibe-o.  #Exibe-o.

Figura 2.3: Dendrograma Figura 2.3: Dendrograma

Algo interessante a se notar no dendrograma é o fato do tamanho das linhas verticais Algo interessante a se notar no dendrograma é o fato do tamanho das linhas verticais representa-rem a

rem a distâncidistância demandada no agrupamento. Ou a demandada no agrupamento. Ou seja, o ideal é seja, o ideal é aguardar surgaguardar surgir extensas linhas parair extensas linhas para escolher o número de clusters. No caso deste dataset, é notável que isso ocorre após a formação de 5 escolher o número de clusters. No caso deste dataset, é notável que isso ocorre após a formação de 5 grupos. Com o

grupos. Com o número em mãos, resta-nos partir para a clusterização.número em mãos, resta-nos partir para a clusterização.

cluster

cluster ==  AgglomerativeClustering(n_clusters  AgglomerativeClustering(n_clusters=5=5, , affaffinitinityy==euclideaneuclidean, , linklinkageage==wardward))

cluster

cluster..fit_predict(infos)fit_predict(infos)

A função terá como retorno uma lista nos informando o grupo que cada elemento da matriz A função terá como retorno uma lista nos informando o grupo que cada elemento da matriz pertence, vamos, portanto

pertence, vamos, portanto, plotar o , plotar o gráfico final já gráfico final já com essa divisão.com essa divisão.

#O

#O eieixo xo X X seserá rá rereprepresesentantado do pepelo lo rerendindimemento nto ananual ual e e o o Y Y pelpela a prpropoprenrensãsão o a a conconsusumirmir..

plt

plt..scatter(infos[:,scatter(infos[:,00], ], infoinfos[:s[:,,11], ], cc==clustercluster..labelabels_, ls_, cmapcmap==rainbowrainbow))

plt

(13)

22..2 2 O O AApprreennddiizzaaddo o NNãão o SSuuppeerrvviissiioonnaaddo o 1133

Figura 2.4:

Figura 2.4: Resultado da clusterizaResultado da clusterizaçãoção

No agrupamento acima, é possível visualizar claramente os cinco clusters. Por exemplo, o vermelho No agrupamento acima, é possível visualizar claramente os cinco clusters. Por exemplo, o vermelho representa indi

representa indivíduos que ganham pouco e também tendem a consumir pouco, já o víduos que ganham pouco e também tendem a consumir pouco, já o roxo é formadoroxo é formado por pessoas que ganham muito, mas,

por pessoas que ganham muito, mas, consomem pouco.consomem pouco.

2.2.3

2.2.3

Métodos

Métodos de

de Particionamento

Particionamento

Esses métodos são baseados na separação dos indivíduos em subgrupos, sendo que uma parte Esses métodos são baseados na separação dos indivíduos em subgrupos, sendo que uma parte importante desse tipo de algoritmo é o número de subgrupos

importante desse tipo de algoritmo é o número de subgrupos k  k  que serão formados e que deve que serão formados e que deve

ser informado pelo usuário. Para encontrar o melhor

ser informado pelo usuário. Para encontrar o melhor k  k , usamos métricas que descrevem a melhor, usamos métricas que descrevem a melhor

estimativa dos grupos em relação aos dados. Dentre os métodos de particionamento, abordaremos o estimativa dos grupos em relação aos dados. Dentre os métodos de particionamento, abordaremos o

k-means

k-means..

Podemos fazer o uso

Podemos fazer o uso do algoritmo dedo algoritmo de K-means K-means quando possuímos um conjunto de dados não quando possuímos um conjunto de dados não

rotulados e gostaríamos de agrupá-los, para

rotulados e gostaríamos de agrupá-los, para assim poder observar padrões nos dados. assim poder observar padrões nos dados. Posteriormente,Posteriormente, poderia ocorrer uma análise mais

poderia ocorrer uma análise mais aprofundada das características de cada aprofundada das características de cada grupo após o agrupamento,grupo após o agrupamento, caso este aconteça.

caso este aconteça.

Para mostrar a implementação do método, iremos abordar

Para mostrar a implementação do método, iremos abordar o mesmo exemplo utilizado na parte deo mesmo exemplo utilizado na parte de clusterização hierárquica, porém desta vez em utilizaremos a idade também como variavel. Abaixo clusterização hierárquica, porém desta vez em utilizaremos a idade também como variavel. Abaixo as bibliotecas que

as bibliotecas que usaremos.usaremos.

import

import  pandas  pandas asas pdpd

import

import  numpy  numpy asas npnp

from

from  sklearn.cluster  sklearn.cluster  import  import  KMeans  KMeans

import

import  matplotlib.pyplot  matplotlib.pyplot asas pltplt

Para facilitar nossa análise iremos tirar a variável Costumer ID pois ela nao é relevante para a Para facilitar nossa análise iremos tirar a variável Costumer ID pois ela nao é relevante para a demonstração.

demonstração.

dataset

dataset..drop([drop(["CustomerID""CustomerID"],axis],axis=1=1,inplace,inplace==  True  True))

O algoritimo do

O algoritimo do K-means K-means funciona basicamente calculando a distância de um ou mais centros, funciona basicamente calculando a distância de um ou mais centros,

os centróides, até os pontos do dataset usado para o aprendizado não superviosinado da máquina, os centróides, até os pontos do dataset usado para o aprendizado não superviosinado da máquina, a clusterização então é feita em relação a estes centros, ou seja, se um ponto

a clusterização então é feita em relação a estes centros, ou seja, se um ponto X  X  está mais próximo está mais próximo

de um

(14)

Sempre ao iniciarmos o algoritimo definimos os números de centros que queremos gerar e como Sempre ao iniciarmos o algoritimo definimos os números de centros que queremos gerar e como nosso dataset ja é conhecido e sabemos que

nosso dataset ja é conhecido e sabemos que existem 5 clusters nele, então iremos inicializar com existem 5 clusters nele, então iremos inicializar com esteeste valor. Se fossemos utilizar outros datasets os quais não conhecemos o número de clusters, teríamos valor. Se fossemos utilizar outros datasets os quais não conhecemos o número de clusters, teríamos que fazer uma análise para poder descobrir o números de clusters que mais se adequa ao dataset que fazer uma análise para poder descobrir o números de clusters que mais se adequa ao dataset -mais a

mais a frente abordaremos como proceder nesses casos.frente abordaremos como proceder nesses casos.

kmeans

kmeans ==  KMeans(n_clusters  KMeans(n_clusters = = 55, , ininitit == k-means++k-means++))

Na chamada do método do

Na chamada do método do K-means K-means vemos também, além do número de clusters, a maneira que vemos também, além do número de clusters, a maneira que

usaremos para gerar os

usaremos para gerar os centros. Existem três centros. Existem três maneiras disponibmaneiras disponibilizadas pelo pacote:ilizadas pelo pacote:

•• k-means+k-means++: +: Método mais utiliMétodo mais utilizado, sendo que na documentação não fica muito claro seuzado, sendo que na documentação não fica muito claro seu funcioname

funcionamento porém nto porém sabemos que este sabemos que este método facilita a método facilita a convconvergência do algoritmo;ergência do algoritmo;

••  random : Neste metodo os centros são gerados randomicamente dentro do espaço ocupado random : Neste metodo os centros são gerados randomicamente dentro do espaço ocupado pelo dataset;

pelo dataset;

•• Por último, podemos passar um ’ndarray’ com os pontos ondPor último, podemos passar um ’ndarray’ com os pontos onde desejamos que os centros sejame desejamos que os centros sejam inicialiados.

inicialiados.

A utilização dos centro

A utilização dos centros no algoritimo serve para fazer o agrupamento dos dadoss no algoritimo serve para fazer o agrupamento dos dados. . CentrosCentros iniciais são gerados de acordo com um dos métodos acima e a partir dele é feito um agrupamento iniciais são gerados de acordo com um dos métodos acima e a partir dele é feito um agrupamento inicial, sendo que o algoritimo usa a distância euclidiana para decidir a qual centro o ponto pertence inicial, sendo que o algoritimo usa a distância euclidiana para decidir a qual centro o ponto pertence - ele pega a menor distância. Após este primeiro agrupamento, os centróides são recalculados como - ele pega a menor distância. Após este primeiro agrupamento, os centróides são recalculados como

uma média dos pontos pertencentes a cada um dos clusters. Os dois processos se repetem

uma média dos pontos pertencentes a cada um dos clusters. Os dois processos se repetem n n vezes vezes

até que os centróides tenham convergido. É importante dizer que os centróides finais dependem dos até que os centróides tenham convergido. É importante dizer que os centróides finais dependem dos centróides iniciais, ou seja, podemos repetir o processo algumas vezes com

centróides iniciais, ou seja, podemos repetir o processo algumas vezes com diferentes centros paradiferentes centros para checar a

checar a robustrobustez do ez do agrupamentagrupamento.o.

Seguindo com nosso código, agora com um entendimento maior do método e com ele ja Seguindo com nosso código, agora com um entendimento maior do método e com ele ja incializado em nosso código

incializado em nosso código, vamos fazer com que a , vamos fazer com que a máquina aprenda a agrupar os pontos:máquina aprenda a agrupar os pontos:

kmeans

kmeans..fit(dataset)fit(dataset)

Pronto, agora temos nosso modelo K-means treinado e

Pronto, agora temos nosso modelo K-means treinado e pronto para uso, vamos ver se o pronto para uso, vamos ver se o resultadoresultado obtido pelo

obtido pelo k-means k-means é similar ao algoritimo anterior. Para isso vamos fazer uma plotagem. O código é similar ao algoritimo anterior. Para isso vamos fazer uma plotagem. O código

abaixo mostra uma forma diferente de

abaixo mostra uma forma diferente de manipulmanipular os ar os dados para plotardados para plotar, neste código usamos três, neste código usamos três variáv

variáveis, porém eis, porém vamos plotar apenas duas vamos plotar apenas duas para facilitar a para facilitar a visualizaçãvisualização:o:

data

data = = 00

X

X == npnp..array(dataset[array(dataset[AnnuAnnual al IncoIncome me (k$)(k$)])])

Y

Y == npnp..array(dataset[array(dataset[SpenSpending ding ScorScore e (1-(1-100)100)])])

X

X..shapeshape ==((-1-1,,11)) Y

Y..shapeshape ==((-1-1,,11)) data

data == npnp..concatenate((X,Y),axisconcatenate((X,Y),axis=1=1))

Agora podemos plotar. Agora podemos plotar.

plt

plt..scatter(data[:,scatter(data[:,00], ], datdata[:,a[:,11], ], ss = = 5050, , cc ==  kmeans  kmeans..labels_)labels_) plt

plt..title(title(FinalFinal))

plt

(15)

22..2 2 O O AApprreennddiizzaaddo o NNãão o SSuuppeerrvviissiioonnaaddo o 1155 plt plt..ylabel(ylabel(YY)) plt plt..legend()legend() plt plt..show()show() Figura 2.5:

Figura 2.5: Resultado da clusterizaResultado da clusterizaçãoção

Podemos ver que os resultados são bem parecidos, isso nos diz que o agrupamento foi robusto Podemos ver que os resultados são bem parecidos, isso nos diz que o agrupamento foi robusto ao método utilizado. O método PAM que foi falado no começo da sessão é também conhecido omo ao método utilizado. O método PAM que foi falado no começo da sessão é também conhecido omo k-medoids. A única diferença entre os dois modelos é que o PAM utiliza a distância Manhattan para k-medoids. A única diferença entre os dois modelos é que o PAM utiliza a distância Manhattan para calcular as distâncias dos pontos até os centros, que nesse caso é a mediana geométrica dos pontos e calcular as distâncias dos pontos até os centros, que nesse caso é a mediana geométrica dos pontos e não a média (o

não a média (o centro é definido de modo a centro é definido de modo a minimizminimizar a ar a soma das distâncisoma das distâncias Manhattan de todasas Manhattan de todas as observações pertencentes àquele grupo até o ponto) - isso é feito para que o modelo seja menos as observações pertencentes àquele grupo até o ponto) - isso é feito para que o modelo seja menos sensível a outliers, ou seja, pontos que estão muito "fora da curva"e que podem criar empecilhos sensível a outliers, ou seja, pontos que estão muito "fora da curva"e que podem criar empecilhos para se chegar em um

para se chegar em um bom resultado.bom resultado.

2.2.4

2.2.4

Principal Principal Components Components Analysis Analysis 

 - PCA

 - PCA

O método PCA é utilizado quando há a necessidade de se reduzir a quantidade de atributos de O método PCA é utilizado quando há a necessidade de se reduzir a quantidade de atributos de dados numéric

dados numéricos enquanto tenta-os enquanto tenta-se manter a se manter a estrutestrutura dos dados. ura dos dados. Podemos usar o PCA Podemos usar o PCA quandoquando trabalhamos com análise de genes diferencialmente expressos, onde a quantidade de dados é muito trabalhamos com análise de genes diferencialmente expressos, onde a quantidade de dados é muito grande e não queremos que ocorra a perda de informações, por exemplo. Podemos observar a figura grande e não queremos que ocorra a perda de informações, por exemplo. Podemos observar a figura abaixo, para uma visão mais geométrica do modelo

abaixo, para uma visão mais geométrica do modelo 2 2::

(16)

Figura 2.6:

Figura 2.6: Exemplo de utilização do PCA para diminuir o número de variáveis.Exemplo de utilização do PCA para diminuir o número de variáveis.

Intuitivamente, o método do PCA encontra as direções que os dados têm maior variação e Intuitivamente, o método do PCA encontra as direções que os dados têm maior variação e "reconstrói"as variáveis nessas direções. Na imagem acima, temos 3 variáveis, no entanto, "reconstrói"as variáveis nessas direções. Na imagem acima, temos 3 variáveis, no entanto, percebe-se que os dados têm grande parte de suas variações em apenas duas direções. Assim percebe-sendo, podemos se que os dados têm grande parte de suas variações em apenas duas direções. Assim sendo, podemos reconstruir as variáveis nas direções que explicam grande parte das variações nos dados. As duas reconstruir as variáveis nas direções que explicam grande parte das variações nos dados. As duas novas variáveis são independentes entre si e são calculadas a parte de combinações das três originais novas variáveis são independentes entre si e são calculadas a parte de combinações das três originais de modo a maximizar a variância desses dad

de modo a maximizar a variância desses dados. os. É importantÉ importante dizer que antes de se e dizer que antes de se realizarealizar or o PCA, é

PCA, é necenecessássário reescrio reescalaalar r os dados para que os dados para que todtodas as as as vavariávriáveis tenheis tenham a am a mesmmesma a escaescala. la. OO número de componentes (ou

número de componentes (ou variáveis novvariáveis novas) utilizados deve ser escolhido pelo as) utilizados deve ser escolhido pelo usuário de acordousuário de acordo com o quanto da variação pode ser explicada pelos novos componentes em relação às variáveis com o quanto da variação pode ser explicada pelos novos componentes em relação às variáveis originais. Mais detalhes podem ser acessados em

originais. Mais detalhes podem ser acessados em  https://pt.wikipedia.org/wiki/Análise_  https://pt.wikipedia.org/wiki/Análise_ de_componentes_principais

de_componentes_principais..

2.2.5

2.2.5

Materiais compleme

Materiais complementares para

ntares para Aprendizado Não

Aprendizado Não Supervisionado

Supervisionado

Se você achou o material muito básico até aqui, sugiro que leia o capítulo

Se você achou o material muito básico até aqui, sugiro que leia o capítulo http://www.ee. http://www.ee. columbia.edu/~vittorio/UnsupervisedLearning.pdf

columbia.edu/~vittorio/UnsupervisedLearning.pdf. Outros materiais de apoio:. Outros materiais de apoio:

••  https://medium.com/machine-learning-for-humans/unsupervised-learning-f45587588294  https://medium.com/machine-learning-for-humans/unsupervised-learning-f45587588294

••  https://www.youtube.com/playlist?list=PL2Wzg8U7YXS9HjwRCy_1kcAMHLFUoV9tu  https://www.youtube.com/playlist?list=PL2Wzg8U7YXS9HjwRCy_1kcAMHLFUoV9tu

••  http://stanford.edu/~cpiech/cs221/handouts/kmeans.html  http://stanford.edu/~cpiech/cs221/handouts/kmeans.html

••  https://www.cs.utah.edu/~piyush/teaching/4-10-print.pdf  https://www.cs.utah.edu/~piyush/teaching/4-10-print.pdf

••  http://aquilesburlamaqui.wdfiles.com/local--files/logica-aplicada-a-co  http://aquilesburlamaqui.wdfiles.com/local--files/logica-aplicada-a-co mputacao/ mputacao/ texto_fuzzy.pdf texto_fuzzy.pdf ••  https://www.analyticsvidhya.com/blog/2016/03/practical-guide-principal-component-analy  https://www.analyticsvidhya.com/blog/2016/03/practical-guide-principal-component-analy ••  https://www.toptal.com/machine-learning/clustering-algorithms  https://www.toptal.com/machine-learning/clustering-algorithms ••  http://www.teses.usp.br/teses/disponiveis/55/55134/tde-19082004-092311/  http://www.teses.usp.br/teses/disponiveis/55/55134/tde-19082004-092311/..

2.3

2.3

O

O Aprendizad

Aprendizado

o Supervisionado

Supervisionado

Neste tipo de

Neste tipo de aprendizagem o algoritmo observa inúmeros exemplos de entrada, ou seja, aprendizagem o algoritmo observa inúmeros exemplos de entrada, ou seja, observaobserva o histórico ou característica dominante desses dados e cria um modelo que prevê sua saída, como se o histórico ou característica dominante desses dados e cria um modelo que prevê sua saída, como se existisse um professor para ensiná-la. A máquina precisa ter muitos exemplos e utilizar os critérios e existisse um professor para ensiná-la. A máquina precisa ter muitos exemplos e utilizar os critérios e

(17)

22..3 3 O O AApprreennddiizzaaddo o SSuuppeerrvviissiioonnaaddo o 1177

informações corretas para fazer boas

informações corretas para fazer boas predições com os novos dados. Quando falamos de predições com os novos dados. Quando falamos de aprendizadoaprendizado supervi

supervisionadsionado, o, temos dois tipos temos dois tipos principrincipais de pais de objetiobjetivos: vos: (i) prever resultados com significados(i) prever resultados com significados quantitativos, que dá origem ao problema de

quantitativos, que dá origem ao problema de regressão regressão, e (ii) prever resultados com significados, e (ii) prever resultados com significados

qualitativos, ou seja, de se classificar um novo indivíduo em classes pré-existentes nos dados, que qualitativos, ou seja, de se classificar um novo indivíduo em classes pré-existentes nos dados, que dá origem ao problema da

dá origem ao problema da classificação classificação. Dois métodos que podem ser usados tanto para resolver. Dois métodos que podem ser usados tanto para resolver

problemas de regressão quanto de classificação são as Árvores de Decisão e Floresta Aleatória problemas de regressão quanto de classificação são as Árvores de Decisão e Floresta Aleatória (Random Forest), por exemplo.

(Random Forest), por exemplo.

2.3.1

2.3.1

Introdução

Introdução às Árvores

às Árvores de Decis

de Decisão

ão

Árvores de Decisão para Classificação ou Regressão são métodos que particionam os dados e Árvores de Decisão para Classificação ou Regressão são métodos que particionam os dados e realizam predições condicionais às partições geradas.

realizam predições condicionais às partições geradas. TTal contexto é empregado dentro da Mineraçãoal contexto é empregado dentro da Mineração de Dados

-de Dados - Data Mining Data Mining. Nas Árvores de Decisão, o primeiro nó da árvore é sempre o atributo. Nas Árvores de Decisão, o primeiro nó da árvore é sempre o atributo

mais importante, e os menos importantes são mostrados nos outros nós. Ao escolher e apresentar os mais importante, e os menos importantes são mostrados nos outros nós. Ao escolher e apresentar os atributos em ordem de importância, as Árvores de Decisão permitem aos usuários conhecer quais atributos em ordem de importância, as Árvores de Decisão permitem aos usuários conhecer quais fatores são os mais importantes em seus trabalhos

fatores são os mais importantes em seus trabalhos 3 3.. A vantagem principal das Árvores de Decisão é A vantagem principal das Árvores de Decisão é

a tomada de decisões levando em consideração os atributos mais relevantes, além de compreensíveis a tomada de decisões levando em consideração os atributos mais relevantes, além de compreensíveis para a maioria das pessoas

para a maioria das pessoas 4 4..

O computador não tem a capacidade de reconhecer padrões óbvios, como um ser humano. Esta O computador não tem a capacidade de reconhecer padrões óbvios, como um ser humano. Esta situação tem gerado demandas por novas técnicas e ferramentas que, com eficiência, transformem os situação tem gerado demandas por novas técnicas e ferramentas que, com eficiência, transformem os dados armazenados e processados em conhecimento

dados armazenados e processados em conhecimento 5 5.. As Árvores de Decisão são representações As Árvores de Decisão são representações

simples do conhecimento e um meio eficiente de construir classificadores e regressores que predizem simples do conhecimento e um meio eficiente de construir classificadores e regressores que predizem classes/atributo quantitativo baseados nos valores de atributos de um conjunto de dados

classes/atributo quantitativo baseados nos valores de atributos de um conjunto de dados 66. Uma. Uma

Árvore de Decisão utiliza a estratégia chamada Dividir Para Conquistar, ou seja, um problema Árvore de Decisão utiliza a estratégia chamada Dividir Para Conquistar, ou seja, um problema comple

complexo é xo é decompodecomposto em sto em subprosubproblemas mais simples. blemas mais simples. RecursiRecursivamentvamente, e, a mesma a mesma estratestratégia éégia é aplicada a cada

aplicada a cada subproblsubproblemaema 7 7.. Uma árvore é composta por nós,

Uma árvore é composta por nós, sendo que os nós podem representar sendo que os nós podem representar tanto variáveis quantitatitanto variáveis quantitativasvas quanto qualitativas. Ramos são as subseções da árvore. Nó interno (ou nó de decisão) é um nó cujo quanto qualitativas. Ramos são as subseções da árvore. Nó interno (ou nó de decisão) é um nó cujo propósito é direcionar o objeto para o caminho apropriado por comparação de valores. Nó terminal propósito é direcionar o objeto para o caminho apropriado por comparação de valores. Nó terminal (também chamado de nó folha) é o nó que não possui “filhos”, sendo o último nó do segmento. O nó (também chamado de nó folha) é o nó que não possui “filhos”, sendo o último nó do segmento. O nó terminal, quando usamos árvores de decisão/regressão, indica o valor ou classe que será atribuída ao terminal, quando usamos árvores de decisão/regressão, indica o valor ou classe que será atribuída ao objeto que percorrer aquele caminho.

objeto que percorrer aquele caminho. Abaixo é demonstrado um exemplo da estrutura da Abaixo é demonstrado um exemplo da estrutura da árvoreárvore 8 8.. Existem vários algoritmos para criar uma

Existem vários algoritmos para criar uma árvore de decisão, sendo os mais comuns o árvore de decisão, sendo os mais comuns o ID3, CARTID3, CART,, C4.5, entre outros.

C4.5, entre outros. A biblioteca scikit-learn que estamos usando para os métodos deA biblioteca scikit-learn que estamos usando para os métodos de machine learning machine learning

implementa uma versão da árvore CART na API. Para

implementa uma versão da árvore CART na API. Para entender melhor como funciona uma árvore entender melhor como funciona uma árvore dede decisão ou regressão veja o seguinte vídeo

decisão ou regressão veja o seguinte vídeo  https://www.youtube.com/watch?v=gYSWrUP4aB0  https://www.youtube.com/watch?v=gYSWrUP4aB0..

33Análisis de crédito bancario por medio de redes neuronales y árboles de decisión: una. Revista de Administração daAnálisis de crédito bancario por medio de redes neuronales y árboles de decisión: una. Revista de Administração da

Universida

Universidade de São de de São Paulo, p225 - 234.Paulo, p225 - 234.

44http://wwwp.coc.ufhttp://wwwp.coc.ufrj.br/teses/doutorarj.br/teses/doutorado/inter/2005/Teses/do/inter/2005/Teses/CARVALHO_DR_05_t_D_CARVALHO_DR_05_t_D_int.pdfint.pdf 55Data Mining and Knowledge Discovery: A Review of Issues and Multistrategy Approach. Data Mining and Knowledge Discovery: A Review of Issues and Multistrategy Approach. In: R. In: R. Michalski, I. Bratko,Michalski, I. Bratko,

and M. Kubat, Machine Learning and Data Mning:

and M. Kubat, Machine Learning and Data Mning: Methods and Applications (pp. p71-112). Methods and Applications (pp. p71-112). London: John Wiley andLondon: John Wiley and Sons.

Sons.

66O uso de árvores de decisão na descoberta de conhecimento na área da saúde. In: SEMANA ACADÊMICA, 2000.O uso de árvores de decisão na descoberta de conhecimento na área da saúde. In: SEMANA ACADÊMICA, 2000.

Rio Grande do Sul: Universidade Federal do Rio Grande do Sul, 2000. Rio Grande do Sul: Universidade Federal do Rio Grande do Sul, 2000.

77http://www.liacc.uhttp://www.liacc.up.pt/~jgama/Mestradp.pt/~jgama/Mestrado/ECD1/Arvores.htmlo/ECD1/Arvores.html 88https://dx.doi.org/10.5935/0103-104.20140016https://dx.doi.org/10.5935/0103-104.20140016

(18)

Figura 2.7:

Figura 2.7: Representação da estrutura de uma árvoreRepresentação da estrutura de uma árvore

2.3.2

2.3.2

Introdução

Introdução ao R

ao Random Fo

andom Forest

rest

Random Forest ou floresta aleatória é caracterizado por sua fácil utilização, flexibilidade e por Random Forest ou floresta aleatória é caracterizado por sua fácil utilização, flexibilidade e por conseguir trabalhar com poucos dados. Pode, assim como a árvore de decisão/regressão, ser usada conseguir trabalhar com poucos dados. Pode, assim como a árvore de decisão/regressão, ser usada para a regressão e para

para a regressão e para a classificaçãoa classificação 9 9..

Figura 2.8:

Figura 2.8: Representação de uma floresta aleatória com Representação de uma floresta aleatória com divdiversas árvoresersas árvores

O algoritmo de Random Forest consiste-se na criação e combinação de várias árvores de decisão O algoritmo de Random Forest consiste-se na criação e combinação de várias árvores de decisão para obter uma predição mais estável e com maior precisão

para obter uma predição mais estável e com maior precisão 10 10.. Ou seja, o algoritmo tenta encontrar Ou seja, o algoritmo tenta encontrar as melhores características em um subconjunto de características em uma grande diversidade de as melhores características em um subconjunto de características em uma grande diversidade de dados, o que

dados, o que resulta em um resulta em um modelo melhormodelo melhor..

O modelo de Random Forest consiste-se basicamente nos seguintes passos

O modelo de Random Forest consiste-se basicamente nos seguintes passos1111:: (i) definir o número (i) definir o número

de árvores que haverá na floresta; (ii) para cada uma das árvores aplicar uma amostragem com de árvores que haverá na floresta; (ii) para cada uma das árvores aplicar uma amostragem com

99https://cdn-images-1.medium.com/max/800/0*tG-IWcxL1jg7RkT0.pnghttps://cdn-images-1.medium.com/max/800/0*tG-IWcxL1jg7RkT0.png 10

10https://medium.com/machina-sapiens/o-algoritmo-da-floresta-aleatória-3545f6babdf8https://medium.com/machina-sapiens/o-algoritmo-da-floresta-aleatória-3545f6babdf8 11

(19)

22..3 3 O O AApprreennddiizzaaddo o SSuuppeerrvviissiioonnaaddo o 1199

reposição do tamanho da sua base de treinamento (processo

reposição do tamanho da sua base de treinamento (processo bootstraping bootstraping); (iii) escolher um número); (iii) escolher um número

m

m menor ou igual ao número de variáveis explicativas; (iv) para cada uma das árvores escolher menor ou igual ao número de variáveis explicativas; (iv) para cada uma das árvores escolher m

m ( (randomizingrandomizing) variáveis explicativas de forma aleatória para cada uma das árvores; (v) fazer as) variáveis explicativas de forma aleatória para cada uma das árvores; (v) fazer as

árvores crescerem até uma profundidade pré-definida ou até

árvores crescerem até uma profundidade pré-definida ou até quando não der mais; (vi) quando não der mais; (vi) levlevando emando em consideração todas as predições de um indivíduo

consideração todas as predições de um indivíduo jj, realizar uma votação (pela maioria) no caso da, realizar uma votação (pela maioria) no caso da

classificação ou uma média na caso da

classificação ou uma média na caso da regressão para obter a predição final.regressão para obter a predição final. Como visto anteriormente, as técnicas de

Como visto anteriormente, as técnicas de Machine Learning Machine Learning são divididas em aprendizado são divididas em aprendizado

supervisionado e não supervisionado. Dentro do aprendizado supervisionado podemos subdividir as supervisionado e não supervisionado. Dentro do aprendizado supervisionado podemos subdividir as abordagens em Classificação e

(20)
(21)

3. Aprendizado de Máquina Supervisionado

3. Aprendizado de Máquina Supervisionado

3.1

3.1

Modelos

Modelos de

de Regressão

Regressão

O problema de regressão na campo do Aprendizado de Máquina comporta diversas empreitadas O problema de regressão na campo do Aprendizado de Máquina comporta diversas empreitadas nas quais os

nas quais os objetiobjetivos compreendvos compreendem o em o cálculo de um cálculo de um valovalor de r de saída com saída com qualidqualidade quantitatade quantitativiva.a. Assim sendo, problemas de regressão no campo do

Assim sendo, problemas de regressão no campo do AprendizadAprendizado de o de Máquina comportaMáquina comportam situaçõesm situações como por exemplo de predição de preços de imóveis, salários de indivíduos, a quantidade de chuva como por exemplo de predição de preços de imóveis, salários de indivíduos, a quantidade de chuva em um determinado dia (em

em um determinado dia (em mm mm) ou mesmo o peso das pessoas dadas algumas pistas de seus estilos) ou mesmo o peso das pessoas dadas algumas pistas de seus estilos

de vida. Existem diversos métodos para a resolução de problemas de regressão e não existe um que de vida. Existem diversos métodos para a resolução de problemas de regressão e não existe um que sempre se sobressairá sobre os outros, portanto é muito importante sempre fazer uma comparação sempre se sobressairá sobre os outros, portanto é muito importante sempre fazer uma comparação dos resultados obtidos por diversos modelos.

dos resultados obtidos por diversos modelos.

3.1.1

3.1.1

Regressão

Regressão Linear

Linear

A Regressão Linear é um

A Regressão Linear é um modelo muito conhecido e usado no mundo da Estatística e modelo muito conhecido e usado no mundo da Estatística e do Machinedo Machine Learnin

Learning, pela g, pela sua simplicidsua simplicidade, facilidade de interpretação e ade, facilidade de interpretação e poder preditipoder preditivo. vo. Usamos modelosUsamos modelos de Regressão Linear quando queremos resolver problemas de regressão, ou seja, quando temos de Regressão Linear quando queremos resolver problemas de regressão, ou seja, quando temos umum conjunto de dados dotados de características e queremos prever que número real está associado conjunto de dados dotados de características e queremos prever que número real está associado àquelas características.Por exemplo, podemos querer prever qual o salário de uma pessoa dadas suas àquelas características.Por exemplo, podemos querer prever qual o salário de uma pessoa dadas suas característic

características pessoais e as pessoais e característicacaracterísticas do s do ambiente no qual as ambiente no qual as pessoas estão inseridas.pessoas estão inseridas. Especificação matemática

Especificação matemática Os modelos padrão de

Os modelos padrão de regressão linear geralmente são definidos da seguinte maneira:regressão linear geralmente são definidos da seguinte maneira:

 y

 yii = = b b++ww11 x x11ii + +ww22 x x22ii + +...++ww x xkiki + +ε ε ii = = b b++xxiiTTww = = y yˆˆii + +ε ε ii    (3.1)(3.1)

Na equação acima,

Na equação acima, y yii é  é comumente conhecida como variável explicadcomumente conhecida como variável explicada (poderia ser a (poderia ser o salário, poro salário, por

exemplo) do indivíduo

exemplo) do indivíduo i i; o conjunto; o conjunto { { x x ji ji}} é o conjunto de características observáveis do indivíduo é o conjunto de características observáveis do indivíduo i i,,

que é

(22)

é também conhecido como coeficiente linear ou intercepto

é também conhecido como coeficiente linear ou intercepto 1 1;; por fim, por fim, ˆˆ y y

ii é a previsão de é a previsão de y yii feita pelo feita pelo

modelo e

modelo e ε  ε ii é  é o erro cometido pelo modelo, ou seja, a o erro cometido pelo modelo, ou seja, a parte não explicada pelos dados.parte não explicada pelos dados. A utilização de variáveis categóricas como explicativas no modelo

A utilização de variáveis categóricas como explicativas no modelo A inclusão de vari

A inclusão de variáveis conáveis contínuas (e.g. tínuas (e.g. altura, idade) no modelaltura, idade) no modelo é direta, ou seja, o é direta, ou seja, não há anão há a necessidad

necessidade de mudar sua e de mudar sua forma antes de incluí-las na equação a ser estimada. forma antes de incluí-las na equação a ser estimada. No entanto, quandoNo entanto, quando queremos inclui

queremos incluir variáveis categór variáveis categóricas (e.g. ricas (e.g. nível de escolaridadenível de escolaridade, , gênero) como explicatigênero) como explicativas évas é necessá

necessário fazer algumas mudançrio fazer algumas mudanças. as. Por exmeploPor exmeplo, , suponhsuponha que temos a a que temos a variávariávelvel  python  python, que, que

mede a habilidade das pessoas na programação em Python, com as seguintes categorias "Iniciante", mede a habilidade das pessoas na programação em Python, com as seguintes categorias "Iniciante", "Intermediário"e "Avançado". Sendo que "Iniciante"é representado pelo número 0, "Intermediário"é "Intermediário"e "Avançado". Sendo que "Iniciante"é representado pelo número 0, "Intermediário"é representado pelo número 1 e "Avançado"é representado pelo número 2. O padrão a ser seguido representado pelo número 1 e "Avançado"é representado pelo número 2. O padrão a ser seguido é:

é: criar 3 novas variáveis (uma para cada categoria), sendo que estas assumem 0 criar 3 novas variáveis (uma para cada categoria), sendo que estas assumem 0 ou 1, dependendoou 1, dependendo das respostas, sendo que 0 é negativo e 1 positivo para tal categoria. Após a criação das variáveis, das respostas, sendo que 0 é negativo e 1 positivo para tal categoria. Após a criação das variáveis, deve-se excluir uma delas

deve-se excluir uma delas 2 2 e incluir as restantes no equação a e incluir as restantes no equação a ser estimada.ser estimada.

A interpretação dos parâmetros estimados A interpretação dos parâmetros estimados

Suponha que você tenha um conjunto de indivíduos na sua base de dados os quais não têm seus Suponha que você tenha um conjunto de indivíduos na sua base de dados os quais não têm seus salários expostos. Então você gostaria de predizer quais seriam os salários dessas pessoas com base salários expostos. Então você gostaria de predizer quais seriam os salários dessas pessoas com base nas variáveis disponív

nas variáveis disponíveis em sua base de eis em sua base de dados: você tem acesso dados: você tem acesso aos anos de experiência e o nível deaos anos de experiência e o nível de inglês das pessoas, sendo que essa última variável tem as categorias "Básico"ou 0, "Intermediário"ou inglês das pessoas, sendo que essa última variável tem as categorias "Básico"ou 0, "Intermediário"ou 1 e

1 e "A"Avançavançado"ou 2. do"ou 2. Pelo o Pelo o que foi explicado anterioque foi explicado anteriormente, pelo fato de rmente, pelo fato de a variável expera variável experiênciaiência ser contínua, podemos incluí-la diretamente na equação. Em relação à outra variável, é necessário ser contínua, podemos incluí-la diretamente na equação. Em relação à outra variável, é necessário transformá-la antes de colocá-la na equação. Vamos então transformá-la em 3 variáveis binárias e transformá-la antes de colocá-la na equação. Vamos então transformá-la em 3 variáveis binárias e excluir uma delas. No caso, optei por excluir a variável relativa à categoria "Iniciante"e a equação excluir uma delas. No caso, optei por excluir a variável relativa à categoria "Iniciante"e a equação estimada foi:

estimada foi:

     

salar

salarii = = 100 100++1515∗∗expexpii + +9090∗∗intermintermii + +150150∗∗avancavancii    (3.2)(3.2)

Vamos primeiramente começar com o

Vamos primeiramente começar com o b b, que nesse caso assumiu o , que nesse caso assumiu o valovalor 100. r 100. Nosso modeloNosso modelo

estimado está nos dizendo que se

estimado está nos dizendo que se todas as variáveis forem nulas, ou seja, todas as variáveis forem nulas, ou seja, a pessoa não tem a pessoa não tem experiênciaexperiência e tem um nível iniciante de inglês, seu salário predito é 100. Os parâmetros estimados também me e tem um nível iniciante de inglês, seu salário predito é 100. Os parâmetros estimados também me dizem que a cada

dizem que a cada ano adicional de experiência, é esperado ano adicional de experiência, é esperado que os indivíduos tenham 15 de acréscimoque os indivíduos tenham 15 de acréscimo em seu salário e que, em relação às pessoas que tem nível iniciante de inglês, ter nível intermediário em seu salário e que, em relação às pessoas que tem nível iniciante de inglês, ter nível intermediário aumenta o salário esperado em 90 e ter nível avançado de inglês aumenta o salário em 150. Se por aumenta o salário esperado em 90 e ter nível avançado de inglês aumenta o salário em 150. Se por um acaso omitíssemos a variável

um acaso omitíssemos a variável interm interm e não a que denota o nível iniciante, a equação estimada e não a que denota o nível iniciante, a equação estimada

seria: seria:

     

salar

salarii = = 190 190++1515∗∗expexpii−−9090∗∗inicinicii + +6060∗∗avancavancii    (3.3)(3.3)

Isso acontece porque agora mudou-se o benchmark: como a categoria de inglês intermediário Isso acontece porque agora mudou-se o benchmark: como a categoria de inglês intermediário foi omitida dessa vez, os outros parâmetros dev

foi omitida dessa vez, os outros parâmetros devem mudar para em mudar para se adaptarem à essa se adaptarem à essa mudança. mudança. SeSe

11É uma constante geralmente compartilhada por diversos indivíduos da base de dados e que, no contexto do MachineÉ uma constante geralmente compartilhada por diversos indivíduos da base de dados e que, no contexto do Machine

Learning, aumento o poder de predição do modelo. Learning, aumento o poder de predição do modelo.

22Para evitar o problema da Multicolinearidade:Para evitar o problema da Multicolinearidade: https://en.wikipediahttps://en.wikipedia.org/wiki/Multicoll.org/wiki/Multicollinearityinearity,, que que

causa instabilidade nas predições. causa instabilidade nas predições.

Referências

Documentos relacionados

Antes porém me identifico com a abertura da noção conceitual de pansexualidade, a qual pode ser vista/lida como intensa manifestação sociocultural de uma sexualidade

Sob essa perspectiva, a extensão viabilizou notar o desconhecimento prévio das pessoas sobre ISTs, bem como sobre os serviços que são oferecidos gratuitamente a nível de Sistema

COMUNITÁRIA DE DESENVOLVIMENTO RURAL VINTE E NOVE DE AGOSTO INFORMAÇÕES INCOMPLETAS NA FICHA DE CREDENCIAMENTO ASSOCIAÇÃO COMUNITÁRIA DE DESENVOLVIMENTO RURAL

A estas variáveis incluiu-se ainda um efeito moderador de modo a estudar a influência de uma situação de insolvência sobre as variáveis que estão associadas

O Plano de Curso parte do pressuposto teórico anunciado pela proposta estadual para os cursos de PROEJA, nesse sentido, o Plano cita como referência, conforme

foram encontrados, mostrando a importância de tal investi- gação com uso de um método objetivo, pois a otite média e perda auditiva do tipo condutiva são patologias que ocorrem

Para lidar com o problema de regressão linear múltipla, é mais conveniente usar notação matricial, pois assim tem-se uma apresentação muito compacta dos dados, do modelo e dos

Na Parte 2, apresentamos extensões que permitem a aplicação para fenômenos não lineares e mais complexos, nos quais variáveis interagem entre si e modificam os efeitos umas