Capítulo 9
• Métodos de Aprendizagem Supervisionados:
PREDIÇÃO
Introdução
 O objetivo dos modelos preditivos supervisionados é encontrar um modelo que
corretamente associe as variáveis de entrada com a variável objetivo (target). A
combinação de muitas variáveis preditoras (entradas, input), grandes bases de
dados, e bons softwares facilita a construção destes modelos com potencial para
revelar estruturas escondidas. Assim, os modelos preditivos supervisionados têm
grande importância em data mining.
Os modelos de regressão que iremos estudar neste curso usam variáveis
contínuas ou binários como resposta (target). Em regressão nós procuramos
ajustar uma função de regressão. As redes neurais usam os dois tipos de
variáveis citadas, como também variáveis nominais e não apresentam uma
função matemática explicitamente.
Dados de Treinamento
MODELO
Característica:
tem informações
Identificar padrões
válidos para a base
inteira
Após definir o modelo ajustado com os dados de treinamento, o mesmo deve ser
validado com dados independentes do arquivo de treinamento, para cuidar de ter
uma maneira de avaliar a qualidade do modelo em generalizar o que aprendeu.
Como em todas as outras técnicas de data mining os métodos de aprendizagem
supervisionados preditivos não estão imunes a uma má escolha do arquivo de
treinamento, a regra é a seguinte:
“Garbage in, garbage out”
Neste capítulo estudaremos as seguintes técnicas:
I.
Redes Neurais
II.
Regressão Linear Múltipla
III.
Regressão Logística
Objetivo:
O objetivo principal dos modelos preditivos é modelar o relacionamento entre várias
variáveis preditoras (inputs, independentes, explicativas) e uma variável resposta
(target, saída, dependente).
Aplicações dos métodos supervisionados
Preditivos:
Lembrando que mais de um método pode ser usado para resolver o mesmo
objetivo ou problema.
 Regressão linear múltipla:
 quanto um consumidor irá gastar na sua próxima compra?
 Qual será o saldo do cartão de crédito de um correntista?
 quantidade de pedidos online
 uso de telefone celular
 Regressão logística: quando a resposta é binária (sim/não), a regressão
logística binária pode estimar a probabilidade que um
segurado (possui apólice de seguro) solicite formalmente
suas garantias.
 Um usuário de um determinado software irá solicitar uma atualização?
 Um particular dono de casa irá solicitar o refinanciamento da sua casa
própria no próximo trimestre?
 Um consumidor irá responder a uma oferta de mala direta?
Redes neurais: pode ser aplicada para resolver todos os objetivos acima
descritos.
Redes Neurais Artificiais
Redes neurais são uma classe de ferramentas muito poderosas, com propósitos
gerais prontamente aplicáveis para:
 Predição
 Classificação
Agrupamento
 Previsão (Séries temporais)
Exemplos de aplicação:
1.
Avaliar valores (predições) financeiros
2.
Diagnósticos médicos
3.
Identificar grupos de consumidores promissores
4.
Identificar fraudes em transações com cartão de crédito
5.
Predizer a taxa de falhas em máquinas
6.
Vendas (prever valor) futuras
Redes Neurais
Entradas(Inputs)
(Área da
garagem)
(Idade da
casa)
Camada escondida (hidden
layer)
x1
x2
Saídas(Outputs)
y1
..
.
(Valor
da casa)
y2 (depreciação da
casa)
Uma rede neural calcula y1 e y2 (saídas) a partir de x1 e x2 (entradas). O cálculo é um
processo complexo que nós não precisamos entender para poder usar y1 e y2.
Pense uma rede neural como uma “caixa preta” que processa variáveis de entrada para
criar uma saída.
Redes Neurais
Diferentes topologias da rede permite:
•
•
•
•
Predição:
Classificação:
Agrupamentos:
Previsão (Séries temporais)
Quando a saída de uma rede é uma variável quantitativa contínua, como o valor de
uma casa, então ela esta resolvendo um problema de predição. Quando a saída são
valores discretos, então ela está fazendo uma classificação. Ela pode também fazer
uma análise de agrupamentos (redes de Kohonen). A rede neural para séries
temporais treina como uma rede direta (feed-forward), com retropropagação (back
propagation) procurando prever o próximo valor na série em cada passo.
Redes Neurais Artificiais para Predição
Treinamento
Durante a primeira fase de uso de uma rede neural para predição, nós precisamos
treinar a rede usando um grande número de exemplos de treinamento, onde as
entradas e saídas são bem conhecidas. Por exemplo: para calcular o valor de vendas
de uma casa ou apartamento, precisamos conhecer as vendas antecedentes, bem
como uma série de variáveis que afetam os preços de venda. Um exemplo de
registro de treinamento.
Exemplo de um registro de treinamento
Características
Valor
Preço de venda
$ 171,000
Meses passados
4
Onde vive: casa, apto ou outra
1
Ano construção
1923
Número consertos nos encanamentos
9
Tipo de aquecimento
B
Garagem para x carros
0
Área anexa à garagem (square feet)
120
Área de living
1,614
Área de varanda aberta
0
Área de varanda fechada
210
Sala de recreação (área)
0
Área da casa
175
Detalhe técnico
A rede neural trabalha melhor quando todos os valores de entrada e saída estão
entre 0(zero) e 1(um). Portanto, todas as variáveis contínuas e categorizadas
precisam ser transformadas para ter valores entre 0 e 1.
Variáveis contínuas:
Valor original - valor mínimo
Valor transforma do 
Valor máximo - valor mínimo
Variáveis categorizadas:
*Cria
A  0
Dois níveis
B  1
 A  0 ,0
