Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Framework for Ensemble Learning

Usando varios métodos, puede combinar los resultados de muchos estudiantes débiles en un predictor de conjunto de alta calidad. Estos métodos siguen de cerca la misma sintaxis, por lo que puede probar diferentes métodos con cambios menores en sus comandos.

Puede crear un conjunto para la clasificación mediante o para la regresión mediante.fitcensemblefitrensemble

Para entrenar un conjunto para la clasificación utilizando, utilice esta sintaxis.fitcensemble

ens = fitcensemble(X,Y,Name,Value)
  • es la matriz de datos.X Cada fila contiene una observación y cada columna contiene una variable predictora.

  • es el vector de las respuestas, con el mismo número de observaciones que las filas.YX

  • especificar opciones adicionales mediante uno o varios argumentos de par nombre-valor.Name,Value Por ejemplo, puede especificar el método de agregación de conjunto con el argumento, el número de ciclos de aprendizaje de conjunto con el argumento y el tipo de alumnos débiles con el argumento.'Method''NumLearningCycles''Learners' Para obtener una lista completa de argumentos de par nombre-valor, vea la página de la función.fitcensemble

Esta figura muestra la información que necesita para crear un conjunto de clasificación.

Del mismo modo, puede entrenar un conjunto para la regresión mediante el uso, que sigue la misma sintaxis que.fitrensemblefitcensemble Para obtener información detallada sobre los argumentos de entrada y los argumentos de par nombre-valor, vea la página de la función.fitrensemble

Para todos los problemas de clasificación o de regresión no lineal, siga estos pasos para crear un conjunto:

Prepare los datos del predictor

Todos los métodos de aprendizaje supervisado empiezan con los Datos predictores, normalmente llamados en esta documentación. se pueden almacenar en una matriz o una tabla.XX Cada fila de representa una observación, y cada columna de representa una variable o predictor.XX

Prepare los datos de respuesta

Puede utilizar una amplia variedad de tipos de datos para los datos de respuesta.

  • Para conjuntos de regresión, debe ser un vector numérico con el mismo número de elementos que el número de filas de.YX

  • Para los conjuntos de clasificación, puede ser un vector numérico, un vector categórico, una matriz de caracteres, una matriz de cadenas, una matriz de vectores de caracteres o un vector lógico.Y

    Por ejemplo, supongamos que los datos de respuesta constan de tres observaciones en el orden siguiente:,,.truefalsetrue Usted podría expresar como:Y

    • (vector numérico)[1;0;1]

    • (vector categórico)categorical({'true','false','true'})

    • (vector lógico)[true;false;true]

    • (array de caracteres, rellenado con espacios para que cada fila tenga la misma longitud)['true ';'false';'true ']

    • (matriz de cadenas)["true","false","true"]

    • (matriz de celdas de vectores de caracteres){'true','false','true'}

    Use el tipo de datos que sea más conveniente. Dado que no puede representar valores faltantes con entradas lógicas, no utilice entradas lógicas cuando haya valores faltantes.Y

e ignorar los valores faltantes al crear un conjunto.fitcensemblefitrensembleY Esta tabla contiene el método de incluir entradas faltantes.

Tipo de datosFalta de entrada
Vector numéricoNaN
Vector categórico<undefined>
La matriz de caracteresFila de espacios
Matriz de cadenasO<missing>""
Matriz de vectores de caracteres''
Vector lógico(no es posible representar)

Elija un método de agregación de conjunto aplicable

Para crear conjuntos de clasificación y regresión con y, respectivamente, elija los algoritmos apropiados de esta lista.fitcensemblefitrensemble

  • Para la clasificación con dos clases:

    • 'AdaBoostM1'

    • 'LogitBoost'

    • 'GentleBoost'

    • requiere'RobustBoost'Optimization Toolbox™

    • requiere'LPBoost'Optimization Toolbox

    • requiere'TotalBoost'Optimization Toolbox

    • 'RUSBoost'

    • 'Subspace'

    • 'Bag'

  • Para la clasificación con tres o más clases:

    • 'AdaBoostM2'

    • requiere'LPBoost'Optimization Toolbox

    • requiere'TotalBoost'Optimization Toolbox

    • 'RUSBoost'

    • 'Subspace'

    • 'Bag'

  • Para la regresión:

    • 'LSBoost'

    • 'Bag'

