¿Cuál es el mejor algoritmo para un conjunto de datos con muchas características correlacionadas, débiles y ruidosas?

Con conjuntos de datos muy grandes, desestructurados y ruidosos, a menudo es mejor realizar algún tipo de reducción de dimensionalidad. Debes buscar en PCA o ICA. El aprendizaje múltiple también proporciona una buena base (práctica y teórica) para la reducción de la dimensionalidad no lineal.

A menudo se dice que los datos que tiene son mucho más importantes que el algoritmo que implementa. Sería mejor mirar sus datos y hacer algún tipo de extracción de características. Las características que puede crear a menudo codificarán información semántica mucho más útil y no están tan dispersas como el vector covariable con el que comienza.

Pasando a los algoritmos reales, depende de la distribución de sus datos y del problema que tenga a mano. Si está haciendo una clasificación binaria, le sugiero que busque en las Máquinas de vectores de soporte de margen suave (SVM), ya que están bien fundamentadas en teoría y proporcionan una implementación poderosa para tratar con grandes conjuntos de datos también.

Los bosques aleatorios (RF) también actúan como buenos clasificadores. Puede usar un subconjunto del conjunto de entrenamiento para embolsar y crear una forma de clasificador de conjunto. Existen innumerables implementaciones diferentes de RF y todas tienen sus ventajas específicas según los datos que tenga y la tarea de clasificación en cuestión.

El último algoritmo que sugeriré investigar es Deep Learning Neural Networks (DNNs). Los DNN pueden formar arquitecturas complejas que parecen formar comportamientos y clasificaciones “inteligentes”. Los DNN pierden algunas de las ventajas que tienen las redes neuronales de perceptrón multicapa, como un entrenamiento más simple.

En general, el algoritmo que elija dependerá mucho del tipo de datos que tenga. Sugeriría pasar una cantidad significativa de tiempo trabajando en la limpieza de sus datos antes de seguir adelante. Cuando comience con la clasificación, siempre debe hacer una validación cruzada n- doble para asegurarse de que no está sobreajustando y que su algoritmo se generalizará a los nuevos datos que obtendrá.

Generalmente decido qué algoritmo usar en función de la función de destino (es decir, lo que está tratando de hacer) y no en función de las características. ¿Estás tratando de clasificar, predecir un puntaje, grupo, etc.?

En general, puede decorar las características a través de varios medios:

  • Alguna forma de factorización (SVD, PCA, Factorización de rango, etc.) que integrará las características en un vector de dimensión inferior en función de su ortogonalidad. También puede agrupar las funciones integradas, que pueden proporcionar un mejor rendimiento
  • Tomando el producto exterior de características. Por ejemplo, en lugar de una característica para el tamaño de una casa y otra característica para el costo, puede tener un conjunto de características binarias que representan pares de tamaño + costo, uno de los cuales es cierto.

No voy a trabajar Haga primero la reducción de dimensionalidad (el contenedor podría funcionar, o PCA / aprendizaje múltiple), luego otro algoritmo para modelar su resultado. Si está comparando dos grupos, la homología persistente podría ser una opción, ya que funciona bien cuando p> ny hay un gran desorden con los predictores.