*  B  0 ,5
Três categorias

C  1,0

uma ordenação. Uma outra abordagem é criar variáveis binárias
(dummy’s) para cada valor.
Característica
Exemplo de um registro de treinamento
Faixa
Valor original
Preço de venda
Meses passados
Onde vive: casa, apto ou outra
Ano construção
Número consertos nos
encanamentos
Tipo de aquecimento
Garagem para x carros
Área anexa à garagem
(square feet)
Área de living
Área de varanda aberta
Área de varanda fechada
Sala de recreação (área)
Área da casa
$103,000-$250,000
0-23
1-3
1850-1986
5-17
$ 171,000
4
1
1923
9
Valor
transformado
0,4625
0,1739
0
0,5367
0,3333
A ou B
0-2
0-228
B
0
120
1
0
0,5263
714-4,185
0-738
0-452
0-672
0-810
1,614
0
210
0
175
0,2593
0
0,4646
0
0,2165
A saída da rede também vai ser um número entre zero e um e, portanto, precisa ser
retransformado para valores os originais. Por exemplo, para o valor de venda
predito 0,75, temos:
X  103000
0 ,75 
 X  $213,250
( 250000 103000)
Redes neurais para data mining
supervisionado
Usos mais comuns da rede neural: construir modelos para classificação e predição. Os
passos neste processo são:
1.
Identificar as variáveis (características) de entrada (inputs) e saídas(outputs).
2.
Transformar as variáveis de entrada e saídas de tal forma que a sua amplitude
fique na faixa de 0 a 1.
3.
Escolher a rede com uma topologia adequada.
4.
Treinar a rede com um conjunto representativo de exemplos de treinamento.
5.
Validar a rede com um conjunto de validação totalmente independente dos
exemplos de treinamento. Se necessário, repita o treinamento, ajustando o
conjunto de treinamento, a topologia da rede, e parâmetros. Testar a rede usando
um conjunto de teste para ver quão boa é sua performance.
6.
Aplicar o modelo gerado pela rede para fazer predições com entradas
desconhecidas.
Divisão do arquivo de dados
 Arquivo de treinamento
 Arquivo de validação
 Arquivo de teste
