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.

quantileError

Clase: TreeBagger

Pérdida de cuantil usando bolsa de árboles de regresión

Descripción

ejemplo

err = quantileError(Mdl,X) Devuelve la mitad de la desviación absoluta media (MAD) comparando las respuestas verdaderas de la tabla con las medianas pronosticadas resultantes de la aplicación de la bolsa de árboles de regresión a las observaciones de los Datos predictores.XMdlX

  • debe ser un objeto de modelo.MdlTreeBagger

  • El nombre de la variable de respuesta en debe tener el mismo nombre que la variable de respuesta en la tabla que contiene los datos de entrenamiento.X

ejemplo

err = quantileError(Mdl,X,ResponseVarName) utiliza la respuesta verdadera y las variables predictoras contenidas en la tabla. es el nombre de la variable de respuesta y contiene los nombres de las variables predictoras.XResponseVarNameMdl.PredictorNames

ejemplo

err = quantileError(Mdl,X,Y) utiliza los Datos predictores de la tabla o matriz y los datos de respuesta del vector.XY

ejemplo

err = quantileError(___,Name,Value) utiliza cualquiera de las sintaxis anteriores y opciones adicionales especificadas por uno o más argumentos de par.Name,Value Por ejemplo, especifique las probabilidades de cuantil, el tipo de error o los árboles que se incluirán en la estimación de cuantil-regresión-error.

Argumentos de entrada

expandir todo

Bolsa de árboles de regresión, especificada como un objeto de modelo creado porTreeBagger TreeBagger. El valor de debe ser.Mdl.MethodRegresión

Datos de ejemplo utilizados para estimar cuantiles, especificados como una matriz o tabla numérica.

Cada fila de corresponde a una observación, y cada columna corresponde a una variable.X Si especifica, el número de filas en debe ser igual a la longitud de.YXY

  • Para una matriz numérica:

    • Las variables que componen las columnas de deben tener el mismo orden que las variables predictoras que entrenaron (almacenadas en).XMdlMdl.PredictorNames

    • Si ha entrenado usando una tabla (por ejemplo,), entonces puede ser una matriz numérica si contiene todas las variables predictoras numéricas.MdlTblXTbl Si contiene variables predictoras heterogéneas (por ejemplo, tipos de datos numéricos y categóricos),Tbl quantileError produce un error.

    • Especifique para las respuestas verdaderas.Y

  • Para una tabla:

    • quantileError no admite variables de varias columnas ni matrices de celdas que no sean matrices de celdas de vectores de caracteres.

    • Si ha entrenado usando una tabla (por ejemplo,), entonces todas las variables predictoras en deben tener los mismos nombres de variables y tipos de datos que aquellas que entrenaron (almacenadas en).MdlTblXMdlMdl.PredictorNames Sin embargo, el orden de columna de no necesita corresponder al orden de columna de. y puede contener variables adicionales (variables de respuesta, pesos de observación, etc.).XTblTblX

    • Si entrenó con una matriz numérica, los nombres de los predictores y los nombres de las variables predictoras correspondientes deben ser los mismos.MdlMdl.PredictorNamesX Para especificar nombres de predictores durante el entrenamiento, vea el argumento de par nombre-valor de.PredictorNamesTreeBagger Todas las variables predictoras en deben ser vectores numéricos. puede contener variables adicionales (variables de respuesta, pesos de observación, etc.).XX

    • Si contiene la variable de respuesta:X

      • Si la variable de respuesta tiene el mismo nombre que la variable de respuesta que entrenó, no tiene que proporcionar el nombre de la variable de respuesta o el vector de respuestas verdaderas.Mdl quantileError utiliza esa variable para las respuestas verdaderas de forma predeterminada.

      • Puede especificar o para las respuestas verdaderas.ResponseVarNameY

Tipos de datos: table | double | single

Nombre de variable de respuesta, especificado como un vector de caracteres o escalar de cadena. debe ser el nombre de la variable de respuesta en la tabla de datos de ejemplo.ResponseVarNameX

Si la tabla contiene la variable de respuesta y tiene el mismo nombre que la variable de respuesta utilizada para entrenar, no tiene que especificar.XMdlResponseVarName quantileError utiliza esa variable para las respuestas verdaderas de forma predeterminada.

Tipos de datos: char | string

Respuestas verdaderas, especificadas como un vector numérico. El número de filas en debe ser igual a la longitud de.XY

Tipos de datos: double | single

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

Tipo de error de conjunto, especificado como el par separado por comas que consta de y un valor en esta tabla.'Mode' Supongo tau es el valor de.Quantile

ValorDescripción
'cumulative'

