2010-02-22 22 views
22

He estado leyendo sobre Árboles de decisión y Validación cruzada, y entiendo ambos conceptos. Sin embargo, tengo problemas para entender la validación cruzada en lo que respecta a los árboles de decisión. Básicamente, la validación cruzada le permite alternar entre capacitación y prueba cuando su conjunto de datos es relativamente pequeño para maximizar su estimación de errores. Una muy simple algoritmo es algo como esto:Ayuda Comprensión de validación cruzada y árboles de decisión

  1. decidir sobre el número de pliegues que desee (k)
  2. subdividir el conjunto de datos en k se pliega
  3. Use pliegues K-1 para un conjunto de entrenamiento para construir una árbol.
  4. Utilice el conjunto de prueba para estimar las estadísticas sobre el error en su árbol.
  5. Guarde sus resultados para más tarde
  6. Repita los pasos 3-6 para k veces, dejando un doblez diferente para su conjunto de prueba.
  7. media de los errores a través de sus iteraciones para predecir el error global

El problema que no puedo entender es al final tendrá k árboles de decisión que podrían ser todos un poco diferente, ya que podría no dividir de la misma manera, etc. ¿Qué árbol eliges? Una idea que tuve fue escoger la que tenía errores mínimos (aunque eso no lo hace óptimo solo porque funcionó mejor en el doblez que se le dio). Tal vez usar estratificación ayudará pero todo lo que he leído dice que solo ayuda un poco.)

Como entiendo la validación cruzada, el punto es calcular en estadísticas de nodos que luego pueden usarse para podar. Entonces, realmente, cada nodo del árbol tendrá estadísticas calculadas para él en función del conjunto de pruebas que se le haya asignado. Lo importante es esto en las estadísticas de nodo, pero si promedia su error. ¿Cómo fusiona estas estadísticas dentro de cada nodo en k árboles cuando cada árbol puede variar en lo que eligen dividir, etc.

¿Cuál es el punto de calcular el error general en cada iteración? Eso no es algo que pueda usarse durante la poda.

Cualquier ayuda con esta pequeña arruga sería muy apreciada.

Respuesta

17

El problema que no puedo entender es que al final tendrá k Árboles de decisiones que podrían ser un poco diferentes, ya que podrían no dividirse de la misma manera, etc. ¿Qué árbol eliges?

El propósito de la validación cruzada no es ayudar a seleccionar una determinada instancia del clasificador (o árbol de decisión, o lo que sea de aplicación el aprendizaje automático), sino más bien para calificar el modelo , es decir,para proporcionar métricas tales como la proporción de errores promedio, la desviación relativa a este promedio, etc. que pueden ser útiles para afirmar el nivel de precisión que uno puede esperar de la aplicación. Una de las cosas que la validación cruzada puede ayudar a afirmar es si los datos de capacitación son lo suficientemente grandes.

Con respecto a la selección de un árbol en particular, en su lugar debe ejecutar otra capacitación sobre el 100% de los datos de entrenamiento disponibles, ya que esto normalmente producirá un mejor árbol. (La desventaja del enfoque de validación cruzada es que tenemos que dividir la [típicamente pequeña] cantidad de datos de entrenamiento en "pliegues" y cuando insinúas en la pregunta, esto puede llevar a que los árboles sean demasiado aptos o no adecuados para instancias de datos particulares) .

En el caso del árbol de decisiones, no estoy seguro de cuál es su referencia a las estadísticas recopiladas en el nodo y utilizadas para podar el árbol. ¿Tal vez un uso particular de técnicas relacionadas con la validación cruzada? ...

+0

Bien, si pienso en lo que esto podría significar es que podría comparar diferentes tipos de clasificadores (Árbol de decisiones vs. SVM) dado un conjunto de datos y decir cuál sería más probable que prediga correctamente. Creo que la validación cruzada realmente no tiene nada que ver con la poda o las estadísticas usadas para podar. ¿Es suficiente tener un conjunto de entrenamiento utilizado para construir el árbol y otro conjunto para realizar la poda (es decir, el conjunto de prueba)? La mayoría de los datos de UCI vienen con juegos de entrenamiento y pruebas por separado, así que es por eso que pregunto. – chubbsondubs

1

La validación cruzada no se utiliza para buliding/podar el árbol de decisión. Se usa para estimar qué tan bueno será el árbol (basado en todos los datos) al simular la llegada de nuevos datos (construyendo el árbol sin algunos elementos tal como lo escribió). Realmente no tiene sentido elegir uno de los árboles generados porque el modelo está restringido por los datos que tiene (y no usarlo todo podría empeorar cuando use el árbol para nuevos datos).
El árbol está construido sobre los datos que usted elija (por lo general, todo). La poda generalmente se realiza mediante el uso de alguna heurística (es decir, el 90% de los elementos en el nodo pertenece a la clase A, por lo que no avanzamos o la ganancia de información es demasiado pequeña).

2

El punto principal de usar la validación cruzada es que le da una mejor estimación del rendimiento de su modelo entrenado cuando se utiliza en datos diferentes.

¿Qué árbol eliges? Una opción sería que haces bulid un nuevo árbol usando todos tus datos para el conjunto de entrenamiento.

5

Para la primera parte, y como han señalado los demás, usamos todo el conjunto de datos para construir el modelo final, pero usamos validación cruzada (CV) para obtener una mejor estimación del error de generalización en nuevos datos no vistos.

Para la segunda parte, creo que está confundiendo CV con la validación establecer, que se utiliza para evitar sobreajuste el árbol mediante la poda de un nodo cuando algún valor de la función calculada sobre el conjunto de validación no aumenta antes/después de la división.

3

Ya se ha mencionado que el propósito de la validación cruzada es calificar el modelo. En otras palabras, la validación cruzada nos proporciona una estimación de errores/precisión del modelo generado con los "parámetros" seleccionados, independientemente de los datos utilizados. El proceso de validación de corss se puede repetir utilizando parámetros deferentes hasta que estemos satisfechos con el rendimiento. Entonces podemos entrenar el modelo con los mejores parámetros en la información completa.

Cuestiones relacionadas