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.

resubLoss

Clase: RegressionTree

Error de regresión por reenvío

Sintaxis

L = resubLoss(tree)
L = resubLoss(tree,Name,Value)
L = resubLoss(tree,'Subtrees',subtreevector)
[L,se] = resubLoss(tree,'Subtrees',subtreevector)
[L,se,NLeaf] = resubLoss(tree,'Subtrees',subtreevector)
[L,se,NLeaf,bestlevel] = resubLoss(tree,'Subtrees',subtreevector)
[L,...] = resubLoss(tree,'Subtrees',subtreevector,Name,Value)

Descripción

L = resubLoss(tree) Devuelve la pérdida de reenvío, es decir, la pérdida calculada para los datos que se utilizaron para crear.fitrtreetree

L = resubLoss(tree,Name,Value) Devuelve la pérdida con opciones adicionales especificadas por uno o más argumentos de par.Name,Value Puede especificar varios argumentos de par nombre-valor en cualquier orden como.Name1,Value1,…,NameN,ValueN

L = resubLoss(tree,'Subtrees',subtreevector) Devuelve un vector de errores cuadráticos medio para los árboles en la secuencia de poda.subtreevector

[L,se] = resubLoss(tree,'Subtrees',subtreevector) Devuelve el vector de errores estándar de los errores de clasificación.

[L,se,NLeaf] = resubLoss(tree,'Subtrees',subtreevector) Devuelve el vector de números de nodos de hoja en los árboles de la secuencia de poda.

[L,se,NLeaf,bestlevel] = resubLoss(tree,'Subtrees',subtreevector) Devuelve el mejor nivel de poda definido en el par nombre-valor.TreeSize Por defecto, es el nivel de poda que da la pérdida dentro de una desviación estándar de pérdida mínima.bestlevel

[L,...] = resubLoss(tree,'Subtrees',subtreevector,Name,Value) Devuelve estadísticas de pérdida con opciones adicionales especificadas por uno o más argumentos de par.Name,Value Puede especificar varios argumentos de par nombre-valor en cualquier orden como.Name1,Value1,…,NameN,ValueN

Argumentos de entrada

expandir todo

Un árbol de regresión (objeto de modelo) construido utilizando.RegressionTreefitrtree

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Función de pérdida, especificada como un manejador de función o significado de error cuadrado medio.'mse'

Puede escribir su propia función de pérdida en la sintaxis descrita en.Funciones de pérdida

Tipos de datos: char | string | function_handle

argumentos asociados a los subárboles de poda:Name,Value

Nivel de poda, especificado como el par separado por comas que consta de y un vector de enteros no negativos en orden ascendente o.'Subtrees''all'

Si especifica un vector, todos los elementos deben ser al menos y como máximo. indica el árbol completo, no podado e indica el árbol completamente podado (es decir, sólo el nodo raíz).0max(tree.PruneList)0max(tree.PruneList)

Si especifica,'all' resubLoss opera en todos los subárboles (es decir, toda la secuencia de poda). Esta especificación equivale a usar.0:max(tree.PruneList)

resubLoss ciruelas a cada nivel indicado en y, a continuación, estima los argumentos de salida correspondientes.treeSubtrees El tamaño de determina el tamaño de algunos argumentos de salida.Subtrees

Para invocar, las propiedades y de deben estar no vacías.SubtreesPruneListPruneAlphatree En otras palabras, crece estableciendo, o podando usandotree'Prune','on'tree prune.

Ejemplo: 'Subtrees','all'

Tipos de datos: single | double | char | string

Tamaño de árbol, especificado como uno de los siguientes:

  • : devuelve el nivel de poda más alto con pérdida dentro de una desviación estándar del mínimo (+, donde y se relaciona con el valor más pequeño en).'se'lossLseLseSubtrees

  • : devuelve el elemento de menor pérdida, normalmente el elemento más pequeño de.'min'lossSubtreesSubtrees

Argumentos de salida

expandir todo