Para obtener descripciones de los distintos algoritmos, consulte.Algoritmos de conjunto

Ver.Sugerencias para elegir un algoritmo de ensamble apropiado

Esta tabla enumera las características de los diversos algoritmos. En los títulos de la tabla:

  • — Bueno para los datos desequilibrados (una clase tiene muchas más observaciones que la otra)Imbalance

  • — El algoritmo se autofinalizaStop

  • — Requiere menos alumnos débiles que otros algoritmos de conjuntoSparse

AlgoritmoRegresiónClasificación binariaClasificación multiclaseDesequilibrio de claseParadaEscasa
Bag×××   
AdaBoostM1 ×    
AdaBoostM2  ×   
LogitBoost ×    
GentleBoost ×    
RobustBoost ×    
LPBoost ×× ××
TotalBoost ×× ××
RUSBoost ×××  
LSBoost×     
Subspace ××   

, y requieren una licencia.RobustBoostLPBoostTotalBoostOptimization Toolbox Pruébelo antes, como puede ser más robusto.TotalBoostLPBoostTotalBoost

Sugerencias para elegir un algoritmo de ensamble apropiado

  • — Sus opciones son o.RegressionLSBoostBag Vea las principales diferencias entre impulsar y embolsado.Características generales de los algoritmos de conjunto

  • — Pruebe primero, con estas modificaciones:Binary ClassificationAdaBoostM1

    Característica de datosAlgoritmo recomendado
    Muchos predictoresSubspace
    Datos sesgados (muchas más observaciones de una clase)RUSBoost
    Ruido de etiqueta (algunos datos de entrenamiento tienen la clase equivocada)RobustBoost
    Muchas observacionesEvite yLPBoostTotalBoost
  • — Pruebe primero, con estas modificaciones:Multiclass ClassificationAdaBoostM2

    Característica de datosAlgoritmo recomendado
    Muchos predictoresSubspace
    Datos sesgados (muchas más observaciones de una clase)RUSBoost
    Muchas observacionesEvite yLPBoostTotalBoost

Para obtener más información sobre los algoritmos, consulte.Algoritmos de conjunto

Características generales de los algoritmos de conjunto

  • algoritmos generalmente utilizan árboles muy poco profundos.Boost Esta construcción utiliza relativamente poco tiempo o memoria. Sin embargo, para las predicciones efectivas, los árboles potenciados podrían necesitar más miembros del conjunto que los árboles en bolsas. Por lo tanto, no siempre está claro qué clase de algoritmos es superior.

  • generalmente construye árboles profundos.Bag Esta construcción consume mucho tiempo y requiere mucha memoria. Esto también conduce a predicciones relativamente lentas.

  • puede estimar el error de generalización sin validación cruzada adicional.Bag Ver oobLoss.

  • A excepción de, todos los algoritmos de aumento y embolsado se basan en los alumnos. puede utilizar cualquiera oSubspaceárbol de decisiónSubspaceAnálisis discriminante -vecino más cercanok Estudiantes.

Para obtener más información sobre las características de los miembros individuales del conjunto, véase.Características de los algoritmos de clasificación

Establece el número de miembros del conjunto

Elegir el tamaño de un conjunto implica equilibrar la velocidad y la precisión.

  • Los conjuntos más grandes tardan más en formarse y generar predicciones.

  • Algunos algoritmos de conjunto pueden volverse excesivamente entrenados (inexactos) cuando son demasiado grandes.

Para establecer un tamaño adecuado, considere comenzar con varias docenas de varios cientos de miembros en un conjunto, entrenar el conjunto, y luego comprobar la calidad del conjunto, como en.Prueba de calidad del conjunto Si parece que necesita más miembros, agréguelos utilizando el resume método (clasificación) o el resume método (regresión). Repetir hasta agregar más miembros no mejora la calidad del conjunto.

