¿Cuáles son los métodos / implementación disponibles en R / Python para descartar / seleccionar características no importantes / importantes en los datos? Mis datos no tienen etiquetas (sin supervisión).
Los datos tienen ~ 100 características con tipos mixtos. Algunos son numéricos mientras que otros son binarios (0/1).
r
feature-selection
python
aprendiz
fuente
fuente
Respuestas:
Tiene un año pero todavía siento que es relevante, así que solo quería compartir mi implementación de Python del Análisis de características principales (PFA) como se propuso en el documento al que Charles se vinculó en su respuesta.
Puedes usarlo así:
Esto sigue estrictamente el algoritmo descrito en el artículo. Creo que el método es prometedor, pero sinceramente, no creo que sea el enfoque más sólido para la selección de funciones sin supervisión. Publicaré una actualización si se me ocurre algo mejor.
fuente
fit
función omite el Paso 1 y realiza PCA en el conjunto de datos original .El paquete sparcl en R realiza un escaso agrupamiento jerárquico y escaso de K-means. Esto puede ser útil. http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2930825/
fuente
El análisis de características principales parece ser una solución para la selección de funciones sin supervisión. Se describe en este documento .
fuente
He encontrado un enlace que podría ser útil, esas son implementaciones de matlab, pueden funcionar para usted http://www.cad.zju.edu.cn/home/dengcai/Data/MCFS.html es una selección de funciones multiclúster método, puede encontrar una base sólida al respecto en documentos recientes Avíseme si funciona para usted
fuente
Hay muchas opciones disponibles en
R
. Un buen lugar para buscar es elcaret
paquete que proporciona una interfaz agradable para muchos otros paquetes y opciones. Puedes echar un vistazo al sitio web aquí . Existen muchas opciones, pero ilustraré una.Aquí hay un ejemplo del uso de un filtro simple usando los
R
conjuntos de datos "mtcars" integrados (que se muestran a continuación).Ahora alguna configuración de código (carga de paquetes, etc.):
Y podemos ajustar un modelo simple para seleccionar variables:
Al ver los resultados, obtenemos:
Finalmente, podemos trazar las variables seleccionadas (en
fit1$optVariables
) contra el resultadompg
:Resultando en este gráfico:
fuente
mpg
como resultado. ¿Hay alguna manera de usar métodos como estos en modelos no supervisados?El
nsprcomp
paquete R proporciona métodos para un escaso análisis de componentes principales, que podría satisfacer sus necesidades.Por ejemplo, si cree que sus características generalmente están correlacionadas linealmente y desea seleccionar las cinco principales, puede ejecutar PCA disperso con un máximo de cinco características y limitarlo al primer componente principal:
Alternativamente, si desea capturar la naturaleza ortogonal de las funciones, puede seleccionar la función superior de cada una de las cinco PC principales, limitando cada PC a una función:
Un conjunto de estos también podría ser útil; es decir, las características que constantemente llegan a la cima en diferentes métodos pueden explicar una gran cantidad de variación en el espacio de características. Después de jugar
nsprcomp
un poco, parece que los dos primeros métodos elevan ~ 1/2 de las mismas características a la cima. Dicho esto, optimizar este proceso puede ser un esfuerzo empírico.fuente