Un método que me gusta especialmente para seleccionar características útiles, sin importar la dimensionalidad o la escasez, es utilizar técnicas de aprendizaje y / o extracción de características sin supervisión para aprender las características relevantes .
Si está utilizando un método de clasificación como una red neuronal, por ejemplo, puede ejecutar sus datos a través de un algoritmo de análisis de patrones, recuperar los centroides para sus datos de una clase determinada y usarlo como un punto de inicialización para la red neuronal pesas El punto aquí es evitar estar sujeto a un mínimo local irrelevante durante la optimización de descenso más pronunciado, lo que a su vez le brindará un mejor rendimiento.
Dada la suficiente regularización, la escasez y la falta de equilibrio en realidad pueden funcionar para su beneficio, proporcionando una partición extremadamente general del espacio de características, que puede refinar a medida que obtiene más ejemplos.
En términos de métodos de extracción de características, puede hacer algunas cosas. Dado que usted declara que los datos están “desequilibrados” (que para este caso supongo que son muy variados), tiene la opción de aplicar PCA, LDA o CCA.
- ¿Sigue siendo el curso de aprendizaje automático de Andrew Ng el mejor curso de aprendizaje automático disponible?
- Puede aprendizaje no supervisado puede utilizar para determinar si alguien de la escritura / arte es más creativo que la escritura / arte de la mayoría de la gente?
- ¿Cuáles son las diferencias entre la red neuronal artificial (informática) y la red neuronal biológica?
- ¿Puedo comenzar a aprender el aprendizaje automático y el aprendizaje profundo sin repasar primero mis conocimientos de matemáticas?
- Word2vec: ¿Cómo puede el método de entrenamiento jerárquico soft-max de CBOW garantizar su autoconsistencia?
PCA , o Análisis de componentes principales le permitirá asignar sus datos a un sistema de coordenadas donde los vectores base representan componentes que tienen la mayor varianza entre ellos. (por ejemplo, el primer componente tiene la mayor varianza, el segundo componente tiene la segunda mayor) Esta es una excelente manera de encontrar la estructura subyacente en los datos que explica la alta varianza entre los ejemplos. Yo mismo no he hecho demasiado con PCA, por lo que mis observaciones empíricas sobre la utilidad de los métodos son algo limitadas, pero como método de reducción de dimensionalidad y selección de características, podría hacer lo que necesita.
LDA , o análisis discriminante lineal es un proceso mediante el cual puede encontrar una combinación lineal que separará linealmente dos o más clases dadas. Sin embargo, si tiene más de dos clases, terminará teniendo que implementar un escenario uno contra todos o usar LDA multiclase para encontrar un subespacio lineal para separar sus clases. Dicho esto, las clases deben ser linealmente separables en el espacio de hipótesis para que esto funcione.
El análisis de correlación canónica o CCA es un proceso que encuentra las similitudes y las variaciones entre dos conjuntos de variables aleatorias. Si tiene datos etiquetados, creo que podría organizarlos por etiqueta, dividirlos en unas pocas secciones y ejecutar CCA con esas secciones por pares para ver qué características son relevantes para cada clase. Nota: Solo estoy postulando aquí, en realidad nunca he hecho esto, pero según lo que CCA está definido para hacer, no estoy seguro de por qué no funcionaría.
Sin embargo, si sus datos tienen una dimensión tan alta, que realizar los cálculos como parte de cualquiera de estos métodos se convierte en un problema demasiado grande, existen otras opciones.
Para datos dimensionales extremadamente altos, puede utilizar Hashing sensible a la localidad o proyección aleatoria.
El Hashing sensible a la localidad es exactamente lo que parece, agrupando los datos por ubicación aproximada de modo que elementos espacialmente similares terminen bajo la misma clave hash.
La proyección aleatoria es un proceso mediante el cual proyecta datos desde una dimensión más alta a una dimensión considerablemente más baja mediante alguna matriz de proyección aleatoria. La preservación de las distancias por pares entre ejemplos está directamente relacionada con qué tan baja de una dimensión proyecta. Como tal, termina siendo una compensación entre la dimensión de salida y qué tan bien se preservan las diferencias entre los ejemplos.
Para continuar con eso, como con cualquier técnica de reducción de dimensionalidad, al menos alguna información se perderá en el proceso en la mayoría de los casos. La clave es encontrar una compensación de tal manera que realmente solo pierda los bits más irrelevantes de los datos.
No sé la naturaleza exacta de los datos con los que está trabajando, ni cuál es su objetivo final (aparte de clasificar algo). Sin embargo, dado lo que dice la pregunta y mi interpretación, así es como comenzaría.
¡Espero que ayude de alguna manera!
Editar:
JQ Veenstra me llamó la atención de que los métodos de kernel no funcionarían por definición en la mayoría de los casos. (con la excepción de unos pocos, tal vez en su caso contraejemplos inexistentes) ¡Mi error! Los métodos de kernel buscan mapear datos desde una dimensión inferior a una dimensión implícita superior (o incluso infinita) de tal manera que en esa dimensión, los datos sean separables por hiperplano lineal. Mi conocimiento de los núcleos aún no es demasiado bueno, ¡así que mis disculpas por eso! Pero bueno, todo es parte del proceso de aprendizaje, ¿verdad? 🙂