Visão geral (comando MLP)

Redes neurais são uma ferramenta de mineração de dados para encontrar padrões desconhecidos em bancos de dados. As redes neurais podem ser usadas para tomar decisões de negócios prevendo a demanda de um produto como uma função de preço e outras variáveis ou categorizando clientes com base em hábitos de compra e características demográficas. O procedimento MLP se encaixa em um tipo particular de rede neural chamado perceptron multicamada. O perceptron multicamadas usa uma arquitetura feedforward e pode ter várias camadas ocultas. É uma das arquiteturas de rede neural mais usadas.

Opções

Previsão ou classificação Uma ou mais variáveis dependentes podem ser especificadas e elas podem ser escala, categórica ou uma combinação. Se uma variável dependente tiver um nível de medição de escala, a rede neural prevê valores contínuos que se aproximam do valor "true" de alguma função contínua dos dados de entrada. Se uma variável dependente for categórica, a rede neural será usada para classificar casos na categoria "melhor" com base nos preditores de entrada.

Reajuste de escala. Opcionalmente, o MLP reescala covariáveis ou variáveis dependentes de escala antes de treinar a rede neural. Há três opções de nova escala: padronização, normalização e normalização ajustada.

Dados de treinamento, teste e validação. O MLP opcionalmente divide o conjunto de dados em dados de treinamento, teste e validação. A rede neural é treinada usando os dados de treinamento. Os dados de treinamento ou dados de teste, ou ambos, podem ser usados para rastrear erros através de etapas e determinar quando parar o treinamento Os dados de validação são completamente excluídos do processo de treinamento e são usados para avaliação independente da rede final.

Arquitetura de seleção O MLP pode executar a seleção de arquitetura automática ou pode construir uma rede neural com base nas especificações do usuário A seleção de arquitetura automática cria uma rede neural com uma camada oculta e encontra o "melhor" número de unidades ocultas. Como alternativa, você pode especificar uma ou duas camadas ocultas e definir o número de unidades ocultas em cada camada.

Funções de Ativação As unidades nas camadas ocultas podem usar as funções de ativação hiperbólica ou sigmoide As unidades na camada de saída podem usar as funções de ativação hiperbólica, sigmoide, identidade ou softmax

Métodos de treinamento A rede neural pode ser construída usando o treinamento em lote, on-line ou mini-lote. Os algoritmos de otimização de gradiente de descida de gradiente e conjugado escalado estão disponíveis.

Valores omissos. O procedimento MLP tem uma opção para tratar os valores omissos de usuário de variáveis categóricas como válidos Valores omissos de usuário de variáveis de escala são sempre tratados como inválidos.

Saída. MLP exibe a saída da tabela dinâmica, mas oferece uma opção para suprimir a maioria dessa saída. A saída gráfica inclui um diagrama de rede (padrão) e vários gráficos opcionais: valores preditos por observados, valores residuais por preditos, curvas ROC (Receiver Operating Characteristic), ganhos acumulativos, elevação e importância da variável independente. Opcionalmente, o procedimento também salva valores preditos no conjunto de dados ativo. Estimativas de peso sináptico também podem ser salvas em IBM® SPSS® Statistics ou arquivos XML.

Especificação básica

A especificação básica é o comando MLP seguido por uma ou mais variáveis dependentes, a palavra-chave BY e um ou mais fatores e a palavra-chave WITH e uma ou mais covariáveis.. Por padrão, o procedimento MLP padroniza covariáveis e seleciona uma amostra de treinamento antes de treinar a rede neural. A seleção de arquitetura automática é usada para localizar a "melhor" arquitetura de rede neural.. Os valores omissos de usuário são excluídos e a saída da tabela dinâmica padrão é exibida

Nota: o nível de medição pode afetar os resultados. Se alguma variável (campos) tiver um nível de medida desconhecido, uma passagem de dados será executada para determinar o nível de medida antes do início da análise. Para obter informações sobre os critérios de determinação, consulte SET SCALEMIN

Regras de sintaxe

  • Todos os subcomandos são opcionais..
  • Os subcomandos podem ser especificados em qualquer ordem
  • Apenas uma única instância de cada subcomando é permitida
  • Ocorre um erro se uma palavra-chave for especificada mais de uma vez em um subcomando.
  • Parênteses, sinais de igual e barras mostrados no gráfico de sintaxe são necessários
  • O nome do comando, os nomes do subcomando e as palavras-chave devem ser escritos integralmente.
  • Os subcomandos vazios não são permitidos
  • Qualquer variável de divisão definida no comando SPLIT FILE não pode ser usada como variável dependente, fator, covariável ou variável de partição.