Sugerencia

Para la clasificación, el y los algoritmos son Autoterminación, lo que significa que no tiene que investigar el tamaño del conjunto adecuado.LPBoostTotalBoost Intente establecer en.NumLearningCycles500 Los algoritmos generalmente terminan con menos miembros.

Prepare a los aprendices débiles

Actualmente los tipos débiles de los alumnos son:

  • (recomendado para conjunto)'Discriminant'Subspace

  • (sólo para conjunto)'KNN'Subspace

  • (para cualquier conjunto excepto)'Tree'Subspace

Hay dos maneras de establecer el tipo de aprendiz débil en un conjunto.

  • Para crear un conjunto con opciones de aprendizaje débiles predeterminadas, especifique el valor del argumento de par nombre-valor como el vector de caracteres o el escalar de cadena del nombre del alumno débil.'Learners' Por ejemplo:

    ens = fitcensemble(X,Y,'Method','Subspace', ...    'NumLearningCycles',50,'Learners','KNN'); % or ens = fitrensemble(X,Y,'Method','Bag', ...    'NumLearningCycles',50,'Learners','Tree');
  • Para crear un conjunto con opciones de aprendizaje débiles no predeterminadas, cree un alumno débil no predeterminado utilizando el método adecuado.template

    Por ejemplo, si tiene datos faltantes y desea utilizar árboles de clasificación con divisiones sustitutas para una mayor precisión:

    templ = templateTree('Surrogate','all'); ens = fitcensemble(X,Y,'Method','AdaBoostM2', ...    'NumLearningCycles',50,'Learners',templ);

    Para cultivar árboles con hojas que contengan un número de observaciones que sea al menos el 10% del tamaño de la muestra:

    templ = templateTree('MinLeafSize',size(X,1)/10); ens = fitcensemble(X,Y,'Method','AdaBoostM2', ...    'NumLearningCycles',50,'Learners',templ);

    Alternativamente, elija el número máximo de divisiones por árbol:

    templ = templateTree('MaxNumSplits',4); ens = fitcensemble(X,Y,'Method','AdaBoostM2', ...    'NumLearningCycles',50,'Learners',templ);

    También puede usar estudiantes débiles no predeterminados en.fitrensemble

Aunque puede dar y una matriz de celdas de plantillas de aprendizaje, el uso más común es dar solo una plantilla de aprendizaje débil.fitcensemblefitrensemble

Para obtener ejemplos con una plantilla, vea y.Manejar datos desequilibrados o costos desiguales de clasificación errónea en conjuntos de clasificaciónSuplente splits

Los árboles de decisión pueden controlar los valores.NaNX Estos valores se denominan "desaparecidos". Si tiene algunos valores faltantes en una fila de, un árbol de decisión encuentra divisiones óptimas utilizando solo valores que no faltan.X Si una fila completa consta de, e ignorar esa fila.NaNfitcensemblefitrensemble Si tiene datos con una gran fracción de valores faltantes, utilice divisiones de decisión sustitutas.X Para ver ejemplos de divisiones sustitutas, vea y.Manejar datos desequilibrados o costos desiguales de clasificación errónea en conjuntos de clasificaciónSuplente splits

