Oi tenho dataframe com grandes valores categóricos acima de 1600 categorias existe alguma maneira de encontrar alternativas para que eu não tenha mais de 1600 colunas.
Encontrei este link interessante abaixo http://amunategui.github.io/feature-hashing/#sourcecode
Mas eles estão convertendo para classe / objeto que eu não quero. Quero minha saída final como um quadro de dados para poder testar com diferentes modelos de aprendizado de máquina? ou existe alguma maneira de usar a matriz genetrada para treinar outros modelos de aprendizado de máquina que não sejam regressão logística ou XGBoost?
Existe alguma maneira que eu possa implementar?
Respostas:
Uma opção é mapear valores raros para 'outro'. Isso geralmente é feito no processamento de linguagem natural, por exemplo - a intuição é que rótulos muito raros não têm muito poder estatístico.
Também vi pessoas mapearem valores categóricos 1-quentes para vetores de dimensões inferiores, onde cada vetor 1-quente é representado como um empate de um gaussiano multivariado. Veja, por exemplo, o artigo Deep Knowledge Tracing, que diz que essa abordagem é motivada pela idéia de detecção compactada:
BARANIUK, R. Sensoriamento compressivo. Revista de processamento de sinais IEEE 24, 4 (2007).
Especificamente, eles mapeiam cada vetor de comprimento N para um vetor mais curto de comprimento log2 (N). Eu não fiz isso sozinho, mas acho que valeria a pena tentar.
fonte
Você pode ler os dados e primeiro obter uma lista de todos os valores exclusivos de suas variáveis categóricas. Em seguida, você pode ajustar um objeto de um codificador ativo (como o sklearn.preprocessing.CategoricalEncoder) na sua lista de valores exclusivos.
Esse método também pode ajudar em uma estrutura de teste de trem ou quando você está lendo seus dados em partes. Eu criei um módulo python que faz tudo isso por conta própria. Você pode encontrá-lo neste repositório GitHub - dummyPy
Um breve tutorial sobre este assunto - Como codificar variáveis categóricas em um código quente em Python?
fonte
Consulte este link (isso também está relacionado ao recurso categórico que possui alguns valores exclusivos):
https://datascience.stackexchange.com/a/64021/67149
Para incorporação, você pode consultar o link abaixo (não escrito por mim, mas que vale a pena ler uma vez): https://medium.com/@satnalikamayank12/on-learning-embeddings-for-categorical-data-using-keras-165ff2773fc9
fonte
Você pode fazer o agrupamento de valores semelhantes, de modo que valores (ou colunas) que possuam o valor mais próximo (ou que possua um padrão muito semelhante) possam ser substituídos por um valor (ou coluna) e, portanto, seus valores 1600 possam descer para dizer 400 (ou mesmo Menos).
Ex. para valores como (nuvens como - Nimbus Clouds, chuviscos, chuva fraca, chuva, chuva forte pode ser convertida em (chuva fraca, chuva, chuva forte).
fonte