Je travaille actuellement sur un modèle de régression logistique pour la génomique. L'un des champs de saisie que je souhaite inclure en tant que covariable est genes
. Il existe environ 24 000 gènes connus. Il existe de nombreuses fonctionnalités avec ce niveau de variabilité en biologie computationnelle et des centaines de milliers d'échantillons sont nécessaires.
- Si je
LabelEncoder()
ces gènes 24K - et puis
OneHotEncoder()
eux ...
Est-ce que 24 000 colonnes rendront mes temps de formation de keras déraisonnables pour un processeur i7 quad-core 2,2 GHz?
Si oui, existe-t-il une approche différente de l'encodage que je peux adopter avec cela?
Dois-je en quelque sorte essayer de dédier une couche de mon modèle à cette fonctionnalité?
Est-ce à dire que j'ai besoin de 24 000 nœuds d'entrée?
machine-learning
keras
scikit-learn
HashRocketSyntax
la source
la source
Réponses:
Oui, l'utilisation d'un codage à chaud sur les fonctionnalités 24k nécessite des nœuds d'entrée 24k. Cependant, cela ne devrait pas être un problème pour Keras (ou toute autre bibliothèque d'apprentissage en profondeur). Le traitement du langage naturel utilise souvent un codage à chaud sur des mots avec une taille de vocabulaire dans le même stade.
Si vous utilisez un modèle "profond", l'une de vos couches masquées doit veiller à réduire la dimensionnalité de vos données. Une étape de prétraitement distincte n'est généralement pas nécessaire.
Le temps de formation ne doit pas être déraisonnable.
la source
L'incorporation d'entité pour les variables catégorielles ( téléavertisseur d'origine ) serait une approche très appropriée ici. Lisez ici ou ici . J'ai en fait mis des morceaux de codes ici et là et fait une implémentation complète, voir ce dépôt git. Cela gère facilement des variables catégorielles cardinales très élevées en utilisant des réseaux de neurones. Je ne vais pas énumérer les avantages et les inconvénients de OHE, vous venez de Google, mais l'un de ses principaux inconvénients, en particulier. lorsque la variable catégorielle cardinale est très élevée, cela augmente considérablement votre espace de fonctionnalités, ce qui, à mon avis, n'est pas idéal. Et surtout OHE, à ma connaissance, ne rend pas compte de la relation sémantique entre les catégories s'il existe une telle relation! Cependant, l'incorporation d'entité est un concept de l'incorporation de mots dans la PNL, les pondérations qui sont apprises pour coder les catégories peuvent potentiellement capturer des relations intra-catégorie.
la source
Généralement, ce nombre de gènes devrait être réduit à un ensemble beaucoup plus petit de caractéristiques significatives. Ensuite, l'ensemble de fonctionnalités réduit peut être utilisé dans le modèle. Par exemple, l'analyse en composantes principales (ACP) est l'une des techniques de réduction les plus courantes et a été utilisée pour les données d'expression génique .
"L' apprentissage automatique pour l'intégration des données en biologie et en médecine: principes, pratiques et opportunités" par Zitnika et al. couvre une variété de techniques d'ingénierie des fonctionnalités pour les gènes.
la source