es un-por-errMdl.NumTreesnumel(tau) matriz numérica de errores de regresión de cuantil acumulativos. err(j,k) es el tau(k) error de regresión cuantil usando los alumnos en Mdl.Trees(1:j) solamente.

'ensemble'

se encuentra a 1 porerrnumel(tau) Vector numérico de los errores de regresión de cuantil acumulados para todo el conjunto. err(k) es el tau(k) error de regresión del cuantil del conjunto.

'individual'

es un-por-errMdl.NumTreesnumel(tau) matriz numérica de errores de regresión cuantil de alumnos individuales. err(j,k) es el tau(k) error de regresión cuantil utilizando el alumno en Mdl.Trees(j) solamente.

Para y, si incluye menos árboles en la estimación de cuantil utilizando o, a continuación, el número de filas en disminuciones de.'cumulative''individual'TreesUseInstanceForTreeerrMdl.NumTrees

Ejemplo: 'Mode','cumulative'

Ponderaciones de observación, especificadas como el par separado por comas que consta de un vector numérico de valores positivos con una longitud igual a.'Weights'size(X,1) quantileError utiliza para calcular el promedio ponderado de las desviaciones al estimar el error de regresión cuantil.Weights

De forma predeterminada, quantileError atribuye un peso de cada observación, lo que produce un promedio no ponderado de las desviaciones.1

Probabilidad cuantil, especificada como el par separado por comas que consta de y un vector numérico que contiene valores en el intervalo [0,1].'Quantile' Para cada elemento de,Quantile quantileError Devuelve los errores de regresión de cuantil correspondientes para todas las probabilidades.Quantile

Ejemplo: 'Quantile',[0 0.25 0.5 0.75 1]

Tipos de datos: single | double

Índices de árboles que se utilizarán en la estimación de respuesta, especificados como el par separado por comas consistente en un vector numérico de enteros positivos.'Trees''all' Los índices corresponden a las celdas de; cada celda contiene un árbol en el conjunto.Mdl.Trees El valor máximo de debe ser menor o igual que el número de árboles en el conjunto ().TreesMdl.NumTrees

Para'all' quantileError utiliza todos los árboles del conjunto (es decir, los índices).1:Mdl.NumTrees

Los valores que no sean los predeterminados pueden afectar al número de filas.err

Ejemplo: 'Trees',[1 10 Mdl.NumTrees]

Tipos de datos: char | string | single | double

Ponderaciones para atribuir a las respuestas de árboles individuales, especificadas como el par separado por comas que consta de un vector numérico de'TreeWeights' numel(trees) valores no negativos. trees es el valor de.Trees

Si especifica,'Mode','individual' quantileError Ignora.TreeWeights

Tipos de datos: single | double

Indicadores que especifican los árboles que se utilizarán para realizar predicciones para cada observación, especificadas como el par separado por comas que consta de una matriz y una por lógica. es el número de observaciones (filas) en.'UseInstanceForTree'nMdl.TreesnX Las filas corresponden a las observaciones y columnas corresponden a los estudiantes en. indica utilizar todos los árboles para todas las observaciones al estimar los cuantiles.UseInstanceForTreeMdl.Trees'all'

Si UseInstanceForTree(j,k) =, luegotrue quantileError utiliza el árbol en Mdl.Trees(k) Cuando predice la respuesta para la observación X(j,:).

Puede estimar los cuantiles utilizando los datos de respuesta directamente en lugar de utilizar las predicciones del bosque aleatorio especificando una fila compuesta enteramente de valores.Mdl.Yfalse Por ejemplo, para estimar el cuantil para la observación j utilizando los datos de respuesta y para utilizar las predicciones del bosque aleatorio para todas las demás observaciones, especifique esta matriz:

UseInstanceForTree = true(size(Mdl.X,2),Mdl.NumTrees);
UseInstanceForTree(j,:) = false(1,Mdl.NumTrees);

Los valores que no sean los predeterminados pueden afectar al número de filas.err Además, el valor de afecta al valor de.TreesUseInstanceForTree Supongamos que U es el valor de.UseInstanceForTree quantileError ignora las columnas de U correspondiente a los árboles que no se utilizan en la estimación de la especificación de.Trees Es decir quantileError restablece el valor de'UseInstanceForTree' U(:,trees)Dónde trees es el valor de.'Trees'

Tipos de datos: char | string | logical

Argumentos de salida

expandir todo

La mitad de la, devuelta como un escalar numérico oerror de regresión cuantil Tpornumel(tau) Matriz. tau es el valor de.Quantile