As redes neurais são treinadas usando apenas o arquivo de treinamento. Porém,
existe a necessidade de se saber o momento de parar com a fase de treinamento,
pois existe o perigo de um supertreinamento da rede e, neste caso, a rede perde o
seu poder preditivo.
Para contornar o perigo de memorização por parte da rede, confronta-se o modelo
gerado com a base de validação.
O arquivo de teste é usado para fazer uma verificação independente da
performance da rede, isto é, serão usados registros nunca vistos pela rede. A taxa
de erro observada no arquivo de treinamento é uma boa estimativa da taxa de erro
para registros novos.
O que é uma rede neural?
Exemplos:
Input 1
Input 2
Output
Input 3
Input 4
Uma rede neural bastante simples com 4 entradas (inputs) e produz uma saída
(output, uma resposta). O resultado do treinamento desta rede é exatamente
equivalente à técnica estatística chamada de regressão logística.
Input 1
Input 2
Output
Input 3
Input 4
Camada escondida
(hidden layer)
Esta rede tem uma camada intermediária chamada de camada escondida (hidden
layer). A camada escondida faz a rede mais poderosa no sentido de capacitá-la a
reconhecer mais padrões.
Input 1
Input 2
Output
Input 3
Input 4
Aumentando o tamanho da camada escondida faz a rede apresentar mais poder,
porém traz à rede o perigo de um ajuste muito grande (overfitting). Geralmente é
necessário uma única camada escondida.
Input 1
Input 2
Input 3
Output 1
Output 2
Output 3
Input 4
Uma rede neural pode produzir vários valores de saída.
As 4 redes ilustradas até este ponto são redes neurais diretas (feed-forward).
As redes neurais diretas são as mais simples e o tipo mais usual. Há três questões
básicas que devem serem feitas sobre elas:
i.
O que são unidades e como elas funcionam? Isto é, o que é a função de
ativação? Direta, Cíclica(recorrente, competitiva)
ii.
Como são as unidades conectadas entre elas? Isto é, qual é a topologia da
rede?
iii.
Como a rede aprende a reconhecer os padrões? Isto é, o que é
retropropagação (back propagation) e mais geral como a rede neural é
treinada?
As respostas a essas questões fornecem um conhecimento para entender uma
rede neural básica, conhecimento que fornece orientação para obter melhores
resultados desta poderosa técnica de data mining.
O que é uma unidade de uma rede neural?
As redes neurais artificiais são compostas de unidades básicas desenhadas para
modelar o comportamento dos neurônios biológicos. Veja figura no próximo
slide.
O resultado é exatamente um valor
de saída, usualmente entre 0 e 1 ou
entre -1 e 1.
output
A função transferência calcula o
valor de saída a partir do resultado
da função de combinação

A função de
combinação e a função
de transferência juntas
constituem a função de
ativação

