Présentation (commande MLP)
Les réseaux de neurones sont un outil d'exploration de données permettant de trouver des modèles inconnus dans les bases de données. Les réseaux de neurones peuvent être utilisés pour prendre des décisions métier en prévoyant la demande d'un produit en fonction du prix et d'autres variables ou en catégorisant les clients en fonction des habitudes d'achat et des caractéristiques démographiques. La procédure MLP correspond à un type particulier de réseau de neurones appelé perceptron multicouche. Le perceptron multicouche utilise une architecture de feedforward et peut avoir plusieurs couches masquées. C'est l'une des architectures de réseau neuronal les plus répandues.
Options
Prévision ou classification. Une ou plusieurs variables dépendantes peuvent être spécifiées, et elles peuvent être de type échelle, catégorielle ou une combinaison. Si une variable dépendante a un niveau de mesure d'échelle, le réseau de neurones prédit des valeurs continues qui se rapprochent de la valeur "vraie" d'une fonction continue des données d'entrée. Si une variable dépendante est catégorielle, le réseau de neurones est utilisé pour classer les observations dans la "meilleure catégorie" en fonction des prédicteurs d'entrée.
Redimensionnement: MLP rééchelonne éventuellement les covariables ou les variables d'échelle dépendantes avant d'entraîner le réseau de neurones. Il existe trois options de redimensionnement: la normalisation, la normalisation et la normalisation ajustée.
Données d'apprentissage, de test et de rétention. MLP divise éventuellement le jeu de données en données d'apprentissage, de test et de rétention. Le réseau de neurones est entraîné à l'aide des données d'apprentissage. Les données d'entraînement et/ou les données de test peuvent être utilisées pour suivre les erreurs dans les différentes étapes et déterminer quand arrêter l'entraînement. Les données restantes sont complètement exclues du processus d'apprentissage et sont utilisées pour l'évaluation indépendante du réseau final.
Sélection de l'architecture. MLP peut effectuer une sélection d'architecture automatique ou créer un réseau de neurones en fonction des spécifications de l'utilisateur. La sélection automatique de l'architecture crée un réseau de neurones avec une couche masquée et trouve le "meilleur" nombre d'unités masquées. Vous pouvez également spécifier une ou deux couches masquées et définir le nombre d'unités masquées dans chaque couche.
Fonctions d'activation. Les unités des couches masquées peuvent utiliser les fonctions d'activation hyperbolique ou sigmoïde. Les unités de la couche de sortie peuvent utiliser les fonctions d'activation hyperbolique, sigmoïde, identité ou softmax.
Méthodes d'apprentissage. Le réseau de neurones peut être créé à l'aide d'un entraînement par lots, en ligne ou par mini-lots. Des algorithmes de descente de gradient et d'optimisation de gradient conjugué à l'échelle sont disponibles.
Valeurs manquantes. La procédure MLP permet de traiter les valeurs manquantes de l'utilisateur des variables catégorielles comme étant valides. Les valeurs manquantes de l'utilisateur des variables d'échelle sont toujours traitées comme non valides.
Sortie. MLP affiche la sortie du tableau croisé dynamique, mais offre une option permettant de supprimer la plupart de ces sorties. La sortie graphique inclut un diagramme réseau (par défaut) et un certain nombre de graphiques facultatifs: valeurs prédites par observation, valeurs résiduelles par prévision, courbes ROC (Receiver Operating Characteristic), gains cumulés, lift et importance des variables indépendantes. La procédure enregistre également, en option, les valeurs prédites dans le jeu de données actif. Les estimations de pondération synaptique peuvent également être enregistrées dans des fichiers IBM® SPSS® Statistics ou XML.
Spécification de base
La spécification de base est la commande MLP suivie d'une ou de plusieurs variables dépendantes, du mot clé BY et d'un ou de plusieurs facteurs, ainsi que du mot clé WITH et d'une ou de plusieurs covariables. Par défaut, la procédure MLP normalise les covariables et sélectionne un échantillon d'apprentissage avant d'entraîner le réseau de neurones. La sélection automatique de l'architecture est utilisée pour trouver la "meilleure architecture de réseau de neurones". Les valeurs manquantes de l'utilisateur sont exclues et la sortie du tableau croisé dynamique par défaut est affichée.
Règles de syntaxe
- Toutes les sous-commandes sont facultatives.
- Les sous-commandes peuvent être spécifiées dans n'importe quel ordre.
- Une seule instance de chaque sous-commande est autorisée.
- Une erreur se produit si un mot clé est spécifié plusieurs fois dans une sous-commande.
- Les parenthèses, les signes égal et les barres obliques affichés dans le graphique de syntaxe sont obligatoires.
- Le nom de la commande, les noms de sous-commande et les mots clés doivent être orthographiés en entier.
- Les sous-commandes vides ne sont pas autorisées.
- Toute variable de scission définie dans la commande
SPLIT FILEne peut pas être utilisée en tant que variable dépendante, facteur, covariable ou variable de partition.
Limites
Le paramètre WEIGHT est ignoré avec un avertissement émis par la procédure MLP .
Variables catégorielles
Bien que la procédure MLP accepte les variables catégorielles comme prédicteurs ou comme variable dépendante, l'utilisateur doit être prudent lorsqu'il utilise une variable catégorielle avec un très grand nombre de catégories.
La procédure MLP recode temporairement les prédicteurs indépendants et les variables dépendantes à l'aide d'un codagec pour la durée de la procédure. S'il existe c catégories d'une variable, la variable est stockée en tant que vecteurs c , avec la première catégorie notée (1,0, ..., 0), la catégorie suivante (0,1,0, ..., 0), ..., et la catégorie finale (0,0, ..., 0, 1).
Ce schéma de codage augmente le nombre de pondérations synaptiques. En particulier, le nombre total d'unités d'entrée correspond au nombre de prédicteurs d'échelle plus le nombre de catégories dans tous les prédicteurs indépendants. En conséquence, ce schéma de codage peut conduire à un apprentissage plus lent, mais des méthodes de codage plus "compactes" conduisent généralement à des réseaux de neurones mal adaptés. Si votre apprentissage réseau progresse très lentement, vous pouvez essayer de réduire le nombre de catégories dans vos prédicteurs catégoriels en combinant des catégories similaires ou en supprimant des observations qui ont des catégories extrêmement rares avant d'exécuter la procédure MLP .
Tous les codages one-of-c sont basés sur les données d'apprentissage, même si un échantillon de test ou restant est défini (voir Sous-commande PARTITION (commande MLP)). Ainsi, si les échantillons de test ou restants contiennent des observations avec des catégories de prédicteurs ne figurant pas dans les données d'apprentissage, ces observations ne sont pas utilisées par la procédure ou dans l'évaluation. Si les échantillons de test ou restants contiennent des observations avec des catégories de variables dépendantes ne figurant pas dans les données d'apprentissage, ces observations ne sont pas utilisées par la procédure mais peuvent être notées.
duplication des résultats
La procédure MLP utilise la génération de nombres aléatoires lors de l'affectation aléatoire de partitions, le sous-échantillonnage aléatoire pour l'initialisation des pondérations synaptiques, le sous-échantillonnage aléatoire pour la sélection automatique de l'architecture et l'algorithme de recuit simulé utilisé dans l'initialisation de la pondération et la sélection automatique de l'architecture. Pour reproduire ultérieurement les mêmes résultats aléatoires, utilisez la commande SET afin de définir la valeur d'initialisation du générateur de nombres aléatoires avant chaque exécution de la procédure MLP .
Les résultats de MLP dépendent également de l'ordre des données. Les méthodes d'entraînement en ligne et par mini-lot dépendent explicitement de l'ordre des données ; cependant, même l'entraînement par lots dépend de l'ordre des données en raison de l'algorithme d'initialisation du poids. Pour les trois méthodes d'apprentissage, l'initialisation des pondérations synaptiques utilise le recuit simulé, qui prend un échantillon aléatoire de l'ensemble de données et le divise aléatoirement en échantillons d'apprentissage (70%) et de test (30%). La taille de l'échantillon aléatoire est N = min (1000, memsize), où memsize est le nombre maximal d'observations stockées en mémoire contrôlé par l'utilisateur. (Voir le mot clé /CRITERIA MEMSIZE .) Si le jeu de données complet comporte moins de N observations, toutes les N observations sont utilisées.
Pour minimiser les effets de l'ordre des données, ordonnez les observations de manière aléatoire avant d'exécuter la procédure MLP . Pour vérifier la stabilité d'une solution donnée, vous pouvez obtenir différentes solutions dans lesquelles les observations sont triées de différentes manières aléatoires. Si les fichiers sont très volumineux, vous pouvez effectuer plusieurs fois l'opération sur un échantillon des observations triées de différentes manières aléatoires.
Enfin, les résultats de MLP peuvent être influencés par l'ordre des variables sur la ligne de commande en raison du motif différent des valeurs initiales affectées lorsque l'ordre des variables de la ligne de commande est modifié. Comme pour les effets d'ordre de données, vous pouvez essayer différents ordres de variables de ligne de commande pour évaluer la stabilité d'une solution donnée.
En résumé, si vous souhaitez répliquer exactement les résultats de MLP dans le futur, utilisez la même valeur d'initialisation pour le générateur de nombres aléatoires, le même ordre de données et le même ordre de variable de ligne de commande, en plus d'utiliser les mêmes paramètres de procédure MLP .