Limitações

A configuração WEIGHT é ignorada com um aviso pelo procedimento MLP

Variáveis categóricas

Embora o procedimento MLP aceite variáveis categóricas como preditores ou como variável dependente, o usuário deve ser cauteloso ao usar uma variável categórica com um número muito grande de categorias.

O procedimento MLP recodifica temporariamente preditores categóricos e variáveis dependentes usando a codificação um-de-c durante o procedimento. Se houver c categorias de uma variável, a variável será armazenada como vetores c , com a primeira categoria denotada (1 ,0, ..., 0), a próxima categoria (0 ,1,0, ..., 0), ... e a categoria final (0 ,0, ..., 0, 1).

Este esquema de codificação aumenta o número de pesos sinápticos. Em particular, o número total de unidades de entrada é o número de preditores de escalas mais o número de categorias em todos os preditores categóricos Como resultado, esse esquema de codificação pode levar a um treinamento mais lento, mas métodos de codificação mais "compactos" geralmente levam a redes neurais mal ajustadas. Se seu treinamento de rede estiver prosseguindo muito lentamente, você pode tentar reduzir o número de categorias em seus preditores categóricos combinando categorias semelhantes ou descartando casos que tenham categorias extremamente raras antes de executar o procedimento MLP ..

Toda a codificação um-de-c é baseada nos dados de treinamento, mesmo se uma amostra de teste ou de validação for definida (consulte Subcomando PARTITION (comando MLP)). Portanto, se as amostras de teste ou de validação contiverem casos com categorias do preditor que não estão presentes nos dados de treinamento, esses casos não serão usados pelo procedimento ou na escoragem. Se as amostras de teste ou de validação contiverem casos com categorias de variável dependente que não estão presentes nos dados de treinamento, esses casos não serão usados pelo procedimento, mas poderão ser escorados.

replicando resultados

O procedimento MLP usa a geração de números aleatórios durante a designação aleatória de partições, a subamostragem aleatória para inicialização de pesos sinápticos, a subamostragem aleatória para seleção de arquitetura automática e o algoritmo de recozimento simulado usado na inicialização de peso e na seleção de arquitetura automática. Para reproduzir os mesmos resultados randomizados no futuro, use o comando SET para configurar o valor de inicialização para o gerador de número aleatório antes de cada execução do procedimento MLP .

MLP resultados também são dependentes da ordem de dados. Os métodos de treinamento on-line e mini-batch são explicitamente dependentes da ordem de dados; no entanto, mesmo o treinamento em lote é dependente da ordem de dados devido ao algoritmo de inicialização de peso. Para todos os três métodos de treinamento, a inicialização de pesos sinápticos usa recozimento simulado, que obtém uma amostra aleatória de todo o conjunto de dados e a divide aleatoriamente em amostras de treinamento (70%) e teste (30%). O tamanho da amostra aleatória é N = min (1000, memsize), onde memsize é o número máximo controlado pelo usuário de casos armazenados na memória. (Consulte a palavra-chave /CRITERIA MEMSIZE .).. Se o conjunto de dados inteiro tiver menos de N casos, então todos os N casos serão usados

Para minimizar os efeitos da ordem de dados, ordene aleatoriamente os casos antes de executar o procedimento MLP Para verificar a estabilidade de uma determinada solução, talvez você queira obter várias soluções diferentes com casos ordenados em diferentes ordens aleatórias. Em situações com tamanhos de arquivos extremamente grandes, podem ser feitas várias execuções com uma amostra de casos ordenados em diferentes ordens aleatórias.

Finalmente, os resultados de MLP podem ser influenciados pela ordem da variável na linha de comando devido ao padrão diferente de valores iniciais designados quando a ordem da variável da linha de comando é alterada. Assim como com os efeitos de ordem de dados, você pode tentar diferentes ordens de variáveis da linha de comandos para avaliar a estabilidade de uma determinada solução...

Em resumo, se desejar replicar exatamente os resultados do MLP no futuro, use o mesmo valor de inicialização para o gerador de número aleatório, a mesma ordem de dados e a mesma ordem de variável de linha de comando, além de usar as configurações do procedimento MLP .