A função de combinação une todas as
entradas num só valor, usualmente
como uma soma ponderada.
Viés
w1
w2
Entradas
w3
Cada entrada tem seu próprio peso,
além disso tem um peso adicional
chamado de viés.
Figura. A unidade de uma rede neural artificial é modelada segundo o neurônio
biológico. A saída da unidade é uma combinação não linear das entradas.
A função de ativação tem duas partes:
1.
Função de combinação
2.
Função de transferência
A primeira parte é a função de combinação que une todas as entradas num
único valor. Como mostra a figura do slide anterior cada entrada numa
unidade tem seu próprio peso. A função de combinação mais comum é a
soma ponderada, onde cada entrada é multiplicada pelo seu peso. Após faz-se
o somatório desses produtos. Esta função é boa para a maioria das situações.
A segunda parte recebe este nome devido ao fato que ela transfere o valor da
função de combinação para a saída da unidade. A próxima figura compara três
funções de transferências típicas: as funções logística, linear e tangente
hiperbólica.
Três f unções de transf erências comuns
1,0
Linear
Tangente hiperbólica
Logística
Valores da função
0,5
0,0
-0,5
-1,0
-10 -9
-8
-7
-6
-5
-4
-3
-2
-1
0
X
1
2
3
4
5
6
7
8
9
10
A forma da função é importante. A função linear tem valor prático limitado. Uma rede
neural direta formada apenas de unidades com função de transferência linear é
equivalente a uma regressão linear simples. As curvas logística e tangente hiperbólica
são funções não lineares e resultam num comportamento não linear. A maior
diferença entre elas está na faixa de suas saídas, entre 0 e 1 para a logística, e entre –1
e 1 para a tangente hiperbólica.
A função de transferência mais comum é a logística. A fórmula da função logística é:
1
Logística( x) 
1  e x
Onde x é o resultado da função de combinação, tipicamente é a soma ponderada das
entradas nas unidades.
Redes neurais diretas (“Feed-forward
Neural Networks”)
A figura no próximo slide ilustra como uma rede neural direta calcula os valores de
saída a partir dos valores de entrada. A topologia ou arquitetura desta rede é bem
típica das redes usadas para predição e classificação. As unidades são organizadas
em três camadas. A camada da esquerda é conectada às entradas, cujos valores
foram transformados para estar dentro da faixa de 0 e 1. Estas unidades são a
camada de entrada da rede. Cada unidade na camada de entrada é conectada
exatamente a uma variável de entrada.
A próxima camada é chamada de camada escondida.
Esta rede contém unidades padrões. As unidades na camada escondida calculam
sua saída multiplicando o valor de cada entrada pelo seu correspondente peso,
fazendo a soma dos resultados, e aplicando a função logística.
Uma rede neural pode ter qualquer número de camadas escondidas, porém,
geralmente, uma camada é suficiente.
0,0000
0,5328
Constante(viés)
-0,231
-0,2164
0,3333
0,479
1,000
Num_apartments
Year_Built
Plumbing_Fixture
Heating_type
Basement_garage
Attached_garage
Living_area
Deck_area
Porch_area
Recrron_area
Basement_area
1
1923
9
B
0
120
1614
0
210
0
175
0
0,5367
0,3333
1
0,0000
0,5263
0,2593
0,0000
0,4646
0,0000
0,2165
0,000
0,5263
0,2593
0,583
0,0000
0,332
0,4646
0,0000
0,2165
Camada
entrada
0,4213
0,573
0,49815
$176,2
0,335
0,0002
Pesos entrada
Saída da unidade
Camada
saída
Camada
escondida
Se aumentar o número de unidades da camada escondida, maior é a capacidade da
rede de reconhecer padrões. Porém isto pode acarretar um problema: desejamos
que a rede aprenda a generalizar os resultados sobre o arquivo de treinamento, e
não que ela memorize (decorre) o arquivo de treinamento. Portanto, a rede não
deve ter uma camada escondida muito grande.
A última unidade à direita (com um só neurônio) é a camada de saída (“output
layer”) pois ela está ligada à saída da rede neural.
Na maioria das vezes, a rede neural é usada para calcular um valor, assim, só há
uma unidade na camada de saída e o valor por ela fornecida está dentro da faixa de
0 a 1. Nós devemos transformar este valor para interpretá-lo. Na figura o valor
0,49815 para $176,228, o qual está bem próximo do seu valor real $171,000.
Camada de saída com mais de uma unidade.
Exemplo: Uma loja de departamentos deseja predizer a probabilidade dos
consumidores comprarem produtos de vários departamentos (roupas femininas,
móveis e entretenimento). As lojas desejam estes resultados para planejar
promoções e fazer uma lista para enviar os catálogos.
Na próxima figura temos a rede com mais de uma saída usada, para predizer o
departamento onde os consumidores irão fazer sua próxima compra.
Última
compra
Idade
Gênero
Saldo
Propensão para
roupas femininas
Propensão para
móveis
Propensão para
entretenimento
cartão
Após fornecer as entradas de um fornecedor na rede, ela calcula os três valores de
saída. Dados estes valores, como pode a loja de departamentos determinar a
promoção correta, ou promoções, para oferecer ao consumidor? Alguns métodos
são:
 pegar o departamento correspondente à unidade com valor máximo;
 pegar todos os departamentos correspondentes às unidades que excedem algum
determinado valor ;
 pegar todos os departamentos correspondentes às unidades que são alguma
