Quelles sont les méthodes / implémentations disponibles dans R / Python pour éliminer / sélectionner les fonctionnalités non importantes / importantes dans les données? Mes données n'ont pas d'étiquettes (non supervisées).
Les données ont environ 100 fonctionnalités avec des types mixtes. Certains sont numériques tandis que d'autres sont binaires (0/1).
r
feature-selection
python
apprenant
la source
la source
Réponses:
Cela fait un an mais je pense toujours que c'est pertinent, donc je voulais juste partager mon implémentation python de l'analyse des fonctionnalités principales (PFA) comme proposé dans le document auquel Charles a lié dans sa réponse.
Vous pouvez l'utiliser comme ceci:
Ceci suit strictement l'algorithme décrit dans l'article. Je pense que la méthode est prometteuse, mais honnêtement, je ne pense pas que ce soit l'approche la plus robuste pour la sélection de fonctionnalités non supervisées. Je publierai une mise à jour si je trouve quelque chose de mieux.
la source
fit
fonction ignore l'étape 1 et exécute l'ACP sur l'ensemble de données d'origine .Le package sparcl dans R effectue un clustering hiérarchique et K-means clairsemé. Cela peut être utile. http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2930825/
la source
L'analyse des fonctionnalités principales semble être une solution à la sélection non supervisée des fonctionnalités. Il est décrit dans cet article .
la source
J'ai trouvé un lien qui pourrait être utile, ce sont des implémentations matlab, elles peuvent fonctionner pour vous http://www.cad.zju.edu.cn/home/dengcai/Data/MCFS.html c'est une sélection de fonctionnalités multicluster méthode, vous pouvez trouver des bases solides à ce sujet dans des articles récents Faites-moi savoir si cela fonctionne pour vous
la source
Il existe de nombreuses options disponibles dans
R
. Un bon endroit pour regarder est lecaret
package qui fournit une interface agréable à de nombreux autres packages et options. Vous pouvez consulter le site Web ici . Il existe de nombreuses options, mais je vais en illustrer une.Voici un exemple d'utilisation d'un filtre simple utilisant les
R
jeux de données intégrés «mtcars» (illustrés ci-dessous).Maintenant, une configuration de code (chargement de packages, etc.):
Et nous pouvons adapter un modèle simple pour sélectionner des variables:
En consultant les résultats, nous obtenons:
Enfin, nous pouvons tracer les variables sélectionnées (in
fit1$optVariables
) par rapport au résultatmpg
:Résultat dans ce graphique:
la source
mpg
comme résultat. Existe-t-il un moyen d'utiliser de telles méthodes dans des modèles non supervisés?Le
nsprcomp
package R fournit des méthodes d'analyse clairsemée des composants principaux, qui pourraient répondre à vos besoins.Par exemple, si vous pensez que vos fonctionnalités sont généralement corrélées linéairement et que vous souhaitez sélectionner les cinq premières, vous pouvez exécuter une PCA clairsemée avec un maximum de cinq fonctionnalités, et limiter au premier composant principal:
Alternativement, si vous souhaitez capturer la nature orthogonale des entités, vous pouvez sélectionner l'entité supérieure de chacun des cinq premiers PC, en limitant chaque PC à une seule entité:
Un ensemble de ces éléments pourrait également être utile; c'est-à-dire que les caractéristiques qui arrivent constamment au sommet à travers différentes méthodes sont susceptibles d'expliquer une grande quantité de variance dans l'espace des caractéristiques. Après avoir joué avec
nsprcomp
un peu, il semble que les deux premières méthodes élèvent ~ 1/2 des mêmes fonctionnalités vers le haut. Cela dit, l'optimisation de ce processus peut être un effort empirique.la source