Escolar Documentos
Profissional Documentos
Cultura Documentos
1 2
Conceitos de IA
Nesta aula introdutória, iniciaremos com
conceitos elementares de inteligência Abordagens de IA
artificial (IA) e evoluiremos até o Teoria da aprendizagem e treinamento em
entendimento dos rudimentos de ambientes determinísticos
aprendizagem de máquina (ML), Treinamento supervisionado x treinamento
interpretação de parâmetros por máquina auto-organizado
(DL) e reinforcement learning (RL)
Treinamento por reforço
3 4
Terminologia
Agente inteligente
Conceitos de IA Meio
Ação
Política e função do agente
Estado
5 6
Agente inteligente é tudo o que pode ser
considerado “capaz de perceber seu
ambiente por meio de sensores e de agir
sobre esse ambiente por intermédio de A ausência de aprendizagem não
atuadores” (Norvig, 2013, p. 30) descaracteriza o agente reativo como
inteligente (Faceli et al., 2021, p. 1)
Agente reativo – ações plenamente
determinadas pelo seu criador
Agente baseado em aprendizagem
7 8
9 10
Estado designa a
relação atual do
agente com o meio
Política e função do agente ... Aguardando
abertura da porta
Valor do estado é
Política ou função do agente é uma a avaliação da Aberta
mesmo de Mover
...
um sistema físico para direita
escolher mover-
se para outro
estado
11 12
Abordagens de IA
Há técnicas de IA que têm por base o
processo mecânico de raciocínio humano
13 14
IA simbólica
Uso de algoritmos de solução de problemas
dedicados, chamados de sistemas
Simbólica
especialistas ou sistemas baseados em
ML conhecimento
Neurociência computacional Projetista cria um motor de inferência,
IA forte x IA fraca algoritmo que toma as decisões baseado em
regras se-então
Técnicas de ML podem ser agregadas a estes
sistemas, permitindo certa evolução
15 16
ML ML
Técnicas de ML surgiram como incrementos aos
métodos clássicos de IA As técnicas de ML se assemelham a métodos
Algoritmos de ML são capazes de criar uma de análise estatística descritiva ou preditiva
árvore de busca ou um conjunto de regras
baseado em datasets tratados previamente A popularidade desta aproximação cresceu
Árvores de Decisão e Conjunto de Regras substancialmente com a disponibilidade de
Peso bibliotecas de algoritmos
< 50 ≥ 50
17 18
ML Neurociência computacional e IA
conexionista
Representation learning ou feature learning (FL)
– métodos que permitem à máquina consumir Tentativa de simulação do processo biológico
dados naturais e descobrir, então, as
do raciocínio humano
representações necessárias para o algoritmo de
ML Entende o raciocínio pela óptica das conexões
Deep learning (DL) – evoluções de FL com vários entre neurônios
níveis de representação
Boa parte da memória e da capacidade de
“Pilha” de métodos de FL, obtendo-se, a cada interpretação racional está ligada às
passo na pilha, um nível maior de abstração sinapses neurais
Redes neurais
19 20
21 22
IA forte x IA fraca
23 24
Teoria da aprendizagem e treinamento em Treinamento de agentes
ambientes determinísticos
Antigos sistemas especialistas já possuíam,
Treinamento de agentes
em sua concepção, as informações
Métodos de treinamento de agentes necessárias para a tomada de decisão
Aprendizagem por correção de erro Redes neurais são sujeitas a treinamento
Aprendizagem baseada em memória prévio à sua operação
Aprendizagem por árvores de decisão Modelos de ML aprendem tendo como base
conjuntos de dados escolhidos para este fim
Aprendizagem competitiva e hebbiana
(datasets)
25 26
27 28
exemplos de entrada- 0 0
saída classificados em 0
Uma ou 0
Vetor de
mais x(n) Neurônio yk(n) dk(n) determinada ordem 0 0
entrada
camadas de de saída ∑ 1 1 0
0
neurônios k - + Compararemos o valor 0
ocultos 0d 0
de entrada (chamado de Estranho 0
eK(n) 1 1
vetor de teste) com as 1 1 111
amostras de memória e
1 1
tomaremos a decisão 1
Fonte: Haykin, 2011, p. 77. “mais próxima” Fonte: Haykin, 2019, p. 80.
29 30
Aprendizagem por árvores de decisão Aprendizagem por árvores de decisão
Altura?
função de uma série de testes de hipóteses segundo sua Não amarelo Próximo ao amarelo
31 32
33 34
35 36
Treinamento supervisionado
Vetor
Treinamento auto-organizado
descrevendo
o estado do
ambiente
Há uma regularidade estatística em fenômenos
Ambiente Professor naturais
Os dados tendem a auto-organizar-se
Resposta
desejada
Em 1976, o prêmio Nobel de química foi
concedido a Prigogine pela aguardada
Resposta + comprovação desta tendência
Sistema de real
∑
aprendizagem
- Os parâmetros livres de uma RNA tenderão, se
permitirmos que se alterem por si, a produzir
uma rede capaz de compreender, ou generalizar,
Sinal de erro o processo inicialmente caótico a que ela está
Fonte: Haykin, 2011, p. 88.
sujeita
37 38
39 40
41 42
Ambiente estocástico e decisão sequencial Ambiente estocástico e decisão sequencial
Ambientes estocásticos → a amostragem pode O agente deve reavaliar o meio a cada
prever com probabilidade P a reação do meio – decisão tomada
incerteza
Previsibilidade em ambiente estocástico A próxima decisão será baseada na
Amostra
Indução inválida
percepção atual de um meio em mutação e
não alcançará necessariamente seu objetivo
Deve-se analisar também a eficiência da série
de decisões tomadas para alcançar certo
objetivo. Este problema foi enfrentado pelo
Ambiente atual Ambiente futuro
Fonte: Brustolin, 2022. matemático russo Andrei Markov
43 44
MDP:
Após a ação, o agente analisa novamente o
As mudanças do meio tendem a ser meio e traduz a eficácia mediante uma
gradativas recompensa, positiva ou negativa
Os resultados das ações tendem a aproximar- Ao longo de uma sequência de decisões, a
se do pretendido, estatisticamente somatória das recompensas recebidas
fornecerá informações sobre a
assertividade das decisões do agente
45 46
47 48
Ambientes de RL
49 50
51
Aula 1
1 2
Surgimento da área de IA
Aprendizagem de máquina e ciência de dados
Conceitos básicos
Dado, informação e atributo
3
Tipos de aprendizagem 4
42 42
Ferramentas necessárias
3 4
Inteligência artificial
Alan Turing
Teste de Turing
A inteligência está relacionada com a nossa Um entrevistador interage com uma
capacidade de raciocínio entidade, sem conseguir vê-la
O que é inteligência? Passa a perguntar por escrito
5 6
42
Uma pergunta lançada em 1950: uma
42
Ao final da entrevista, lhe é pedido que
máquina pode ser dotada de inteligência? identifique se é um humano ou uma
máquina
5 6
1
Evolução da área
Capacidades necessárias para ser aprovado
(Russel; Selvig, 2013)
Capacidade robótica
Visão computacional Décadas de 1950-60
Processamento de linguagem natural Década de 1970
7
42
Representação do conhecimento 8
42
Década de 1980
Raciocínio automatizado De 1995 até hoje
Aprendizado de máquina
7 8
Detecção de spam
Planejamentos logísticos Área estabelecida
Tradução automática de voz e texto Dados e modelos disponíveis
Jogos de computador Barateamento do armazenamento
9 10
9 10
A aprendizagem de máquina
11 12
2
Sistema baseado em
Sistema baseado em regras
aprendizagem de máquina
Dados
Idade Nacionalidade Altura Peso Sexo Gosta de futebol Salário
Sistema em 0
1
22
52
0
1
1,70
1,75
75
80
0
0
1
1
2500
2500
Atualização
produção 2
3
31
65
1
1
1,50
1,95
65
86
1
0
1
0
4500
6500
dos dados
4 17 0 1,81 95 0 1 1500
5 54 0 1,65 80 1 0 3500
7 25 1 1,85 65 1 1 2245
8 49 0 1,71 75 0 0 25000
9 26 1 1,81 80 1 1 8000
Avaliação de Avaliação de
erros e falhas erros e falhas
do sistema do sistema
13 14
15 16
17 18
3
Informação – quando analisada, agregada e
Dados quando processados geram
cruzada – gera conhecimento
informação
Exemplo: pessoa nascida em 10 de julho de
Exemplo: data de nascimento – 10 de julho
1998 + nacionalidade brasileira + idade 22
19
de 1998, ano atual – 2020, idade 22 anos 20
42 42
anos = direito ao voto
19 20
Tipos de dados
21 22
Atributos e características
Dados categóricos
Nominais: valores discretos que não
envolvem valor quantitativo e não possuem
Atributo: propriedade de um fenômeno ou
relação de ordem entre si (idiomas que
entidade que pode ser mensurada
uma pessoa fala)
Atributo pode ser dado ou informação
23
42 Ordinais: valores discretos que possuem 24
42
23 24
4
Atributos Vetor de características
25 26
3 65 1 1,95 86 0 0 6500
Salário
15000
4 17 0 1,81 95 0 1 1500
27 5 54 0 1,65 80 1 0 3500 28
10000
42 42
8 49 0 1,71 75 0 0 25000 0
0 10 20 30 40 50 60 70 80
9 26 1 1,81 80 1 1 8000
idade
27 28
29 30
5
Aprendizagem supervisionada Detecção de spam – atributos
POSIÇÃO ATRIBUTO VALORES POSSÍVEIS
31 instâncias 32
42 42 5 Quantidade de erros gramaticais? 0 - 1000
Cada instância é identificada por um Quantidade de vezes que seu
6 0 - 1000
rótulo/classe nome aparece no texto?
7 Mensagem tem assinatura? 0 – não, 1 – sim
8 Classe/Rótulo 0 – spam, 1 - não-spam
31 32
33 mensagem 03 03 0 0 1 19 0 0 0 (spam) 34
42 42 ATRIBUTOS (1-7) CLASSE
mensagem 05 05 1 0 0 1 2 1 1 (não-spam)
33 34
msg 06
Dados de aprendizagem
msg 01
msg 04
spam
Não em informação de rótulo/classe
msg 06
Modelo de
não-spam msg 05
classificação Tenta aprender sozinho
spam
35 de e-mails 36
msg 02
Busca aprender relações entre os dados
42 42
não-spam
spam msg 03
spam
35 36
6
Dados não rotulados Dados não rotulados
id Idade Gosta de esportes Gosta de ler Gosta de filmes Código município Sexo Grupo 01
Grupo 02
4
0 1 22 0 0 1 4106902 1
1 2 18 1 1 1 4105508 0 3
id 2
37 2 3 40 0 1 1 4106902 1 38
42 42
id 4 id 3
2
3 4 35 0 1 1 4105508 1
4 5 26 0 0 1 4106902 0 1
id 1 id 5
0
0 10 20 30 40 50 60 70 80
37 38
Ferramentas do profissional
Linguagem de programação
Ferramentas necessárias Tratamento de manipulação de dados
Processamento numérico
39 40
Visualização de dados
42 42
39 40
Linguagem de programação
Bibliotecas do Python
Python é interpretada
Pandas: manipulação de dados
Python é orientado a objetos
NumPy: cálculo computacional
Python é portável
41 42
Matplotlib: visualização de dados
Python é escalável
42 42
41 42
7
43
42
43
8
Aula 2
1 2
Intercâmbio de dados
Processamento numérico
Formatos de intercâmbio de dados
Manipulação de dados
Visualização de dados
Bases de dados de aprendizagem
3 4
5 6
Arquivos JSON
idade, nacionalidade, altura, peso, sexo, gosta de futebol, salario
22, 0, 1.7, 75, 0, 1, 2500
52, 1, 1.75, 80, 0, 1, 2500 JavaScript Object Notation
31, 1, 1.5, 65, 1, 1, 4500
65, 1, 1.95, 86, 0, 0, 6500 Inspirado em JavaScript
17, 0, 1.81, 95, 0, 1, 1500
54, 0, 1.65, 80, 1, 0, 3500 Legível para humanos,
30, 0, 1.9, 105, 1, 1, 1200
25, 1, 1.85, 65, 1, 1, 2245 fácil para máquinas
49, 0, 1.71, 75, 0, 0, 25000
26, 1, 1.81, 80, 1, 1, 8000 Facilmente associado
a estruturas de dados
7 8
9 10
11 12
Biblioteca NumPy
13 14
import numpy as np
cliente_01 = np.array([22,0,1.70,75,0,1,2500])
Podem ser construídos todos_clientes = np.array([[52,1,1.75,80,0,1,2500],
a partir de listas e tuplas [31,1,1.50,65,1,1,4500],
[65,1,1.95,86,0,0,6500],
Identificados pelo seu formato
[17,0,1.81,95,0,1,1500],
Os dados são de um único tipo [54,0,1.65,80,1,0,3500],
])
A biblioteca tem seus tipos próprios # Vectorization e broadcasting
array_comparacao = array_todos - vetor_cli_01
15 16
17 18
Outras bibliotecas
TensorFlow
PyTorch
19 20
Principal estrutura
Lida com dados de tipos diferentes Lembra uma planilha eletrônica
Carrega dados de diferentes fontes gosta de
idade nacionalidade altura peso sexo salário
futebol
Filtra, separa, agrupa e ordena Ana 22 Brasileiro 1,70 75,0 Feminino True 2500
Facilmente integrável com NumPy e Beto 52 Estrangeiro 1,75 80,0 Masculino True 2500
21 22
import pandas as pd
Criação de um DataFrame
dados_clientes = {"idade": [22, 52, 31, 65, 17],
TIPO DE DADO COMPORTAMENTO
"nacionalidade": ["brasileiro","estrangeiro",
Cada objeto iterável dentro do dicionário "estrangeiro", "estrangeiro",
Dicionário de
se torna uma coluna, e a chave se torna "brasileiro"],
listas e tuplas
o rótulo da coluna
"altura": [1.7, 1.75, 1.5, 1.95, 1.81],
Cada dicionário se torna uma coluna, "peso": [75.0, 80.0, 65.0, 86.0, 95.0],
Dicionário de
e as chaves dos dicionários internos "sexo": ["feminino", "masculino", "feminino",
dicionários
se tornam os rótulos das linhas
"masculino", "feminino"],
Lista de dicionários, "gosta de futebol": [True, True, True,
Cada item se torna uma linha do DataFrame
lista ou tuplas False, True],
Cria um DataFrame igual ou com "salario": [2500, 2500, 4500, 6500, 1500]}
Outro DataFrame
novos índices, se estes forem passados
Cria um DataFrame de forma semelhante df_clientes = pd.DataFrame(data=dados_clientes,
Array NumPy index=["Ana","Beto","Bia","Carlos","Carol"])
a quando passamos uma lista de listas
23 24
Selecionar apenas uma linha
Operações no DataFrame
df_clientes.loc["Ana"]
Selecionar apenas uma coluna idade 22
df_clientes["idade"] nacionalidade brasileiro
Ana 22 altura 1.7
Beto 52 peso 75
Bia 31 sexo feminino
Carlos 65 gosta de futebol True
Carol 17 salario 2500
Name: idade, dtype: int64 Name: Ana, dtype: object
25 26
Visualização de dados
df_filtro = df_clientes.loc[:,["idade","sexo","salario"]]
df_filtro[[df_filtro.idade > 30]]
idade sexo salario
Bia 31 feminino 4500
Carlos 65 masculino 6500
27 28
Biblioteca Matplotlib
29 30
Peso X Altura % Gostam de Futebol
gosta de 190
nome idade nacionalidade altura peso sexo salário Não Gosta
futebol
180
0 Aldo 22 0 1,70 75 0 1 2500 30.0%
170
1 Beto 52 1 1,75 80 0 1 2500 70.0%
160
2 Bia 31 1 1,50 65 1 1 4500 150 Gosta
3 Carlos 65 1 1,95 86 0 0 6500 80 100
4 Diego 17 0 1,81 95 0 1 1500
Salários Salários por Idade
5 Daina 54 0 1,65 80 1 0 3500
6 Carol 30 0 1,90 105 1 1 1200 6
20000
7 Fabia 25 1 1,85 65 1 1 2245 4
8 Felix 49 0 1,71 75 0 0 25000
2 10000
9 Gaia 26 1 1,81 80 1 1 8000
0
10000 20000 20 40 60
31 32
Outras bibliotecas
Seaborn
Datasets
Plotly
Bokeh
E muitas outras
33 34
Dataset
35 36
Dados do dataset Onde obter datasets
37 38
39 40
3 4.6 3.1 1.5 0.2 Iris-setosa 0 std 0.828066 0.433594 1.764420 0.763161 0.819232
4 5.0 3.6 1.4 0.2 Iris-setosa 0
min 4.300000 2.000000 1.000000 0.100000 0.000000
... ... ... ... ... ... ...
145 6.7 3.0 5.2 2.3 Iris-virginica 2 25% 5.100000 2.800000 1.600000 0.300000 0.000000
146 6.3 2.5 5.0 1.9 Iris-virginica 2 50% 5.800000 3.000000 4.350000 1.300000 1.000000
147 6.5 3.0 5.2 2.0 Iris-virginica 2
75% 6.400000 3.300000 5.100000 1.800000 2.000000
148 6.2 3.4 5.4 2.3 Iris-virginica 2
max 7.900000 4.400000 6.900000 2.500000 2.000000
149 5.9 3.0 5.1 1.8 Iris-virginica 2
41 42
Dividindo os dados
import numpy as np
from sklearn import datasets Notação X (características),
from sklearn.model_selection import
y (classes/rótulos)
train_test_split Treino – 75%/testes – 25%
Dados podem fornecer
iris_X, iris_y = capacidade de generalização
datasets.load_iris(return_X_y=True)
X_train,X_test,y_train,y_test =
train_test_split(iris_X, iris_y, random_state=0)
43 44
Aula 3
1 2
3 4
Quantidade x qualidade
Localização em banco de dados
Relevância dos dados
Relação temporal
Conversão e agregação de dados
Disponibilidade
Determinação dos atributos relevantes
Produção de dados sintéticos
Possível necessidade de conversões
5 6
Extração de características
Normalização de atributos por escala
Agregação de valores
Geralmente coloca-se entre [0, 1]
Ex.: quantidade de ligações, de reservas
Normalização por padronização
Decomposição de dados
Considera a distribuição dos dados
Ex.: 10/09/2019 20:30h ou
Cada atributos terá médio 0 e
terça-feira, 10, 09, 2019, 20:30h
desvio-padrão 1
Composição
A operação tem que ser reversível
Ex.: data de check in – data de reserva
7 8
9 10
# Lê o dataset de carros
carros = pd.read_csv("carros.csv")
X = carros.loc[:, 0:-1].to_numpy()
y = carros['label'].to_numpy() Árvores de decisão
11 12
Como funciona Atributos são utilizados na separação
Idade 40.0
Samples: quantidade Idade 40.0
1
Aldo
Beto
22
52
0
1
1,70
1,75
75
80
0
0
1
1
2.500
salario ≤ 3000,0
de pureza do nó salario ≤ 3000,0
3 Carlos 65 1 1,95 86 0 0 6.500 gini = 0.0 gini = 0.0
gini = 0.375 gini = 0.375
samples = 6
Nó samples = 6
Nó
Value: lista de amostras
4 Diego 17 0 1,81 95 0 1 1.500 samples = 4 samples = 4
value = [0, 6] value = [0, 6]
value [3, 1] value [3, 1]
class = gosta futebol class = gosta futebol
5 Daiana 54 0 1,65 80 1 0 3.500 class = não gosta futebol class = não gosta futebol
Class: categoria
8 Felix 49 0 1,71 75 0 0 25.000
gini = 0.0 gini = 0.0 gini = 0.0 gini = 0.0
Folha Folha
9 Gaia 26 1 1,81 80 1 1 8.000 samples = 1 samples = 3 samples = 1 samples = 3
das amostras
value = [0, 1] value [3, 0] value = [0, 1] value [3, 0]
class = gosta futebol class = não gosta futebol class = gosta futebol class = não gosta futebol
13 14
Tipos de algoritmos
15 16
Audio de Fabrica,
Tamanho do conjunto de treino 9427
de todas as
gasolina tracao_ BMW 1
2011 335.0 6.0 MANUAL 2.0 Luxo, compacto Cupê 26 19 3916 46135
premium traseira Series M
Alta-Performance
Tamanho do conjunto de testes 2357
categorias
gasolina 6.0 tracao_ Luxo, BMW 1
2011 300.0 MANUAL 2.0 compacto Conversível 28 19 3916 40650
premium traseira Performance Series
2011
gasolina
premium
230.0 6.0 MANUAL
tracao_
traseira
2.0
Luxo,
Performance
compacto Cupê 28 18 3916 29450
BMW 1
Series
O teste também Quantidade de classes 48
gasolina
convertidas em números
gasolina tracao_ Luxo, BMW 1
2011 230.0 6.0 MANUAL 2.0 compacto Cupê 28 18 3916 31200
premium traseira Performance Series
2012
gasolina
premium
300.0 6.0 MANUAL
tracao_
traseira
2.0
Luxo,
Alta-performance
compacto Cupê 28 20 3916 39300
BMW 1
Series
Classes ou labels são os
2012
gasolina
premium
230.0 6.0 MANUAL
tracao_
traseira
2.0 Luxo compacto Conversível 28 18 3916 36900
BMW 1
Series
modelos de automóveis
gasolina tracao_ BMW 1
2013 230.0 6.0 MANUAL 2.0 Luxo compacto Conversível 27 18 3916 37200
premium traseira Series
17 18
Treinando árvore de decisão # Seleciona apenas as colunas necessárias
X = carros.loc[:, 'ano':'preco_venda'].to_numpy()
import pandas as pd y = carros['label'].to_numpy()
from sklearn import tree
from sklearn.model_selection import # Divide o conjunto em treinamento e teste, na
train_test_split proporção 80-20
X_treino, X_teste, y_treino, y_teste =
train_test_split(X, y,
# Lê o dataset de carros test_size=0.20,
carros = pd.read_csv("carros_categorical.csv") random_state=42)
19 20
21 22
VALORES REAIS
DEFINIÇÃO SIGNIFICADO
Fácil de analisar REAL
de forma
Instâncias preditas como
Verdadeiros Falsos Verdadeiros MODELO
V
negativas pelo modelo, que
Negativos
Positivos Positivos realmente são negativas
PREDIÇÃO
isolada NÃO CANCER 0 98
23 24
Indica, do total de predições, Indica, do total de positivos,
quantas de fato estão corretas quantos foram preditos corretamente
Precisão baixa = muitos falsos positivos Recall baixo = muitos falsos negativos
Custo dos falsos positivos é alto Custo dos falsos negativos é alto
Ex.: detecção de spam Ex.: detecção de fraude
25 26
Matriz de confusão
Diferente de precisão 6
precisão * recall
F1 = 2 x 0
precisão + recall não gosta gosta futebol
futebol
PREDICTED LABEL
27 28
Melhorando um modelo
max_depth = 5 max_depth = 15
max_features = 2 max_features = 14
29 30
Serialização
Converte objetos da
Utilizando um modelo treinado linguagem em sequência de bits
Comum em diversas linguagens
Disponível no Python
Biblioteca Pickle
31 32
import pickle
33 34
Biblioteca Joblib
Combinação de modelos
Utilizar JSON
Resultado da serialização pode ser alterado
Risco de segurança
35 36
Ensembles
37 38
Subconjunto
Classificador 01 01 de treino
Classificador 03
Dados
Treino**
1 Agregação de
Dados Classificador 02 Predição Final
Resultados
Treino
3 Subconjunto
Agregação de
Predição Final 02 de treino
Dados Resultados
Treino
Classificador 02
Dados
Classificador 03
Treino* 2
Subconjunto
03 de treino
39 40
Classificador 01 Predições 01
Isolation Forest
Extra Trees Classifier
Dados Classificador 02 Predições 02 Meta Classificador Predição Final
Classificador 03 Predições 03
41 42
Aula 4
Classificador bayesiano
Usando modelo bayesiano
Classificador Bayesiano
Regressão linear e logística
Usando modelos de regressão
Classificação baseada em vizinhança
Teorema de Bayes
Sistemas antispam
Qual a probabilidade de A ocorrer se B ocorreu ?
Classificador probabilístico
P(A | B): probabilidade a posteriori
Naive Bayes Aquilo que se deseja descobrir
Baseado no Teorema de Bayes P(B | A): probabilidade de B dado A
Desconsidera as relações entre atributos P(A): probabilidade a priori
P(B): probabilidade marginal
Classificador bayesiano Qual a probabilidade de um cliente gostar de futebol
dado que é homem e brasileiro?
Qual a probabilidade de uma instância ser da
P(homem | gosta de futebol) = 57%
classe y ?
P(brasileiro | gosta de futebol) = 57%
P(y | x1,…,xj): probabilidade a posteriori
P(gosta de futebol) = 70%
y: classe ou categoria
P(homem) = 60%
Gosta
Masculino Feminino Brasileiro Estrangeiro Total
x1,…,xj: atributos da
futebol
SIM 40 30 40 30 70
Diferentes implementações
Dataset Classificação
num_ km_por_l km_por_l
cilindros popularid preco_ve
ano combustivel hp tipo_transmissao tracao portas categoria tamanho estilo _estrada _cidade label
ade nda
Audio de
gasolina 335.0 tracao_tr Fabrica, 26 19 46135 BMW 1
2011 6.0 MANUAL 2.0 compacto Cupê 3916
premium aseira Luxo, Alta- Series M
Performance
Luxo,
gasolina 300.0 tracao_tr Conversív 28 19 40650 BMW 1
Tarefa
2011 6.0 MANUAL 2.0 Performance compacto 3916
premium aseira el Series
2011
gasolina 300.0
6.0 MANUAL
tracao_tr
2.0
Luxo, Alta-
performance compacto Cupê
28
20 3916
36350 BMW 1
Dataset de automóveis
premium aseira Series
2011
gasolina
premium
230.0
6.0 MANUAL
tracao_tr
aseira
2.0
Luxo,
Performance compacto Cupê
28 18
3916
29450 BMW 1
Series Dados os Total de registros do dataset 11913
2012
gasolina 300.0
6.0 MANUAL
tracao_tr
2.0
Luxo, Alta-
compacto Cupê
28
20 3916
39300 BMW 1
Quantidade de classes 48
performance
premium aseira Series
Subaru
… …
1.00
…
1.00
…
1.00
Classificações erradas: 177 Total de registros do dataset 11913
Suzuki 1.00 1.00 1.00
Toyota 1.00 1.00 1.00 Precisão (média): 0,925 Tamanho do conjunto de treino 9427
Real
Volkswagen 0.99 0.95 0.97 Tamanho do conjunto de testes 1845
Volvo 0.87 0.96 0.92 Recall (média): 0,912 Quantidade de características 14
Classificações erradas de um total de 2.357 F1-Score (média): 0,904 Quantidade de classes 381
instâncias: 11
# Calibração isotonica
isotonic = CalibratedClassifierCV(gnb, cv=4,
method='isotonic')
isotonic.fit(X_treino, y_treino)
Y: variável
Investiga relação entre variáveis dependente
Dados
previsão
Regressão logística
Predição categórica
Dados
previsão
Prediz a probabilidade de a
variável independente
assumir determinado valor
Duas classes: regressão
logística binomial
Muitas classes: regressão
logística multinomial
Função sigmoide
Variável
Variável dependente
Regressão logística
Não lida bem com
Regressão linear número elevado
de atributos
Variável independente
Regressão logística Categorização de atributos
tipo_ num_ km_por_l_ km_por_l_ preco_
ano combustivel Hp cilindros tracao categoria tamanho estilo popularidade label
transmissao portas estrada cidade venda
2011
7 300.0 6.0 3 3 2.0 65 0 5 28 20 3916 36350 1
2011
7 230.0 6.0 3 3 2.0 68 0 5 28 18 3916 29450 1 Representa Atributo: tipo_transmissão
2011
2017
2017
3
3
355.0
355.0
8.0
8.0
0
0
0
3
4.0
4.0
49
49
1
1
3
3
22
23
16
16
549
549
60315
48530
0
0
Não há hierarquia 3 MANUAL
1 0 0 0 0
popular 0.60 0.08 0.14
0 1 0 0 0
2803 54
0 0 1 0 0
Popular
0 0 0 1 0
0 0 0 0 1
Não popular Popular
Predicted label
Um pouco melhor que Baixo recall, alta taxa
uma escolha aleatória de falsos negativos
Cada categoria se torna um novo atributo
Resultados regressão logística Regressão linear
Predicted label
Processo supervisionado
possível melhorar
erro quadrático
médio Classificação baseada em vizinhança
Predição
Buscar aumentar
coeficiente de
determinação
Real
Não há certo e
Coeficiente de determinação: 0.60
Quadrado da média dos erros: errado
675861464.37
kNN kNN
Classe 1
Valores de k Underfitting
Baixa capacidade
de generalização
Valores muito baixos
Não consegue
Geram underfitting aprender a partir
Valores muito altos dos dados
Geram overfitting Desempenho ruim
já nos dados de
treino
Predicted label
popular 0.84 0.83 0.84
Aula 5
1 2
Algoritmo k-means
Medidas de distância
Algoritmo k-means
Usando k-means
Agrupamento hierárquico
Outros métodos não supervisionados
3 4
Particionamento dos dados em k-grupos 4 52.0 52.0 102.0 162.0 6.0 1.0 531.0 16240.00
Escolha dos agrupamentos pela distância 995 28.0 66.0 172.0 291.0 13.0 1.0 3637.0 1617.78
5 6
1
Visualização dos dados Separação de grupos
Real
Real
Real
2
2
1 1
0
Idade
Idade
-1
-1
-2
-3
-1 0 1 2 3 -3
Salário -1 0
Salário
1 2 3
7 8
11 12
2
Questionamentos fundamentais Como escolher o valor de k?
Método do cotovelo
Como escolher o k?
Inércia
Qual medida de distância usar?
Distorção
13 14
Método do cotovelo
Medidas de distância
15 16
17 18
3
Pode substituir a distância euclidiana em Distância cosseno
altas dimensões
Baseada na similaridade cosseno
𝒔𝒊𝒎𝒊𝒍𝒂𝒓𝒊𝒅𝒂𝒅𝒆 𝒄𝒐𝒔𝜽
𝒏 𝟏 𝒑. 𝒒 ∑𝒏𝒊 𝟏 𝒑𝒊 𝒒𝒊
𝒅𝒊𝒔𝒕 𝒑, 𝒒 𝒒𝒊 𝒑𝒊 𝒄𝒐𝒔𝜽
𝒊 𝟎 𝒑 . 𝒒 ∑𝒏𝒊 𝟏 𝒑𝒊 ∑𝒏𝒊 𝟏 𝒒𝒊
𝑫𝒊𝒔𝒕â𝒏𝒄𝒊𝒂𝑪𝒐𝒔𝒔𝒆𝒏𝒐 𝒑, 𝒒
𝟏 𝒔𝒊𝒎𝒊𝒍𝒂𝒓𝒊𝒅𝒂𝒅𝒆 𝒑, 𝒒
19 20
Uso da matriz de
tipo_transmissão_1 tipo_transmissão_2 tipo_transmissão_3 tipo_transmissão_4 tracao_1 tracao_2 tracao_3
0 0 0 1 0 0 0 1
covariância
1 0 0 1 0 0 0 1
2 0 0 1 0 0 0 1
inversa permite
3 0 0 1 0 0 0 1
Fonte: Sousa, 2020
4 0 0 1 0 0 0 1
definir o grau de ... ... ... ... ... ... ... ...
11746 0 0 0 0 0 0 1
independência 11747
11748
0
0
0
0
0
0
0
0
0
0
0
0
0
11750
0
0
0
0
0
0
0
0
0
0
0
0
0
21 22
Usando o k-means
2 34.0 89.0 188.0 549.0 12.0 1.0 4849.0 2453.33
23 24
4
Criação e execução do modelo Agrupamentos/clusters
from sklearn.cluster import KMeans Predição Real
import pandas as pd 80
import numpy as np
2
70
# Lê o conjunto de dados 1
60
X = pd.read_csv("dados_clientes_compras.csv").to_numpy()
0
50
Idade
Idade
# Executa k-means -1
40
modelo_kmeans = Kmeans(n_clusters=3).fit(X)
-3
# Realiza a predição 20
25 26
0 52.0 37.0 124.0 194.0 6.0 0.0 455.0 10391.11 0 0.254961 1.594636 2
Por pares ou trios de atributos 1 57.0 57.0 117.0 97.0 7.0 1.0 1516.0 13315.56 1 1.693504 -1.607076 1
2 34.0 89.0 188.0 549.0 12.0 1.0 4849.0 2453.33 2 -2.123146 -1.517009 0
É difícil perceber relações 3 55.0 48.0 120.0 194.0 4.0 1.0 304.0 14568.89 3 0.536663 0.336852 2
4 52.0 52.0 102.0 162.0 6.0 1.0 531.0 16240.00 4 -2.101821 -0.610420 2
Solução é reduzir as n-dimensões ... ... ... ... ... ... ... ... ... ... ... ... ...
995 28.0 66.0 172.0 291.0 13.0 1.0 3637.0 1617.78 PCA 995 -3.001214 -0.628468 0
Principal Component Analysis (PCA) 996 34.0 57.0 171.0 468.0 12.0 1.0 4167.0 3915.56 996 -2.803128 -0.514234 0
997 32.0 25.0 110.0 678.0 17.0 1.0 6061.0 5168.89 997 -2.474521 -0.602548 0
998 56.0 55.0 124.0 49.0 4.0 1.0 379.0 16240.00 998 2.413928 -0.148478 1
999 23.0 31.0 122.0 404.0 12.0 1.0 7652.0 8928.89 999 1.541450 -1.120015 1
27 28
29 30
5
Plotagem paralela
Mostra
informações Agrupamento hierárquico
sobre os
agrupamentos
Permite
Fonte: Sousa, 2020
comparação
31 32
Visualização
Inicia com n grupos contendo uma instância K=2
em árvore
Agrupa os grupos mais próximos K=3
Possível
Recalcula distância dos grupos e repete
K=4 escolher k
Termina com um agrupamento com n agrupamentos
instâncias
Interpretável
Fonte: Sousa, 2020
33 34
35 36
6
Outros algoritmos DBSCAN
37 38
39 40
7
Aula 6
O Perceptron
Redes neurais artificiais
O Perceptron
Redes neurais convolucionais
3
Redes neurais sequenciais 4
45 45
Frameworks especializados
𝒙𝟏 Soma
O Perceptron é um algoritmo 𝒘𝟏 ponderada
Possui quatro partes importantes
5
45
1. Valores de entrada (x1, x2, x3)
2. Pesos (w1, w2, w3) e bias (b) 6
45
𝒙𝟐 𝒘𝟐
𝒘𝟑
Σ y
1
Usando o Perceptron
𝒌 = 𝒙𝟏 . 𝒘𝟏 + 𝒙𝟐 . 𝒘𝟐 + 𝒙𝟑 . 𝒘𝟑 (valores de entrada)
𝑺 = 𝒌 + 𝒃 (soma ponderada) import pandas as pd
𝟎 𝒔𝒆 𝒙 < 𝟎 from sklearn.linear_model import Perceptron
𝒇 𝒙 = (função de ativação)
𝟏 𝒔𝒆 𝒙 ≥ 𝟏
𝒚 = 𝒇 𝑺 (resultado final)
7
45
8
45 # Separação dos dados
Calcula o erro: y (valor correto) - y’
X_treino, X_teste, y_treino, y_teste =
(predição) = erro
train_test_split(X, y, test_size=0.20)
# Treinamento 𝒙𝟐 y
percpetron_clf.fit(X_treino, y_treino) . .
. Camada de
9 10 .
45 45
. . saída
𝒙𝒏
# Teste
Camada de
y_predicao = percpetron_clf.predict(X_teste) entrada Camada oculta
Usando MLP
2
# Criação do modelo Resultados
mlp_clf = MLPClassifier(warm_start=True,
max_iter=500, hidden_layer_sizes=(100,))
# Treinamento
13
mlp_clf.fit(X_treino, y_treino) 14
45 45
# Teste
y_predicao = mlp_clf.predict(X_teste) Acurácia de 91%
Definição do modelo
Parâmetros do modelo
Número de 𝒙𝟏
camadas ocultas
Função de Número de epochs
𝒙𝟐 y
ativação Tamanho do batch
. .
17 Inicialização dos . . Camada de
saída
18 Algoritmo de otimização
45
. . 45
3
Evitando overfitting Evitando underfitting
𝟏
w1 𝒇 𝒙 =
Inicialização dos pesos de todos os neurônios NE1 NO1 𝟏 𝒆 𝒙
w5
Propagação para a frente (forward) b1
w2
Cálculo do erro 1
NS y
mlp_clf = MLPClassifier(warm_start=True,
max_iter=100)
4
Grid search
random_mlp.fit(X_treino_std, y_treino)
5
Redução de dimensionalidade – pooling Arquitetura
Imagem de entrada
Convolução
Matriz (4x) 1 1 1 1 1 1 1 1 1 1 Pooling
Convolução
Matriz (2x2) 0 1 1 1 1 0 1 1 1 1 Pooling
0 0 1 1 1 0 0 1 1 1
10 33 33 10 Pooling max (2x)
0 0 1 1 1 0 0 1 1 1
...
33 155 1 1 1 1 1 1 1 1 1 1
29 10 155 123
0 1 1 1 1 0 1 1 1 1
0 0 1 1 1 0 0 1 1 1
31 111 111 120 120 32 0 0 1 1 1 0 0 1 1 1
45 111 120 45
Classe 1
111 111 111 111
Classe 2
Classificação de imagens
Segmentação de objetos Redes neurais sequenciais
Detecção de faces
33 34
45
Reconhecimento facial 45
Diversos outros
6
Evolução das RNN
𝒚𝟏 𝒚𝟐 𝒚𝟑 𝒚𝒏
Modelagem de linguagem
Tradução de máquina Frameworks especializados
Reconhecimento de voz
39 40
45
Sumarização de texto 45
Vários outros
import keras
from keras.models import Sequential
Tensorflow from keras.layers import Dense
Pytorch
model = Sequential()
41 CNTK 42
45 45
model.add(Dense(30, input_dim=10,
Keras activation='relu'))
model.add(Dense(30, activation='relu'))
model.add(Dense(2, activation='softmax'))
7
Treinamento do modelo
epochs=100,
batch_size=64)
Monitorando o treinamento
45
45