• Nenhum resultado encontrado

Projeto Integrado em Aprendizado de

N/A
N/A
Protected

Academic year: 2022

Share "Projeto Integrado em Aprendizado de"

Copied!
47
0
0

Texto

(1)

Projeto Integrado em Aprendizado de M´ aquina

Visualiza¸c˜ao

Geanderson Esteves dos Santos

Pontif´ıcia Universidade Cat´olica de Minas Gerais

(2)

Cronograma

17/09 - Conceitos Fundamentais

27/10 - Arquitetura + Ponto de Controle I 05/11 - Visualiza¸c˜ao + Ponto de Controle II 17/12 - Apresenta¸c˜ao Projeto Final

(3)

Distribui¸c˜ao de Pontos

15 - Ponto de Controle I (Aula 2) 15 - Ponto de Controle II (Aula 3) 20 - Apresenta¸c˜ao do Projeto (Aula 4) 20 - Parte Escrita (Aula 4)

30 - Entreg´aveis Projeto (Aula 4)

Politica de Atraso: Cada dia de atraso ser´a descontado 20% da

(4)

Atividades Avaliativas

Ponto de Controle I (27/10) Parte Escrita Vis˜ao Geral Ponto de Controle II (05/11)

Apresenta¸c˜ao Oral sobre a Prototipa¸c˜ao Apresenta¸c˜ao do Projeto (17/12) Parte Escrita (17/12)

Entreg´aveis Projeto (17/12)

(5)

Recursos

Contato

geanderson@dcc.ufmg.br Site da Disciplina

http://homepages.dcc.ufmg.br/~geanderson/piam.html

GitHub da Disciplina

https://github.com/gesteves91/piam Canvas

https://pucminas.instructure.com/courses/6899

(6)

T´opicos

1. Visualizando os Resultados 2. Ferramentas Avan¸cadas 3. Busca por Parˆametros 4. Interpretabilidade 5. Recomenda¸c˜oes 6. Projeto

(7)

Visualizando os Resultados

(8)

Introdu¸c˜ao

Visualiza¸c˜ao ´e muito importante para chamar aten¸c˜ao de interessados sobre o seu resultado

Ferramentas mais utilizadas em Python:

- Matplotlib - Seaborn - Plotly - ggplot - entre outras

(9)

Matplotlib

Ferramenta foi baseada no MATLAB [1]

Muito utilizada para visualiza¸c˜ao de dados em Python

Ao mesmo tempo, ´e a ferramenta menos chamativa visualmente Funciona muito bem quando combinada com outras ferramentas (e.g., seaborn)

(10)

Matplotlib

Exemplo no Matplotlib

i m p o r t m a t p l o t l i b . p y p l o t as plt plt .p l o t([1 , 2 , 3], [4 , 5 , 2]) plt . s h o w ()

(11)

Seaborn

´E uma biblioteca baseada no Matplotlib que sobretudo extende suas funcionalidades

A maior diferen¸ca seria que a interface ´e mais atrativa e informativa

Integra¸c˜ao com pandas dataframes

Parametriza¸c˜ao ´e mais intuitiva do que no matplotlib

(12)

Exemplo Seaborn

i m p o r t s e a b o r n as sns

i m p o r t m a t p l o t l i b . p y p l o t as plt i r i s = sns . l o a d _ d a t a s e t (" i r i s ") sns . s w a r m p l o t ( x=" s p e c i e s ",

y=" p e t a l _ l e n g t h ", d a t a=i r i s )

plt . s h o w ()

(13)

Exemplo Seaborn

(14)

Plotly

´E uma biblioteca que afirma ser ofront-end para aprendizado de m´aquina

Em fun¸c˜ao de utilizar o JavaScript no back, plotly permite uma interatividade com os gr´aficos

Suporta todos os gr´aficos que Seaborn e Matplotlib utilizam Completamente open-source e gratuita

(15)

Exemplo Plotly

i m p o r t p l o t l y . e x p r e s s as px df = px . d a t a . t i p s ()

fig = px . bar ( df , x=" sex ",

y=" t o t a l _ b i l l ", c o l o r=" t i m e ") fig . s h o w ()

(16)

Exemplo Plotly

(17)

Ferramentas Avan¸ cadas

(18)

MLflow

MLflow ´e uma plataforma open-source para gerenciar o ciclo de vida de um projeto de aprendizado de m´aquina

Possui as seguintes funcionalidades:

- Experimentos - Reprodutividade - Deploy

- Registro do modelo

(19)

MLflow Uso

O MLflow suporta muitas frameworks que usamos na pr´atica Seu uso consiste em basicamente logar os parˆametros e m´etricas para serem exibidos na interface

m l f l o w . l o g _ p a r a m (" a l p h a ", a l p h a )