La pérdida de regresión (error cuadrado medio), un vector de la longitud de.Subtrees El significado del error depende de los valores de y.WeightsLossFun

Error estándar de pérdida, un vector de la longitud de.Subtrees

Número de hojas (nodos terminales) en los subárboles podados, un vector de la longitud de.Subtrees

Un escalar cuyo valor depende de:TreeSize

  • = — Devuelve el nivel de poda más alto con pérdida dentro de una desviación estándar del mínimo (+, donde y se relacionan con el valor más pequeño en).TreeSize'se'lossLseLseSubtrees

  • = — Devuelve el elemento de menor pérdida, normalmente el elemento más pequeño de.TreeSize'min'lossSubtreesSubtrees

Ejemplos

expandir todo

Cargue el conjunto de datos.carsmall Considere, y como predictores de la respuesta.DisplacementHorsepowerWeightMPG

load carsmall X = [Displacement Horsepower Weight];

Cultivar un árbol de regresión utilizando todas las observaciones.

Mdl = fitrtree(X,MPG);

Calcule el reenvío MSE.

resubLoss(Mdl)
ans = 4.8952 

Los árboles de decisión no podadas tienden a sobreajustarse. Una forma de equilibrar la complejidad del modelo y el rendimiento fuera de la muestra es podar un árbol (o restringir su crecimiento) para que el rendimiento en la muestra y fuera de la muestra sea satisfactorio.

Cargue el conjunto de datos.carsmall Considere, y como predictores de la respuesta.DisplacementHorsepowerWeightMPG

load carsmall X = [Displacement Horsepower Weight]; Y = MPG;

Dividir los datos en formación (50%) y validación (50%) Establece.

n = size(X,1); rng(1) % For reproducibility idxTrn = false(n,1); idxTrn(randsample(n,round(0.5*n))) = true; % Training set logical indices  idxVal = idxTrn == false;                  % Validation set logical indices

Cultivar un árbol de regresión usando el conjunto de entrenamiento.

Mdl = fitrtree(X(idxTrn,:),Y(idxTrn));

Ver el árbol de regresión.

view(Mdl,'Mode','graph');

El árbol de regresión tiene siete niveles de poda. El nivel 0 es el árbol completo, no podado (como se muestra). El nivel 7 es solo el nodo raíz (es decir, sin divisiones).

Examine el ejemplo de entrenamiento MSE para cada subárbol (o nivel de poda) excluyendo el nivel más alto.

m = max(Mdl.PruneList) - 1; trnLoss = resubLoss(Mdl,'SubTrees',0:m)
trnLoss = 7×1

    5.9789
    6.2768
    6.8316
    7.5209
    8.3951
   10.7452
   14.8445

  • El MSE para el árbol completo, no podado es alrededor de 6 unidades.

  • El MSE para el árbol podado al nivel 1 es alrededor de 6,3 unidades.

  • El MSE para el árbol podado al nivel 6 (es decir, un muñón) es alrededor de 14,8 unidades.

Examine el ejemplo de validación MSE en cada nivel excluyendo el nivel más alto.

valLoss = loss(Mdl,X(idxVal,:),Y(idxVal),'SubTrees',0:m)
valLoss = 7×1

   32.1205
   31.5035
   32.0541
   30.8183
   26.3535
   30.0137
   38.4695

  • El MSE para el árbol completo, no podado (nivel 0) es alrededor de 32,1 unidades.

  • El MSE para el árbol podado al nivel 4 es alrededor de 26,4 unidades.

  • El MSE para el árbol podado al nivel 5 es alrededor de 30,0 unidades.

  • El MSE para el árbol podado al nivel 6 (es decir, un muñón) es alrededor de 38,5 unidades.

Para equilibrar la complejidad del modelo y el rendimiento fuera de la muestra, considere la posibilidad de poda en el nivel 4.Mdl

pruneMdl = prune(Mdl,'Level',4); view(pruneMdl,'Mode','graph')

Más acerca de

expandir todo

Consulte también

| |