L'ingénierie des fonctionnalités est souvent un élément important de l'apprentissage automatique (elle a été largement utilisée pour remporter la Coupe KDD en 2010 ). Cependant, je trouve que la plupart des techniques d'ingénierie des fonctionnalités
- détruire toute signification intuitive des caractéristiques sous-jacentes ou
- sont très spécifiques à un domaine particulier ou même à des types particuliers de fonctionnalités.
Un exemple classique de la première serait l'analyse des composantes principales. Il me semble que toute connaissance qu'un expert en la matière aurait des fonctionnalités serait détruite en convertissant ces fonctionnalités en composants principaux.
Comparez cela avec une technique simple de conversion d'une date en fonctionnalités pour "jour du mois" et "jour de semaine". Le sens sous-jacent est toujours conservé dans les nouvelles fonctionnalités, mais évidemment cette technique particulière ne s'applique qu'aux dates et non aux fonctionnalités arbitraires.
Existe-t-il un ensemble standard de techniques d'ingénierie des fonctionnalités qui ne détruisent pas la signification des fonctionnalités sous-jacentes tout en étant applicables à des domaines arbitraires (ou au moins à une grande variété de domaines)?
la source
Réponses:
Je connais une méthode de décomposition (mais peut-être qu'il y en a plus ...) qui peut être utile dans des scénarios comme vous le décrivez. C'est comme le 2D-PCA - une méthode de décomposition d'ordre élevé où la décomposition (c'est-à-dire les facteurs) a une certaine signification. Vous pouvez voir des exemples et lire à ce sujet ici et ici et essayer ici
la source
Les méthodes récentes d'apprentissage en profondeur utilisant la machine Boltzmann restreinte ont montré de belles fonctionnalités sur plusieurs types de données (audio, images, texte).
Étant donné que ces méthodes créent un modèle génératif, vous pouvez souvent générer de très beaux échantillons à partir du modèle.
Consultez les publications de Hinton. http://www.cs.toronto.edu/~hinton/
Ces méthodes ne sont pas totalement générales (exécutez le même code sur toutes les données), mais le modèle sous-jacent est généralement similaire.
la source