Atualmente, estou trabalhando em um modelo de regressão logística para genômica. Um dos campos de entrada que quero incluir como covariável é genes
. Existem cerca de 24.000 genes conhecidos. Existem muitos recursos com esse nível de variabilidade na biologia computacional e centenas de milhares de amostras são necessárias.
- Se eu
LabelEncoder()
esses genes 24K - e então
OneHotEncoder()
eles ...
As 24.000 colunas tornarão meus tempos de treinamento keras irracionais para uma CPU i7 quad-core de 2,2 GHz?
Em caso afirmativo, existe uma abordagem diferente para a codificação que eu possa usar com isso?
De alguma forma, devo tentar dedicar uma camada do meu modelo a esse recurso?
Isso significa que eu preciso de 24K nós de entrada?
machine-learning
keras
scikit-learn
HashRocketSyntax
fonte
fonte
Respostas:
Sim, o uso de codificação one-hot em recursos de 24k requer nós de entrada de 24k. No entanto, isso não deve ser um problema para Keras (ou qualquer outra biblioteca de aprendizado profundo). O processamento de linguagem natural geralmente usa a codificação one-hot em palavras com tamanho de vocabulário no mesmo estádio.
Se você estiver usando um modelo "profundo", uma de suas camadas ocultas deve reduzir a dimensionalidade dos seus dados. Uma etapa separada de pré-processamento geralmente não é necessária.
O tempo de treinamento não deve ser irracional.
fonte
A incorporação de entidades para variáveis categóricas ( pager original ) seria uma abordagem muito adequada aqui. Leia aqui ou aqui . Na verdade, eu coloquei pedaços de códigos daqui e dali e fiz uma implementação completa, veja este repositório do git. Isso lida facilmente com variáveis categóricas cardinais muito altas usando redes neurais. Não vou listar os prós e contras do OHE, você apenas o pesquisa no Google, mas um de seus principais inconvenientes, especialmente. ao ter uma variável categórica cardinal muito alta, ela aumenta drasticamente o espaço de recursos desnecessariamente, o que, na minha opinião, não é o ideal. E, o que é mais importante, a OHE, que eu saiba, não leva em consideração o relacionamento semântico entre categorias, se existe esse tipo de relação! No entanto, a Incorporação de entidade é um conceito para a Incorporação de palavras na PNL, os pesos que estão sendo aprendidos para codificar as categorias podem potencialmente capturar relações entre categorias.
fonte
Geralmente, esse número de genes deve ser reduzido a um conjunto muito menor de características significativas. Em seguida, o conjunto de recursos reduzidos pode ser usado no modelo. Por exemplo, a Análise de Componentes Principais (PCA) é uma das técnicas de redução mais comuns e tem sido usada para dados de expressão gênica .
" Aprendizado de máquina para integrar dados em biologia e medicina: princípios, práticas e oportunidades" por Zitnika et al. abrange uma variedade de técnicas de engenharia de recursos para genes.
fonte