Estoy un poco confundido acerca de la selección de funciones y el aprendizaje automático y me preguntaba si podrían ayudarme. Tengo un conjunto de datos de microarrays que se clasifica en dos grupos y tiene miles de características. Mi objetivo es obtener una pequeña cantidad de genes (mis características) (10-20) en una firma que, en teoría, podré aplicar a otros conjuntos de datos para clasificar de manera óptima esas muestras. Como no tengo tantas muestras (<100), no estoy usando un conjunto de prueba y entrenamiento, sino una validación cruzada Leave-one-out para ayudar a determinar la robustez. He leído que uno debe realizar la selección de características para cada división de las muestras, es decir
- Seleccione una muestra como conjunto de prueba
- En las muestras restantes, realice la selección de funciones
- Aplique el algoritmo de aprendizaje automático a las muestras restantes utilizando las funciones seleccionadas
- Pruebe si el conjunto de prueba está clasificado correctamente
- Ir a 1.
Si hace esto, puede obtener diferentes genes cada vez, entonces, ¿cómo obtiene su clasificador genético "final"? es decir, qué es el paso 6.
Lo que quiero decir con óptimo es la colección de genes que cualquier estudio adicional debería usar. Por ejemplo, supongamos que tengo un conjunto de datos de cáncer / normal y quiero encontrar los 10 mejores genes que clasificarán el tipo de tumor de acuerdo con una SVM. Me gustaría conocer el conjunto de genes más los parámetros de SVM que podrían usarse en más experimentos para ver si podrían usarse como prueba de diagnóstico.
Respuestas:
Esta es una muy buena pregunta que me enfrenté al trabajar con datos de SNP ... Y no encontré ninguna respuesta obvia a través de la literatura.
Ya sea que use LOO o K-fold CV, terminará con diferentes características ya que la iteración de validación cruzada debe ser el bucle más externo, como usted dijo. Puede pensar en algún tipo de esquema de votación que califique los n-vectores de las características que obtuvo de su LOO-CV (no recuerdo el documento, pero vale la pena verificar el trabajo de Harald Binder o Antoine Cornuéjols ). En ausencia de una nueva muestra de prueba, lo que generalmente se hace es volver a aplicar el algoritmo ML a toda la muestra una vez que haya encontrado sus parámetros óptimos de validación cruzada. Pero de esta manera, no puede asegurarse de que no haya sobreajuste (ya que la muestra ya se usó para la optimización del modelo).
Como estás hablando de SVM, puedes buscar SVM penalizado .
fuente
En principio:
Realice sus predicciones utilizando un solo modelo entrenado en todo el conjunto de datos (por lo que solo hay un conjunto de características). La validación cruzada solo se utiliza para estimar el rendimiento predictivo del modelo único entrenado en todo el conjunto de datos. Al utilizar la validación cruzada, es VITAL que en cada pliegue repita todo el procedimiento utilizado para ajustar el modelo primario, ya que de lo contrario puede terminar con un sesgo optimista sustancial en el rendimiento.
Para ver por qué sucede esto, considere un problema de clasificación binaria con 1000 características binarias pero solo 100 casos, donde los casos y las características son puramente aleatorios, por lo que no existe una relación estadística entre las características y los casos. Si entrenamos un modelo primario en el conjunto de datos completo, siempre podemos lograr un error cero en el conjunto de entrenamiento ya que hay más características que casos. Incluso podemos encontrar un subconjunto de características "informativas" (que están correlacionadas por casualidad). Si luego realizamos la validación cruzada utilizando solo esas características, obtendremos una estimación del rendimiento que es mejor que adivinar al azar. La razón es que en cada pliegue del procedimiento de validación cruzada hay alguna información sobre los casos retenidos utilizados para las pruebas, ya que las características se eligieron porque eran buenas para predecir, todas ellas, incluidos los que se presentaron. Por supuesto, la verdadera tasa de error será 0.5.
Si adoptamos el procedimiento adecuado y realizamos la selección de funciones en cada pliegue, ya no hay información sobre los casos retenidos en la elección de las funciones utilizadas en ese pliegue. Si utiliza el procedimiento adecuado, en este caso, obtendrá una tasa de error de aproximadamente 0,5 (aunque variará un poco para diferentes realizaciones del conjunto de datos).
Los buenos papeles para leer son:
Christophe Ambroise, Geoffrey J. McLachlan, "Sesgo de selección en la extracción de genes sobre la base de datos de expresión de genes de microarrays", PNAS http://www.pnas.org/content/99/10/6562.abstract
que es muy relevante para el OP y
Gavin C. Cawley, Nicola LC Talbot, "Sobre el ajuste excesivo en la selección del modelo y el sesgo de selección posterior en la evaluación del rendimiento", JMLR 11 (julio): 2079-2107, 2010 http://jmlr.csail.mit.edu/papers /v11/cawley10a.html
lo que demuestra que lo mismo puede ocurrir fácilmente en la selección del modelo (por ejemplo, sintonizar los hiperparámetros de un SVM, que también debe repetirse en cada iteración del procedimiento CV).
En la práctica:
Recomendaría usar Bagging y el error de fuera de bolsa para estimar el rendimiento. Obtendrá un modelo de comité con muchas características, pero eso es realmente algo bueno. Si solo usa un solo modelo, es probable que sobrepase el criterio de selección de características y termine con un modelo que ofrezca predicciones más pobres que un modelo que usa una mayor cantidad de características.
El libro de Alan Millers sobre selección de subconjuntos en regresión (monografías de Chapman y Hall sobre estadísticas y probabilidad aplicada, volumen 95) da el buen consejo (página 221) de que si el rendimiento predictivo es lo más importante, entonces no haga ninguna selección de características , solo use la regresión de cresta en su lugar. ¡Y eso está en un libro sobre selección de subconjuntos! ; o)
fuente
Para agregar a chl: Al usar máquinas de vectores de soporte, un método de penalización altamente recomendado es la red elástica. Este método reducirá los coeficientes hacia cero y, en teoría, conserva los coeficientes más estables en el modelo. Inicialmente se usó en un marco de regresión, pero se extiende fácilmente para su uso con máquinas de vectores de soporte.
La publicación original : Zou y Hastie (2005): Regularización y selección de variables a través de la red elástica. JRStatist. Soc. B, 67-2, págs. 301-320
Red elástica para SVM : Zhu y Zou (2007): Selección de variables para la máquina de vectores de soporte: Tendencias en la computación neuronal, capítulo 2 (Editores: Chen y Wang)
mejoras en la red elástica Jun-Tao y Ying-Min (2010): una red elástica mejorada para la clasificación del cáncer y la selección de genes: Acta Automatica Sinica, 36-7, pp.976-981
fuente
Como paso 6 (o 0), ejecuta el algoritmo de detección de características en todo el conjunto de datos.
fuente
Así es como selecciono las características. Supongamos que, en base a ciertos conocimientos, hay 2 modelos para comparar. El modelo A usa las características no.1 a no. 10. El modelo B usa no.11 a no. 20. Aplicaré LOO CV al modelo A para obtener su rendimiento fuera de la muestra. Haga lo mismo con el modelo B y luego compárelos.
fuente
No estoy seguro de los problemas de clasificación, pero en el caso de la selección de características para problemas de regresión, Jun Shao demostró que el CV Leave-One-Out es asintóticamente inconsistente , es decir, la probabilidad de seleccionar el subconjunto adecuado de características no converge a 1 como El número de muestras aumenta. Desde un punto de vista práctico, Shao recomienda una validación cruzada de Montecarlo o un procedimiento para dejar a muchos fuera.
fuente