Configuración común para los estudiantes débiles del árbol

  • La profundidad de un árbol de aprendizaje débil hace una diferencia para el tiempo de entrenamiento, el uso de memoria y la precisión predictiva. Usted controla la profundidad de estos parámetros:

    • : El número máximo de divisiones de nodos de bifurcación es por árbol.MaxNumSplitsMaxNumSplits Establecer grandes valores de para obtener árboles profundos.MaxNumSplits El valor predeterminado para el embolsado es.size(X,1) - 1 El valor predeterminado para impulsar es.1

    • — Cada hoja tiene al menos observaciones.MinLeafSizeMinLeafSize Establecer pequeños valores de para obtener árboles profundos.MinLeafSize El valor predeterminado para la clasificación es y para la regresión.15

    • : Cada nodo de ramificación del árbol tiene al menos observaciones.MinParentSizeMinParentSize Establecer pequeños valores de para obtener árboles profundos.MinParentSize El valor predeterminado para la clasificación es y para la regresión.210

    Si usted suministra ambos y, el alumno utiliza el ajuste que da hojas más grandes (árboles menos profundos):MinParentSizeMinLeafSize

    MinParent = max(MinParent,2*MinLeaf)

    Si además se suministra, el software divide un árbol hasta que se satisface uno de los tres criterios de división.MaxNumSplits

  • — Cultivar árboles de decisión con divisiones sustitutas cuando es.SurrogateSurrogate'on' Use divisiones sustitutas cuando los datos tengan valores faltantes.

    Nota

    Las divisiones sustitutas causan un entrenamiento más lento y utilizan más memoria.

  • —, y cultivar árboles utilizando el algoritmo CART estándar de forma predeterminada.PredictorSelectionfitcensemblefitrensembleTreeBagger[11] Si las variables predictoras son heterogéneas o hay predictores que tienen muchos niveles y otros tienen pocos niveles, entonces CART estándar tiende a seleccionar predictores que tienen muchos niveles como predictores divididos. Para la selección de predictor dividido que es robusta para el número de niveles que tienen los predictores, considere la posibilidad de especificar o.'curvature''interaction-curvature' Estas especificaciones realizan pruebas de Chi-cuadrado de asociación entre cada predictor y la respuesta o cada par de predictores y la respuesta, respectivamente. El predictor que produce el valor mínimo es el predictor dividido para un nodo determinado.p Para obtener más información, consulte.Elija la técnica dividir predictor selección

    Nota

    Al aumentar los árboles de decisión, no se recomienda seleccionar los predictores de división mediante las pruebas de curvatura o de interacción.

Llame ofitcensemblefitrensemble

Las sintaxis para y son idénticas.fitcensemblefitrensemble Para, la sintaxis es:fitrensemble

ens = fitrensemble(X,Y,Name,Value)
  • es la matriz de datos.X Cada fila contiene una observación y cada columna contiene una variable predictora.

  • son las respuestas, con el mismo número de observaciones que las filas.YX

  • especificar opciones adicionales mediante uno o varios argumentos de par nombre-valor.Name,Value Por ejemplo, puede especificar el método de agregación de conjunto con el argumento, el número de ciclos de aprendizaje de conjunto con el argumento y el tipo de alumnos débiles con el argumento.'Method''NumLearningCycles''Learners' Para obtener una lista completa de argumentos de par nombre-valor, vea la página de la función.fitrensemble

El resultado de y es un objeto de conjunto, adecuado para hacer predicciones sobre nuevos datos.fitrensemblefitcensemble Para obtener un ejemplo básico de creación de un conjunto de regresión, consulte.Train regresión Ensemble Para obtener un ejemplo básico de creación de un conjunto de clasificación, consulte.Conjunto de clasificación de trenes

Dónde establecer pares nombre-valor

Hay varios pares nombre-valor que se pueden pasar a o, y varios que se aplican a los alumnos débiles (,, y).fitcensemblefitrensembletemplateDiscriminanttemplateKNNtemplateTree Para determinar qué argumento de par nombre-valor es apropiado, el conjunto o el alumno débil:

  • Use pares nombre-valor de plantilla para controlar las características de los alumnos débiles.

  • Utilice los argumentos de par nombre-valor para controlar el conjunto como un todo, ya sea para los algoritmos o para la estructura.fitcensemblefitrensemble

Por ejemplo, para un conjunto de árboles de clasificación potenciados con cada árbol más profundo que el valor predeterminado, establezca los argumentos del par nombre-valor y los valores más pequeños que los predeterminados.templateTreeMinLeafSizeMinParentSize O, a un valor mayor que los valores predeterminados.MaxNumSplits Los árboles son entonces frondosos (más profundo).

Para nombrar los predictores en un conjunto de clasificación (parte de la estructura del conjunto), utilice el par nombre-valor en.PredictorNamesfitcensemble

Consulte también

| | | | | | |

Temas relacionados