15 votos

Clasificación de altura, con los datos del fat

Quiero entrenar un clasificador lineal en mi laptop con cientos de miles de puntos de datos y alrededor de diez mil funciones. ¿Cuáles son mis opciones? ¿Cuál es el estado de la técnica para este tipo de problema?

Parece que estocástico de gradiente de la pendiente es la dirección prometedora, y mi sensación es que este es el estado del arte:

"Pegasos: Primal Estimado sub-Gradiente de SOlver para SVM" Shai Shalev-Shwartz, Yoram Cantante, Nathan Srebro, Andrés Cotter." Programación matemática, de la Serie B, 127(1):3-30, año: 2007 . "

Es este el consenso? Debo buscar en alguna otra dirección?

4voto

Tokabi Puntos 840

En primer lugar, me gustaría preguntarle, ¿cómo saber clasificador lineal es la mejor opción? Intuitivamente para un espacio tan grande (R^10000) es posible que algunos otros no clasificador lineal es una mejor opción.

Le sugiero que pruebe diferentes clasificadores y observar los errores de predicción (me gustaría probar varios regularización de los modelos de clasificación).

Si se agota la memoria de reducir la dimensión de uso de la PCA

3voto

Evan Carroll Puntos 800

También puede usar el PCA para reducir las dimensiones sin calcular la matriz de covarianza --- mediante neural newtork equivalente de la PCA.

Aquí es un documento que describe (pero recomiendo hacer su propia búsqueda): http://users.ics.tkk.fi/oja/Oja1982.pdfy aquí hay un enlace a algo que puede ser de trabajo de implementación en matlab: http://www.cs.purdue.edu/homes/dgleich/projects/pca_neural_nets_website/index.html.

3voto

A.Schulz Puntos 264

Creo que usted debe buscar en Línea el Aprendizaje de métodos. El tipo perceptrón y el kernel de tipo perceptrón son muy fáciles de codificar y trabajar muy bien en la práctica, y hay toda una serie de otros métodos en línea. Tenga en cuenta que cualquier método de aprendizaje se puede convertir en un lote algoritmo de aprendizaje, en cuyo caso se asemejan estocásticos métodos de gradiente de la pendiente.

Si usted está usando Matlab hay realmente una buena caja de herramientas llamado DOGMA por Francesco Orabona, que contiene un conjunto de algoritmos de aprendizaje en línea, y usted puede evaluar un par de métodos diferentes de usar que. La he usado en algunos de mis investigaciones y encontró que es muy útil (nota de que según recuerdo se espera que los datos [características x ejemplos] por lo que podría tener para su incorporación).

Como otros han mencionado, es posible que desee intentar la reducción de dimensionalidad. PCA podría no ser una buena opción aquí, como usted tiene que calcular la matriz de covarianza que será muy costoso. Se puede intentar buscar en el Azar de las Proyecciones. La teoría es duro, pero el principio es muy simple. Se basa en el Johnson-Lindenstrauss Lema si usted está interesado, pero la idea básica es que si aleatoriamente proyecto para un menor espacio tridimensional, a continuación, $\ell_2$ distancias entre los puntos se conservan hasta algunos $\epsilon$. Si usted está usando un kernel RBF, a continuación, $\ell_2$ distancias son todos los que están interesados en!

1voto

Upul Puntos 372

Como jb sugerido, creo que es mejor usar una "Reducción de dimensiones" método. Análisis de Componentes principales (PCA) es una elección popular. También puede probar sin supervisión en función de las técnicas de aprendizaje así. Para obtener más información acerca de la función de supervisión de aprendizaje se puede encontrar en http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X