Sélection des paramètres pour l'algorithme génétique

9

Comment sélectionner le nombre approprié de paramètres pour un algorithme génétique pour modéliser un système donné?

Par exemple, supposons que vous souhaitiez optimiser la production de voitures et que vous disposiez de 1 000 mesures d'efficacité horaire pour différentes tâches pour chacun des 1 000 employés différents. Donc, vous avez 1 000 000 de points de données. La plupart de ces facteurs sont susceptibles d'être faiblement corrélés à l'efficacité globale de votre usine, mais pas si faiblement que vous pouvez dire qu'ils ne sont pas pertinents pour la fiabilité statistique. Comment procédez-vous pour choisir des entrées pour votre GA afin de ne pas avoir plus de 1 000 000 degrés de liberté, ce qui entraîne une convergence très lente ou aucune convergence?

Plus précisément, quels sont les algorithmes que l'on pourrait utiliser pour présélectionner ou éliminer sélectivement des fonctionnalités?

Une approche que j'ai moi-même utilisée dans ce scénario consiste à faire évoluer la sélection des paramètres elle-même, de sorte que je pourrais avoir des parents comme `` {a,b,c}, {b,d,e,q,x,y,z}etc. Je muterais alors les enfants pour ajouter ou supprimer des fonctionnalités. Cela fonctionne bien pour quelques dizaines de fonctionnalités. Mais le problème est qu'il est inefficace s'il y a un grand nombre de degrés de liberté. Dans ce cas, vous examinez les 10^ncombinaisons (dans l'exemple ci-dessus 10^1,000,000), ce qui rend un pré-filtrage des fonctionnalités essentiel pour obtenir tout type de performances utiles.

élixénide
la source

Réponses:

11

Tout d'abord - l'exemple ne semble pas bien adapté car vous utiliseriez probablement des méthodes de régression ou de ML classiques pour résoudre ce problème. Deuxièmement - vous faites référence à un problème général de sélection des fonctionnalités (Kira, Rendell, 1992) ou sélection d'attributs (Hall, Holmes, 2003) ou de sélection de variables (Guyon, Elisseeff, 2003) ou de sélection de sous-ensembles variables (Stecking, Schebesch, 2005) ou extraction de traits (Hillion, Masson, Roux, 1988) ou réduction de dimensionnalité (Roweis, Saul, 200) ou abstraction d'état (Amarel, 1968). Ce problème est pertinent non seulement pour les algorithmes génétiques, mais pour presque toutes les techniques d'apprentissage automatique lorsqu'il s'agit de données de grande dimension.

Trois cas peuvent être distingués ici: la dernière instance de ce problème connue sous le nom d' abstraction d'état est généralement liée à la modélisation de processus (qui convient à votre exemple, mais pas au contexte GA). Les trois premiers, à savoir la sélection des fonctionnalités , la sélection d'attribut ou la sélection des variables semblent être les plus pertinents lors de la prise de votre question littéralement. Dans ce contexte, une solution commune est l'approche mRMR (Peng, Long, Ding, 2005) . D'après mon expérience, cela ne fonctionne pas toujours bien avec des données continues - cependant, les informations mutuelles peuvent être remplacées par d'autres coefficients, comme la corrélation par exemple. Une autre approche possible consiste à utiliser la validation croisée (Picard, Cook, 1984)pour ça. Vous pouvez avoir plusieurs modèles utilisant chacun des fonctionnalités différentes, et en sélectionnant le modèle avec des techniques de validation croisée, vous choisissez le meilleur modèle, ce qui vous donne les informations sur les fonctionnalités qui fonctionnent le mieux pour la tâche donnée.

Les cas d'extraction d' entités et de réduction de dimensionnalité permettent non seulement de sélectionner les entités initiales, mais aussi leurs combinaisons. Un exemple bien connu de solution dans ce cas est l'algorithme PCA (Pearson, 1901) , qui produit le jeu optimal, en termes de variance expliquée, de combinaisons linéaires de caractéristiques d'entrée.

Notez également qu'il existe de nombreux modèles qui gèrent eux-mêmes la tâche d'extraction des fonctionnalités. En voici quelques exemples: Growing Neural Gas Network (Fritzke, 1995) , LASSO (Tibshirani, 2011) , RFE SVM (Zeng, Chen, Tao, 2009) , Decision Trees (Quinlan, 1986) .

Références:

BartoszKP
la source
3

Je n'ai jamais fait cela auparavant et je n'ai évidemment pas accès auxdites données, mais un moyen potentiellement bon de le faire serait de mettre en cluster . Pour chaque employé, nous avons un vecteur à n dimensions, où chaque dimension correspond à une tâche différente. Ensuite, nous pouvons utiliser le clustering pour regrouper des employés "similaires"; cependant, cela dépendra uniquement de vos données, c'est-à-dire qu'il est tout à fait possible que, compte tenu de seulement 1000 employés, le regroupement produira des groupes d'employés qui ne sont pas vraiment liés, et donc même si nous pouvons obtenir une réduction de la population, il peut se faire au détriment de la perte d'informations.

Steve P.
la source