porcentagem da unidade com valor máximo.
Na prática tentamos várias dessas possibilidades no arquivo de teste para saber
qual funciona melhor na presente aplicação.
Como a rede neural aprende usando
retropropagação?
Treinar a rede é o processo de encontrar os melhores pesos para as entradas de
cada uma das unidades. O objetivo é usar o arquivo de treinamento para
produzir pesos, onde a saída (output) da rede seja bem próximo do
desejado para muitos exemplos do arquivo de treinamento. A técnica
mais comum para fazer isso é a retropropagação.
Três passos:
1.
A rede pega um exemplo do arquivo de treinamento e, usando os pesos
atuais da rede, calcula a saída ou saídas para o exemplo.
2.
Retropropagação então calcula o erro, fazendo a diferença entre o
resultado calculado e o resultado real.
3.
O erro é usado pela rede e os pesos são ajustados para minimizá-lo.
O algoritmo de retropropagação calcula um erro geral da rede
neural comparando os valores produzidos sobre cada exemplo
de treinamento para o valor real. Ela então ajusta os pesos da
camada de saída para reduzir, mas não eliminar, o erro.
Entretanto, o algoritmo ainda não terminou. Ela então atribui
a “culpa” para os nós anteriores da rede e ajusta os pesos
conectando aqueles nós, adicionalmente reduzindo o erro
geral.
A escolha do arquivo de treinamento
O arquivo de treinamento consiste de registros cujos valores de predição ou
classificação já são conhecidos. A escolha de um bom arquivo de treinamento é
crucial.
Abrangência dos valores para todas as características
A consideração mais importante é que o arquivo de treinamento precisa cobrir
a faixa completa dos valores para todas as características que a rede pode
encontrar, incluindo a saída. Por exemplo, incluir casas com valores baixos e
altos, casas grandes e pequenas, casas com e sem garagem. Em geral, é uma
boa idéia ter vários exemplos no arquivo de treinamento para cada valor de
uma característica categorizada e para uma faixa de valores para características
discretas ordenadas e contínuas.
As entradas na rede neural devem estar na faixa 0 e 1. Entretanto é
recomendável deixar uma folga ao redor desses limites, considerando os
valores mínimo e máximo como sendo 0,1 e 0,9.
O número de características (variáveis)
Quanto maior o número de variáveis de entrada, maior deverá ser a rede neural,
aumentando o risco de supertreinamento da rede e necessidade de maior número de
registros de treinamento.
O tempo necessário para treinar uma rede está diretamente relacionado com o número
de variáveis de entrada usadas na mesma; quanto mais características (variáveis) são
usadas, maior é o tempo para a rede convergir.
Um grande problema é que quanto mais aumenta o número de variáveis de entrada, a
chance da rede convergir para uma solução de qualidade inferior aumenta.
Descartar características que não tenham poder preditivo ajuda a aumentar o poder
preditivo da rede neural. Tente outras variáveis e verifique quais delas melhora a rede.
Em muitos casos é necessário calcular novas variáveis que representam aspectos
particular do problema. Por exemplo, R$/m2.
Pode-se usar outras técnicas para determinar quais características são importantes para
o propósito de predição. Pode-se usar, por exemplo: correlações ou árvores de decisão.
O número de exemplos de treinamento
Geralmente, quanto mais características há na rede neural, mais exemplos de
treinamento são necessários para abranger os padrões nos dados.
Geralmente um mínimo de poucas centenas de exemplos são necessários para cada
característica.
Quando o tamanho do arquivo de treinamento não é grande o suficiente, a rede tende
a decorar os dados.
O número de saídas
Por exemplo, se a rede neural vai ser usada para detectar eventos (saídas) raros e
caros, tais como: taxa de falhas de motores a diesel, uso fraudulento do cartão de
crédito; então você precisa ter certeza que o arquivo de treinamento tem um número
suficiente de exemplos desses eventos raros.
Uma amostra aleatória dos dados disponíveis não é suficiente, pois os exemplos não
raros (comuns) vão “afundar” os exemplos raros.
Para contornar este problema, o arquivo de teste precisa ter muitos exemplos raros,
portanto deve-se fazer uma amostragem estratificada. Por exemplo, tomar 10.000
“bons” exemplos e 10.000 “maus” exemplos.
Preparando os dados
Preparar os dados de entrada é freqüentemente a parte mais complicada do uso de
uma rede neural.
Uma parte do problema é a transformação das variáveis de tal forma que os seus
valores fiquem dentro da faixa de 0 a 1.
Variáveis contínuas (Intervalares)
Exemplos:
 valores em reais (preços de venda, vendas semanais, rendimentos)
 médias (volume médio de vendas)
 taxas
 medidas físicas (áreas, temperaturas)
Quando as características tem um amplitude bem definida, com valores mínimos e
máximos, como por exemplo, preços de venda da casa, então podemos facilmente
transformar os valores fazendo:
valor original - valor mínimo
valor transform ado 
valor máximo - valor mínimo
O que fazer se os valores máximos e mínimos não forem conhecidos? Alguém
poderia construir uma casa nova com 5,000 s.f. (s.f.=square feet) de área de
living, enquanto que a rede foi treinada para valores na faixa de 714 a 4185 s.f.,
portanto, não podemos usar os resultados da rede.
Algumas abordagens do problema podem ser:
• Planejar para uma faixa maior. Ao invés de usar para os valores mínimo e
máximo 714 e 4185, respectivamente, usar 500 a 5000.
• Rejeitar valores fora da faixa de estudo. Apenas use a rede para faixas prédefinidas de valores de entrada.
• Para valores menores do que o mínimo, designar o valor mínimo e para
valores maiores do que o máximo, designar o valor máximo(Problema se
tiver correlação: área e preço).
• Estipular para o mínimo o valor 0,1 e para o máximo o valor 0,9 ao invés
de 0 e 1 respectivamente. Com isso use a seguinte fórmula:
valor transforma do 
(0,9  0,1)( valor original  valor mínimo )
 0,1