m l f l o w . l o g _ p a r a m (" l 1 _ r a t i o ", l 1 _ r a t i o ) m l f l o w . l o g _ m e t r i c (" r m s e ", r m s e )

m l f l o w . l o g _ m e t r i c (" r2 ", r2 )

(20)

MLflow Funcionalidades

A interface do MLflow permite que o cientista de dados acompanhe e compare diversos experimentos

Muito ´util para variar parˆametros e visualizar os resultados em um UI limpa

https://mlflow.org/

(21)

Busca por Parˆ ametros

(22)

Hyper-parˆametros

Busca por hyper-parˆametros ´e uma tarefa necess´aria para qualquer modelo

Por meio dessa busca vocˆe pode“tunar” o seu modelo e melhorar a predi¸c˜ao

Existem v´arias t´ecnicas para fazer essa busca:

- Grid Search - Random Search - Naive Bayes

(23)

Optuna

Optuna ´e uma framework agn´ostica para busca de parˆametros Agn´ostica no sentido de ser usada em modelos de aprendizado de m´aquina e aprendizado profundo

Possui duas estruturas b´asicas:

- objective: uma fun¸c˜ao que queremos otimizar - study: corresponde a uma tarefa de otimiza¸c˜ao https://optuna.org/

(24)

Optuna Exemplo

i m p o r t o p t u n a

def o b j e c t i v e ( t r i a l ):

x = t r i a l . s u g g e s t _ u n i f o r m (’ x ’, -10 , 10 ) r e t u r n ( x - 2 ) ** 2

s t u d y = o p t u n a . c r e a t e _ s t u d y ()

s t u d y . o p t i m i z e ( o b j e c t i v e , n _ t r i a l s=100 ) s t u d y . b e s t _ p a r a m s

(25)

Interpretabilidade

(26)

Contexto

No mundo atual ter um modelo de aprendizado de m´aquina que apresenta uma acur´acia elevada n˜ao ´e o suficiente

Al´em disso, precisamos tentar entender as raz˜oes que levaram o modelo a fazer determinadas predi¸c˜oes

Os modelos de aprendizado de m´aquina s˜ao naturalmente vistos como “caixas-pretas”

O nosso modelo ganha muito valor quando qualquer interessado pode raciocinar sobre os resultados

(27)

Aplica¸c˜ao

Depura¸c˜ao de modelo → Por que meu modelo cometeu esse erro?

Detectando problemas de ´etica→ Meu modelo discrimina?

Coopera¸c˜ao Humano-IA→ Como posso entender e confiar nas decis˜oes do modelo?

Conformidade regulamentar→ Meu modelo atende aos requisitos legais?

Aplicativos de alto risco→ sa´ude, finan¸cas, judici´ario, etc

(28)

Interpretabilidade

Uma ´area relativamente nova que vem ganhando destaque ´e exatamente a interpreta¸c˜ao de modelos

Existem diversas t´ecnicas conhecidas para interpretar modelos:

- SHAP - InterpretML - Lime

Todas essas ferramentas s˜ao open-source e dispon´ıveis no GitHub

(29)

SHAP

SHAP (SHapley Additive exPlanations) [2] ´e uma ferramenta que aplica conceitos de teoria dos jogos para interpretar qualquer modelo

Assim, ele conecta ´otima aloca¸c˜ao de cr´edito com explica¸c˜oes locais usando o modelo cl´assico conhecido comoShapley values O modelo ´e agn´ostico no sentido de teoricamente conseguir explicar qualquer modelo de aprendizado de m´aquina

(30)

Exemplo SHAP - Titanic

(31)

Exemplo SHAP - Sum´ario da Explica¸c˜ao

(32)

SHAP em Resumo

O SHAP ´e uma das ferramentas mais importantes de interpretabilidade que existem no mercado

O desenvolvimento da ferramenta continua em alta Funciona com diversos algoritmos de aprendizado:

- Logistic Regression - Random Forest - XGBoost - Entre outros

(33)

Exemplo de Ferramenta usando SHAP

https://bit.ly/335O4U9

(34)

Recomenda¸ c˜ oes

(35)

Aprendizado de M´aquina em Python

Al´em de versionamento e ambientes de desenvolvimento Ferramentas de Python para engenharia de software:

- Gerenciar dependˆencias e ambientes com o (poetry) - Testes unit´arios com o pytest

- Testes de cobertura com oCoverage.py - Automa¸c˜ao dos testes com o Nox - Linter com oFlake8 ouBlack

- Checagem de tipo commypye mytype - Documente o c´odigo comdocstrings

(36)

Poetry

Permite o gerenciamento completo de ambientes e dependˆencias V´arios comandos pr´e-estabelecidos para facilitar o uso da

ferramenta