T depende de los valores de,,, y.ModeTreesUseInstanceForTreeQuantile Supongamos que especifica 'Trees',trees y se utiliza el valor predeterminado de.'UseInstanceForTree'

  • Porque, es un'Mode','cumulative'err numel(trees)pornumel(tau) matriz numérica. err(j,k) es el tau(k) error de regresión de cuantil acumulativo utilizando los alumnos en Mdl.Trees(trees(1:j)).

  • Porque, es a-por-'Mode','ensemble'err1numel(tau) Vector numérico. err(k) es el tau(k) error de regresión de cuantil acumulativo utilizando los alumnos en Mdl.Trees(trees).

  • Porque, es un'Mode','individual'err numel(trees)pornumel(tau) matriz numérica. err(j,k) es el tau(k) error de regresión cuantil utilizando el alumno en Mdl.Trees(trees(j)).

Ejemplos

expandir todo

Cargue el conjunto de datos.carsmall Considere un modelo que predice la economía de combustible de un automóvil debido a su cilindrada, peso y número de cilindros. Considere una variable categórica.Cylinders

load carsmall Cylinders = categorical(Cylinders); X = table(Displacement,Weight,Cylinders,MPG);

Entrena un conjunto de árboles de regresión en bolsas usando todo el conjunto de datos. Especifique 100 estudiantes débiles.

rng(1); % For reproducibility Mdl = TreeBagger(100,X,'MPG','Method','regression');

es un conjunto.MdlTreeBagger

Realizar la regresión cuantil, y estimar el MAD de todo el conjunto utilizando las medians condicionales pronosticadas.

err = quantileError(Mdl,X)
err = 1.2586 

Dado que es una tabla que contiene la respuesta y los nombres de variables proporcionales, no tiene que especificar el nombre o los datos de la variable de respuesta.X Sin embargo, puede especificar la respuesta mediante esta sintaxis.

err = quantileError(Mdl,X,'MPG')
err = 1.2586 

Cargue el conjunto de datos.carsmall Considere un modelo que predice la economía de combustible de un automóvil debido a su cilindrada, peso y número de cilindros.

load carsmall X = table(Displacement,Weight,Cylinders,MPG);

Divida los datos aleatoriamente en dos conjuntos: 75% de entrenamiento y 25% de pruebas. Extraiga los índices de subconjunto.

rng(1); % For reproducibility  cvp = cvpartition(size(X,1),'Holdout',0.25); idxTrn = training(cvp); idxTest = test(cvp);

Entrena un conjunto de árboles de regresión en bolsas usando el conjunto de entrenamiento. Especifique 250 estudiantes débiles.

Mdl = TreeBagger(250,X(idxTrn,:),'MPG','Method','regression');

Estime los errores de regresión de cuantil 0,25, 0,5 y 0,75 acumulados para el conjunto de pruebas. Pase los datos del predictor como una matriz numérica y los datos de respuesta en como un vector.

err = quantileError(Mdl,X{idxTest,1:3},MPG(idxTest),'Quantile',[0.25 0.5 0.75],...     'Mode','cumulative');

es una matriz de 250 por 3 de errores de regresión de cuantil acumulativos.err Las columnas corresponden a las probabilidades de cuantil y las filas corresponden a los árboles del conjunto. Los errores son acumulativos, por lo que incorporan predicciones agregadas de árboles anteriores. Aunque, fue entrenado usando una tabla, si todas las variables predictoras en la tabla son numéricas, entonces usted puede suministrar una matriz de Datos predictores en su lugar.Mdl

Trace los errores de cuantil acumulados en el mismo trazado.

figure; plot(err); legend('0.25 quantile error','0.5 quantile error','0.75 quantile error'); ylabel('Quantile error'); xlabel('Tree index'); title('Cumulative Quantile Regression Error')

La formación que utiliza alrededor de 60 árboles parece ser suficiente para los primeros dos cuartil, pero el tercer cuartículo requiere alrededor de 150 árboles.

Más acerca de

expandir todo

Sugerencias

  • Para ajustar el número de árboles en el conjunto, establezca y trace los errores de regresión cuantil con respecto a los índices de árbol.'Mode','cumulative' El número máximo de árboles requeridos es el índice de árbol donde el error de regresión cuantil parece nivelar.

  • Para investigar el rendimiento de un modelo cuando la muestra de entrenamiento es pequeña, utilice oobQuantileError en lugar de.

Referencias

[1] Breiman, L. Random Forests. Machine Learning 45, pp. 5–32, 2001.

[2] Meinshausen, N. “Quantile Regression Forests.” Journal of Machine Learning Research, Vol. 7, 2006, pp. 983–999.

Introducido en R2016b