valor máximo - valor mínimo
Esta transformação não muda a distribuição dos dados.
Outro problema: distribuições assimétricas
Por exemplo, se a distribuição da variável rendimento é assimétrica, a rede é
incapaz de usar efetivamente esta importante variável. A rede neural vai ter
dificuldade para usar este importante campo.
A maneira mais comum de resolver este problema é discretizar a variável. Por
exemplo (Percentis):
$10,000-$17,999
muito baixo ( 20% menores)
$18,000-$31,999
baixo (> 20% a  40%)
$32,000-$63,999
médio (> 40% a  60%)
$64,000-$99,999
alto (> 60% a  80%)
$100,000 ou mais
muito alto(> 80% a  100%)
Outra maneira de resolver o problema é fazer uma transformação, por exemplo, a
transformação logarítmica (log base 10).
Fazendo o log das vendas vai convertê-las na faixa de 4 a 6. A tabela compara os
resultados.
Tabela. Diferentes maneiras de transformar a variável rendimento
Renda
Renda
Log(renda)
Log(renda)
transformada
transformado
$ 10,000
0,0101
4,0000
0,0000
$ 18,000
0,0182
4,2553
0,1276
$ 32,000
0,0323
4,5051
0,2526
$ 63,000
0,0636
4,7993
0,3997
$ 100,000
0,1010
5,0000
0,5000
$ 250,000
0,2525
5,3979
0,6990
$ 800,000
0,8081
5,9031
0,9515
$ 1,000,000
1,0101
6,0000
1,0000
Variáveis ordinais, discretas
Exemplos de variáveis ordinais:
• Contagens (número de crianças, número de itens comprados, meses passados
desde a última compra)
• Categorias ordenadas (baixo, médio, alto)
Por exemplo, o número de crianças pode ir de 0 até 4; qualquer valor maior do que 4
podemos considerar como sendo igual a 4. A transformação é simples. Primeiro
contamos quantos valores diferentes existem. Neste caso existem 5 valores
diferentes: 0, 1, 2, 3, 4. Desejamos atribuir valores igualmente espaçados na faixa de
0 a 1. Temos, portanto:
• 00,00
•10,25
•2 0,50
•3 0,75
•4 1,00
Isto preserva a ordem, ou
seja, não há perda de
informação.
Variáveis categorizadas (nominal)
Exemplos:
• gênero, estado civíl
• códigos de produtos
• CEP
Embora CEP seja número, ele é uma variável nominal, pois a ordenação tem
pouco significado.
Existem duas maneiras de tratar com variáveis categorizadas:
I.
A primeira delas é tratar os códigos como variáveis discretas, valores
ordenados, e atribuir valores usando o método discutido na seção anterior.
Infelizmente a rede neural não entende que os códigos não são ordenados.
Assim, se nós estamos tentando transformar os códigos para estado civíl:
solteiro, divorciado, casado, viúvo e desconhecido, então essas categorias
são transformadas em: 0,00, 0,25, 0,50, 0,75 e 1,00, respectivamente. Veja
que solteiro está bem distanciado de desconhecido e bem próximo de
divorciado. As vezes isto pode confundir a rede. Ela não entende que os
códigos não são ordenados>
II.
A segunda maneira é através da criação de variáveis dummy(zero e um),
uma variável dummy para cada categoria. Por exemplo, considere que
temos 3 categorias para gênero: masculino, feminino e desconhecido. Para
cada categoria podemos considerar uma variável dummy conforme a tabela:
Uso de variáveis binárias
Gênero
Variável binária
Masculino Feminino Desconhecido
Masculino
1
0
0
Feminino
0
1
0
Desconhecido
0
0
1
Outros tipos de variáveis
Por exemplo, datas ou tempo podem ser representados como o número de dias ou
segundos a partir de um determinado ponto, permitindo, assim, que os dados sejam
transformados e utilizados na rede.
Interpretando os resultados
Foi realizado a transformação dos dados para entrarem na rede neural, portanto,
precisamos calcular os seus valores inversos para interpretá-los.
Por exemplo, a rede pode ter sido usada para calcular o valor de uma casa. No arquivo
de treinamento, para o valor $103,000 (valor mínimo) é atribuído o valor 0,1, e para o
valor $250,000 (valor máximo) é atribuído o valor 0,9.
Posteriormente, se o modelo é aplicado para uma outra casa e a saída da rede for 0,5,
então devemos saber que (transformação inversa):
valor  mínimo
transformado 
máximo mínimo
valor  103.000
0,5 
250.000  103.000
 valor  176.500
