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.

loss

Error de regresión

Descripción

L = loss(tree,tbl,ResponseVarName) Devuelve el error medio cuadrado entre las predicciones de los datos en, en comparación con las respuestas verdaderas.treetbltbl.ResponseVarName

L = loss(tree,x,y) Devuelve el error medio cuadrado entre las predicciones de los datos en, en comparación con las respuestas verdaderas.treexy

L = loss(___,Name,Value) calcula el error en la predicción con opciones adicionales especificadas por uno o más argumentos de par, utilizando cualquiera de las sintaxis anteriores.Name,Value

[L,se,NLeaf,bestlevel] = loss(___) también devuelve el error estándar de la pérdida (), el número de hojas (nodos terminales) en el árbol () y el nivel de poda óptimo para ().seNLeaftreebestlevel

Argumentos de entrada

expandir todo

Árbol de regresión entrenado, especificado como un objeto construido por o un objeto construido porRegressionTreefitrtreeCompactRegressionTree compact.

Valores predictores, especificados como matriz de valores de punto flotante. Cada columna de representa una variable, y cada fila representa una observación.x

Tipos de datos: single | double

Nombre de variable de respuesta, especificado como el nombre de una variable en.tbl

Debe especificar como un vector de caracteres o un escalar de cadena.ResponseVarName Por ejemplo, si la variable de respuesta se almacena como, a continuación, especifique as.ytbl.yResponseVarName'y' De lo contrario, el software trata todas las columnas de, incluidos, como predictores al entrenar el modelo.tbly

Tipos de datos: char | string

Datos de respuesta, especificados como un vector de columna numérico con el mismo número de filas que.x Cada entrada es la respuesta a los datos en la fila correspondiente de.yx

Tipos de datos: single | double

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 el par separado por comas que consta de y un identificador de función para la pérdida, o que representa el error cuadrado medio.'LossFun''mse' Si pasa un identificador de función, llama como:funlossfun

fun(Y,Yfit,W)
  • es el vector de las respuestas verdaderas.Y

  • es el vector de las respuestas pronosticadas.Yfit

  • son los pesos de observación.W Si pasa, los elementos se normalizan para sumar.W1

Todos los vectores tienen el mismo número de filas que.Y

Ejemplo: 'LossFun','mse'

Tipos de datos: function_handle | char | string

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' loss opera en todos los subárboles (es decir, toda la secuencia de poda). Esta especificación equivale a usar.0:max(tree.PruneList)

loss 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 el par separado por comas que consta de uno de los siguientes:'TreeSize'

  • — las devoluciones que corresponden al árbol más pequeño cuyo medio cuadrado de error (MSE) está dentro de un error estándar del MSE mínimo.'se'lossbestlevel

  • — las devoluciones que corresponden al árbol mínimo MSE.'min'lossbestlevel

Ejemplo: 'TreeSize','min'

Ponderaciones de observación, especificadas como el par separado por comas que consta de un vector de valores escalares.'Weights' El software pondera las observaciones en cada fila o con el valor correspondiente en.xtblWeights El tamaño de debe ser igual al número de filas en o.Weightsxtbl

Si especifica los datos de entrada como una tabla, puede ser el nombre de una variable que contenga un vector numérico.tblWeightstbl En este caso, debe especificar como un nombre de variable.Weights Por ejemplo, si el vector de ponderaciones se almacena como, a continuación, especifique as.Wtbl.WWeights'W' De lo contrario, el software trata todas las columnas de, incluidos, como predictores al entrenar el modelo.tblW

Tipos de datos: single | double | char | string

Argumentos de salida

expandir todo

Error de clasificación, devuelto como un vector de la longitud de.Subtrees El error para cada árbol es el error cuadrado medio, ponderado con.Weights Si incluye, refleja la pérdida calculada con.LossFunLLossFun

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

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

El mejor nivel de poda como se define en el par nombre-valor, devuelto como un escalar cuyo valor depende de:TreeSizeTreeSize

  • = — 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.

tree = fitrtree(X,MPG);

Estime el MSE en-muestra.

L = loss(tree,X,MPG)
L = 4.8952 

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);

Ver el árbol de regresión.

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

Encuentre el mejor nivel de poda que produzca la pérdida óptima de la muestra.

[L,se,NLeaf,bestLevel] = loss(Mdl,X,MPG,'Subtrees','all'); bestLevel
bestLevel = 1 

El mejor nivel de poda es el nivel 1.

Podar el árbol al nivel 1.

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

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

Capacidades ampliadas

Consulte también

|