Hola, tengo un marco de datos con grandes valores categóricos en más de 1600 categorías. ¿Hay alguna forma de encontrar alternativas para no tener más de 1600 columnas?
Encontré esto debajo del enlace interesante http://amunategui.github.io/feature-hashing/#sourcecode
Pero se están convirtiendo a clase / objeto que no quiero. ¿Quiero mi salida final como un marco de datos para poder probar con diferentes modelos de aprendizaje automático? ¿O hay alguna forma de usar la matriz generada para entrenar los otros modelos de aprendizaje automático que no sean la regresión logística o XGBoost?
¿Hay alguna forma de implementar?
Respuestas:
Una opción es asignar valores raros a 'otro'. Esto se hace comúnmente, por ejemplo, en el procesamiento del lenguaje natural; la intuición es que las etiquetas muy raras no tienen mucho poder estadístico.
También he visto a personas que asignan valores categóricos 1-hot a vectores de dimensiones inferiores, donde cada vector 1-hot se representa de nuevo como un dibujo de un gaussiano multivariado. Consulte, por ejemplo, el documento Deep Knowledge Tracing, que dice que este enfoque está motivado por la idea de la detección comprimida:
BARANIUK, R. Detección de compresión. IEEE revista de procesamiento de señales 24, 4 (2007).
Específicamente, asignan cada vector de longitud N a un vector más corto de longitud log2 (N). No lo he hecho yo mismo, pero creo que valdría la pena intentarlo.
fuente
Puede leer los datos y primero obtener una lista de todos los valores únicos de sus variables categóricas. Luego, puede ajustar un objeto de codificador activo (como sklearn.preprocessing.CategoricalEncoder) en su lista de valores únicos.
Este método también puede ayudar en un marco de prueba de tren o cuando está leyendo sus datos en fragmentos. He creado un módulo de Python que hace todo esto por sí solo. Puedes encontrarlo en este repositorio de GitHub - dummyPy
Un breve tutorial sobre esto: ¿Cómo codificar variables categóricas en caliente en Python?
fuente
Consulte este enlace (esto también está relacionado con la característica categórica que tiene bastantes valores únicos):
https://datascience.stackexchange.com/a/64021/67149
Para incrustar, puede consultar el siguiente enlace (no escrito por mí, pero digno de leer una vez): https://medium.com/@satnalikamayank12/on-learning-embeddings-for-categorical-data-using-keras-165ff2773fc9
fuente
Puede agrupar valores similares, de modo que los valores (o columnas) que contengan el patrón de valor más cercano (o tengan un patrón muy similar) puedan reemplazarse por un valor (o columna) y, por lo tanto, sus valores de 1600 puedan reducirse a 400 (o incluso Menos).
Ex. para valores como (nube como - Nimbus Clouds, llovizna, lluvia ligera, lluvia, lluvia fuerte se pueden convertir a (lluvia ligera, lluvia, lluvia fuerte).
fuente