Variáveis binárias ou categorizadas
Na predição com variáveis binárias ou categorizadas  a rede apresenta valores
contínuos, no intervalo de zero(0) a um (1)  a saída precisa ser calibrada para
determinar qual faixa corresponde para qual valor.
 Abordagem simplista: arbitrariamente estabelecer que qualquer valor menor que
0,5 corresponde a um valor, e que qualquer valor acima de 0,5 corresponde ao
outro valor. O valor 0,5 pode ir para qualquer dos dois valores.
 Outra abordagem: dividir o intervalo em três partes, qualquer valor menor do
que 0,33 é designado a uma categoria, qualquer valor maior do que 0,67 vai para a
outra, e o resto declarado desconhecido.
Existe uma abordagem melhor? Sim.
Para descrever como interpretar os resultados de uma rede neural utiliza-se o
arquivo de teste.
A figura no próximo slide mostra alguns resultados típicos de uma rede
neural.
1,0
B
B
B
B
A
A
B
0,5
A
A
A
0,0
Figura. Rodando uma rede neural com 10 exemplos de teste, do arquivo de teste,
pode ajudar a determinar como interpretar os resultados.
Neste caso a rede neural está classificando os dados em duas classes. A maioria dos
registros da categoria A está na parte inferior da figura, enquanto a maioria dos
registros da categoria B está na parte superior da figura. Porém existem algumas
exceções. Podemos ver que qualquer registro com valor inferior a 0,62 deveria
pertencer a categoria A, e que qualquer registro com valor maior do que 0,64
deveria pertencer a categoria B, então vamos decidir que o ponto de corte deveria
ser o valor 0,63.
Uma outra abordagem que poderia ser dada para variáveis binárias é usar uma
rede neural que produza duas saídas (2 outputs), uma para a categoria A e outra para
a categoria B. Assim, se a saída fosse, por exemplo, 0,8 e 0,2, então diríamos que o
registro tem 80% de chance de ser da categoria A e 20% de chance de ser da
categoria B.
O problema são resultados do tipo 0,1 para A e 0,3 para B. Vamos designá-lo à
classe B com 30% de confiança? Ou, vamos dizer que ele tem 3 vezes mais chance
de ser da categoria B e, portanto, tem 75% de chance de ser desta categoria?
Novamente, o arquivo de teste pode ajudar a determinar qual faixa de valores pode
fornecer os melhores resultados. Rodando a rede com o arquivo de teste, pode-se
entender a precisão dos seus resultados.
A abordagem é a mesma para três ou mais categorias em consideração. Aqui também
aparece o problema da rede fornecer valores intermediários.
Aqui também deve-se usar o arquivo de teste para saber-se dos valores de saída que a
rede neural está produzindo. Interpretando estes resultados, o analista pode definir
faixas corretas para fazer, por exemplo, segmentação de mercado. O processo é o
mesmo ilustrado na figura do slide número 40.
Observação: considere que a rede está sendo usada para predição de 3 categorias, ou
seja, deseja-se fazer uma campanha com três segmentações. Uma sugestão é planejar a
rede para ter três saídas.
Heurísticas para o uso de redes neurais
diretas com retropropagação.
 Provavelmente, a principal decisão é sobre o número de unidades na camada escondida.
Quanto mais unidades, mais padrões a rede pode reconhecer. O uso de um grande número de
unidades tem alguma desvantagem. A rede pode decorar o arquivo de treinamento, assim,
perdendo o poder de generalização. Felizmente é possível saber se uma rede está
supertreinada. Se a rede tiver um desempenho muito bom no arquivo de treinamento, porém,
não apresenta resultados tão bons no arquivo de validação, isto é sinal que a rede memorizou
o arquivo de treinamento.
 Qual deveria ser o tamanho da camada escondida? Depende dos dados, do padrão a ser