Cria um ambiente de desenvolvimento automaticamente Arquivopyproject.tomlorquestra todas as dependˆencias https://python-poetry.org/docs/

(37)

Pytest

Framework para desenvolver testes unit´arios em Python

def inc ( x ): r e t u r n x + 1 def t e s t _ a n s w e r ():

a s s e r t inc ( 3 ) = = 5

https://docs.pytest.org/en/stable/

(38)

Coverage.py

Framework para medir cobertura de c´odigo em Python

A ferramenta monitora seu programa para mensurar as partes do c´odigo que n˜ao foram executadas

Assim, ele melhora a eficiˆencia dos seus testes

Importante tentar garantir 100% de cobertura em qualquer sistema de software

https://coverage.readthedocs.io/en/coverage-5.3/

(39)

MyPy

Mypy ´e uma ferramenta que permite configurar tipos em Python

def fib ( n ): a , b = 0 , 1 w h i l e a < n:

y i e l d a

a , b = b , a+b

def fib ( n: int) - > I t e r a t o r[ int ] : a , b = 0 , 1

w h i l e a < n:

y i e l d a

a , b = b , a+b

http://mypy-lang.org/

(40)

Mytype

Mytype checa automaticamente e infere tipos em c´odigo Python

def f ():

r e t u r n " P y C o n "

def g ():

r e t u r n f () + 2 0 1 9

# p y t y p e : l i n e 4 , in g : u n s u p p o r t e d o p e r a n d t y p e ( s ) for +: ’ str ’

# and ’ int ’ [ u n s u p p o r t e d - o p e r a n d s ]

https://github.com/google/pytype

(41)

Nox

Framework para automatizar testes em Python

Praticamente uma expans˜ao do cl´assico Tox do Python

Executa todos os seus testes e fornece detalhamento da execu¸c˜ao https://nox.thea.codes/en/stable/

(42)

Docstrings

Documenta¸c˜ao do c´odigo ´e muito importante para facilitar o entendimento do envolvidos

def c o m p l e x(r e a l=0 . 0 , i m a g=0 . 0 ):

""" F o r m a c o m p l e x n u m b e r . K e y w o r d a r g u m e n t s :

r e a l - - the r e a l p a r t ( d e f a u l t 0 . 0 ) i m a g - - the i m a g i n a r y p a r t ( d e f a u l t 0 . 0 )

"""

(43)

Dicas

Procure um baseline para seu problema e use-o para comparar os resultados

Gaste mais tempo na etapa de modelagem do dado do que propriamente na cria¸c˜ao de modelos

Tente interpretar seus resultados para serem ainda mais ´uteis para os interessados

Procure sempre se atualizar, afinal a todo momento novas ferramentas e t´ecnicas est˜ao sendo propostas na comunidade

(44)

Projeto

(45)

Apresenta¸c˜ao aula do dia 17/12

Eu vou escalar cada grupo em uma janela de tempo de 30 minutos O ideal ´e que vocˆe gaste pelo menos 20 minutos apresentando, e o restante do tempo vamos usar para discutir os resultados

Todos os envolvidos devem estar presentes para avalia¸c˜ao No entanto, vocˆe n˜ao precisa atender a aula, apenas esteja presente no seu hor´ario

Vamos definir o escalonamento juntos agora

(46)

Apresenta¸ c˜ oes

(47)

Referˆencias Bibliogr´aficas

J. D. Hunter.

Matplotlib: A 2d graphics environment.

Computing in Science & Engineering, 9(3):90–95, 2007.

S. M. Lundberg and S.-I. Lee.

A unified approach to interpreting model predictions.

InAnnual Conference on Neural Information Processing Systems (NIPS), 2017.

Referências

Documentos relacionados

O resultado da área equivalente calculado pela análise emergética (115ha) é muito maior que a obtida pela análise de energia bruta (3ha) porque considera toda

A avaliação dos diferentes métodos de preparação da superfície já impressa para a extrusão de uma nova camada na impressão tridimensional por deposição fundida

FICHA DE INFORMAÇÕES DE SEGURANÇA PARA PRODUTOS QUÍMICOS 1 – IDENTIFICAÇÃO DO PRODUTO E DA EMPRESA.. Nome

As sementes tem dormência imposta pelo tegumento e para a superação é necessário submetê-las à embebição em água (24 a 48 horas), escarificação mecânica ou

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

A psicanálise foi acusada de normatizadora (FOUCAULT, 1996) por haver mantido o modelo familiar burguês nuclear como o centro de sua teoria como é manifestado

Therefore, the analysis of suitability of the existing transportation network for riding bicycle in Coimbra should address two important aspects: (i) identifying

The objective of this study is to verify the population density and the dynamics of tillering in the Marandu palisade grass sward subjected to nitrogen (N) fertilization