determinado e do tipo de rede. Uma boa indicação é começar com uma camada escondida
que não seja maior do que o tamanho da camada de entrada. Na maioria dos problemas
pode-se começar com uma, duas ou três unidades na camada escondida. Pode-se diminuir ou
aumentar a camada escondida caso a rede esteja supertreinada ou com pouca precisão,
respectivamente.
 Quando se está usando uma rede para problemas de classificação, deve-se iniciar com
uma unidade escondida para cada classe.
 Outra decisão é quanto ao número de exemplos de treinamento.
Deve ser o suficiente para cobrir a faixa de entradas disponíveis para
cada característica.
Considere (exemplos de treinamento para cada peso):
S como sendo o número de variáveis de entrada (número de unidades na camada
de entrada);
H como sendo o número de unidades escondidas; Uma saída.
Existe
H * S  1  H  1
pesos na rede (cada nó da camada escondida tem 1 peso para cada conexão com a camada
de entrada, 1 peso adicional para o viés, e então uma conexão com a camada de saída e o
seus viéses.
Exemplo: considere S=15 e H=10.
10* 15  1  10  1  171
Assim, a rede tem 171 pesos. Deveria ter pelo menos 30 exemplos para cada peso, porém
o ideal seria 100. Assim, o arquivo de treinamento deveria ter 17.100 exemplos.
 A taxa de aprendizagem e os parâmetros de momento são importantes
para a convergência da rede, ou seja, para se chegar a uma solução mais
rapidamente. Uma sugestão é utilizar uma taxa de aprendizagem na faixa de 0,05
até 0,25. Usar parâmetro de momento como 0,80 ou 0,90.
Taxa de aprendizagem: controla a rapidez com que os pesos se alteram. A melhor
abordagem é começar com taxa alta e ir vagarosamente diminuindo.
Momento: controla a direção, isto é, cada peso lembra se ele ficou maior ou menor, e
o momento mantêm os pesos irem na mesma direção. Momento alto a rede
responde vagarosamente para novos exemplos de treinamento. Momento baixoos
pesos oscilam mais livremente.
Uma técnica para ajustar os pesos é o delta generalizado.
Poder das redes neurais artificiais
 As redes neurais são aplicadas numa gama bastante grande de problemas
 Elas produzem bons resultados mesmo em domínios complicados
 Podem ser utilizadas tanto para variáveis categorizadas como contínuas
 Estão disponíveis em diversos pacotes computacionais
 As redes neurais são aplicadas numa gama bastante grande de problemas
 Quando a saída de uma rede é uma variável contínua, como o valor de
uma casa, então ela esta resolvendo um problema de predição. Quando a
saída são valores discretos, então ela está fazendo uma classificação. Ela
pode também fazer uma análise de agrupamentos.
 Elas produzem bons resultados mesmo em domínios complicados
 Análise de séries temporais
Podem ser utilizadas tanto para variáveis categorizadas como contínuas
 Embora os dados precisem ser transformados, as redes neurais podem ser
usadas para variáveis categorizadas ou contínuas, tanto como variáveis de
entrada (input) ou saída (output).
 Estão disponíveis em diversos pacotes computacionais
 Devido a sua versatilidade e bons resultados, muitos vendedores de
software disponibilizam a ferramenta de redes neurais. Muitas bases de
dados estão localizadas em mainframes ou sistemas de base de dados
relacionais. Existe ferramenta de redes neurais para esta situação.
Aplicação das redes neurais artificiais
 As redes neurais não trabalham bem quando existem centenas ou milhares de
variáveis de entrada. Isto dificulta muito a rede a encontrar padrões e a fase de
treinamento pode ficar muito longa, não convergindo para a melhor solução. Aqui,
redes neurais podem trabalhar melhor quando em combinação com árvores de
decisão. As árvores de decisão são boas para a escolha das variáveis mais importantes
e, estas podem então ser usadas para treinar a rede neural. Pode-se usar a técnica
estatística de componentes principais.
Exemplo
A base de dados que será estudada é relativa à valores de imóveis de um determinado
município. O objetivo é predizer o valor de um imóvel em função de variáveis de
entrada, tais como: área total do imóvel, localização, padrão do imóvel, etc. Uma parte
dos dados é:
Download

O que é uma rede neural?