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.

RegressionTree clase

Superclases: CompactRegressionTree

Árbol de regresión

Descripción

Un árbol de decisión con divisiones binarias para la regresión. Un objeto de clase puede predecir las respuestas de los nuevos datos con elRegressionTree predict Método. El objeto contiene los datos utilizados para el entrenamiento, por lo que puede calcular las predicciones de reenvío.

Construcción

Cree un objeto mediante.RegressionTreefitrtree

Propiedades

BinEdges

Aristas de ubicación para los predictores numéricos, especificados como una matriz de celdas de vectores numéricos, donde es el número de predictores.pp Cada vector incluye los bordes de la papelera para un predictor numérico. El elemento en la matriz de celdas para un predictor categórico está vacío porque el software no bin predictores categóricos.

Los predictores numéricos de bins de software solo si especifica el argumento de par nombre-valor como un escalar entero positivo al entrenar un modelo con alumnos de árbol.'NumBins' La propiedad está vacía si el valor está vacío (valor predeterminado).BinEdges'NumBins'

Puede reproducir los datos de predictor en binned utilizando la propiedad del modelo entrenado.XbinnedBinEdgesmdl

X = mdl.X; % Predictor data
Xbinned = zeros(size(X));
edges = mdl.BinEdges;
% Find indices of binned predictors.
idxNumeric = find(~cellfun(@isempty,edges));
if iscolumn(idxNumeric)
    idxNumeric = idxNumeric';
end
for j = idxNumeric 
    x = X(:,j);
    % Convert x to array if x is a table.
    if istable(x) 
        x = table2array(x);
    end
    % Group x into bins by using the discretize function.
    xbinned = discretize(x,[-inf; edges{j}; inf]); 
    Xbinned(:,j) = xbinned;
end
contiene los índices de ubicación, que van desde 1 hasta el número de bins, para los predictores numéricos. valores son 0 para los predictores categóricos.XbinnedXbinned Si contiene s, los valores correspondientes son s.XNaNXbinnedNaN

CategoricalPredictors

Índices predictores categóricos, especificados como un vector de enteros positivos. contiene valores de índice correspondientes a las columnas de los datos del predictor que contienen predictores categóricos.CategoricalPredictors Si ninguno de los predictores es categórico, entonces esta propiedad está vacía ().[]

CategoricalSplits

Matriz de celdas an-by-2, donde es el número de divisiones categóricas en.nntree Cada fila en da los valores izquierdo y derecho para una división categórica.CategoricalSplits Para cada nodo de bifurcación con división categórica basada en una variable predictora categórica, se elige el hijo izquierdo si está en y se elige el secundario correcto si está en.jzzCategoricalSplits(j,1)zCategoricalSplits(j,2) Las divisiones están en el mismo orden que los nodos del árbol. Los nodos de estas divisiones se pueden encontrar ejecutando y seleccionando cortes de arriba a abajo.cuttype'categorical'

Children

Matriz an-by-2 que contiene los números de los nodos secundarios para cada nodo en, donde es el número de nodos.ntreen Los nodos hoja tienen un nodo secundario.0

CutCategories

Matriz de celdas a-by-2 de las categorías utilizadas en las ramas, donde es el número de nodos.ntreen Para cada nodo de rama basado en una variable predictora categórica, se elige el hijo izquierdo si está entre las categorías enumeradas en, y se elige el secundario correcto si está entre los enumerados en.ixxCutCategories{i,1}xCutCategories{i,2} Ambas columnas están vacías para nodos de bifurcación basados en predictores continuos y para nodos hoja.CutCategories

contiene los puntos de corte para cortes y contiene el conjunto de categorías.CutPoint'continuous'CutCategories

CutPoint

Un vector de elemento de los valores utilizados como puntos de corte en, donde es el número de nodos.ntreen Para cada nodo de bifurcación basado en una variable predictora continua, se elige el secundario izquierdo si se elige el secundario correcto si. es para nodos de bifurcación basados en predictores categóricos y para nodos hoja.ixx<CutPoint(i)x>=CutPoint(i)CutPointNaN

CutType

Matriz de celdas de un elemento que indica el tipo de corte en cada nodo, donde está el número de nodos.ntreen Para cada nodo, es:iCutType{i}

  • : Si el corte se define en el formulario para una variable y un punto de corte.'continuous'x < vxv

  • : Si el corte se define por si una variable toma un valor en un conjunto de categorías.'categorical'x

  • — Si es un nodo hoja.''i

contiene los puntos de corte para cortes y contiene el conjunto de categorías.CutPoint'continuous'CutCategories

CutPredictor

Matriz de celdas de un elemento de los nombres de las variables utilizadas para la ramificación en cada nodo, donde está el número de nodos.ntreen Estas variables a veces se conocen como .cut variables Para los nodos hoja, contiene un vector de caracteres vacío.CutPredictor

contiene los puntos de corte para cortes y contiene el conjunto de categorías.CutPoint'continuous'CutCategories

ExpandedPredictorNames

Nombres de predictores ampliados, almacenados como una matriz de vectores de caracteres de celda.

Si el modelo utiliza codificación para variables categóricas, incluye los nombres que describen las variables expandidas.ExpandedPredictorNames De lo contrario, es el mismo que.ExpandedPredictorNamesPredictorNames

HyperparameterOptimizationResults

Descripción de la optimización de validación cruzada de los hiperparámetros, almacenada como un objeto o una tabla de hiperparámetros y valores asociados.BayesianOptimization No vacía cuando el par nombre-valor no está vacío en la creación.OptimizeHyperparameters El valor depende de la configuración del par nombre-valor en la creación:HyperparameterOptimizationOptions

  • (valor predeterminado) — objeto de la clase'bayesopt'BayesianOptimization

  • o — tabla de hiperparámetros utilizados, valores de función objetiva observados (pérdida de validación cruzada) y rango de observaciones de menor (mejor) a mayor (peor)'gridsearch''randomsearch'

IsBranchNode

Vector lógico de un elemento que es para cada nodo de bifurcación y para cada nodo hoja de.nibtruefalsetree

ModelParameters

Objetos que sostienen parámetros de.tree

NumObservations

Número de observaciones en los datos de entrenamiento, un escalar numérico. puede ser menor que el número de filas de datos de entrada cuando faltan valores o respuestas.NumObservationsXXY

NodeError

Un vector de elemento de los errores de los nodos en, donde es el número de nodos. es la probabilidad de clasificación errónea para el nodo.netreene(i)i

NodeMean

Matriz numérica de un elemento con valores de media en cada nodo de, donde es el número de nodos en el árbol.ntreen Cada elemento en es el promedio de los valores verdaderos sobre todas las observaciones en el nodo.NodeMeanY

NodeProbability

Un vector de elemento de las probabilidades de los nodos en, donde es el número de nodos.nptreen La probabilidad de un nodo se calcula como la proporción de observaciones de los datos originales que satisfacen las condiciones del nodo. Esta proporción se ajusta para cualquier probabilidad previa asignada a cada clase.

NodeRisk

Un vector de elemento del riesgo de los nodos en el árbol, donde es el número de nodos.nn El riesgo para cada nodo es el error de nodo ponderado por la probabilidad de nodo.

NodeSize

Un vector de elemento de los tamaños de los nodos en, donde es el número de nodos.nsizestreen El tamaño de un nodo se define como el número de observaciones de los datos utilizados para crear el árbol que satisfacen las condiciones del nodo.

NumNodes

El número de nodos en.ntree

Parent

Un vector de elemento que contiene el número del nodo primario para cada nodo en, donde es el número de nodos.nptreen El elemento primario del nodo raíz es.0

PredictorNames

Matriz de nombres de celdas para las variables predictoras, en el orden en que aparecen.X

PruneAlpha

Vector numérico con un elemento por nivel de poda. Si el nivel de poda oscila entre 0 y, a continuación, tiene + 1 elementos ordenados en orden ascendente. es para el nivel de poda 0 (sin poda), es para el nivel de poda 1, y así sucesivamente.MPruneAlphaMPruneAlpha(1)PruneAlpha(2)

PruneList

Vector numérico de un elemento con los niveles de poda en cada nodo de, donde es el número de nodos.ntreen Los niveles de poda van desde 0 (sin poda) a, donde es la distancia entre la hoja más profunda y el nodo raíz.MM

ResponseName

Un vector de caracteres que especifica el nombre de la variable de respuesta ().Y

ResponseTransform

Identificador de función para transformar los valores de respuesta sin procesar (error cuadrado medio). El identificador de función debe aceptar una matriz de valores de respuesta y devolver una matriz del mismo tamaño. El medio predeterminado, o ninguna transformación.'none'@(x)x

Añadir o cambiar una función utilizando la notación de puntos:ResponseTransform

tree.ResponseTransform = @function

RowsUsed

Vector lógico de un elemento que indica qué filas de los Datos predictores originales () se utilizaron en el ajuste.nX Si el software utiliza todas las filas de, entonces es un array vacío ().XRowsUsed[]

SurrogateCutCategories

Una matriz de celdas de elemento de las categorías utilizadas para el suplente se divide en, donde es el número de nodos en.ntreentree Para cada nodo, es una matriz de celdas.kSurrogateCutCategories{k} La longitud de es igual al número de predictores suplentes encontrados en este nodo.SurrogateCutCategories{k} Cada elemento de es un vector de carácter vacío para un predictor suplente continuo, o es una matriz de celdas de dos elementos con categorías para un predictor suplente categórico.SurrogateCutCategories{k} El primer elemento de esta matriz de celdas de dos elementos enumera las categorías asignadas al secundario izquierdo por esta división suplente y el segundo elemento de esta matriz de celdas de dos elementos enumera las categorías asignadas al secundario correcto por esta división suplente. El orden de las variables de división sustitutas en cada nodo se corresponde con el orden de las variables en.SurrogateCutPredictor La variable de división óptima en este nodo no aparece. Para los nodos no rama (hoja), contiene una celda vacía.SurrogateCutCategories

SurrogateCutFlip

Matriz de celdas de un elemento de las asignaciones de corte numérico que se usa para las divisiones de suplentes, donde está el número de nodos.ntreentree Para cada nodo, es un vector numérico.kSurrogateCutFlip{k} La longitud de es igual al número de predictores suplentes encontrados en este nodo.SurrogateCutFlip{k} Cada elemento de es cero para un predictor suplente categórico o una asignación de corte numérico para un predictor suplente continuo.SurrogateCutFlip{k} La asignación de corte numérico puede ser – 1 o + 1. Para cada división sustituta con un corte numérico basado en una variable predictora continua, se elige el hijo izquierdo siCZ Z < C y la asignación de corte para esta división suplente es + 1, o si Z ≥ C y la asignación de corte para esta división suplente es – 1. Del mismo modo, se elige al niño adecuado si Z ≥ C y la asignación de corte para esta división suplente es + 1, o si Z < C y la asignación de corte para esta división suplente es – 1. El orden de las variables de división sustitutas en cada nodo se corresponde con el orden de las variables en.SurrogateCutPredictor La variable de división óptima en este nodo no aparece. Para los nodos no rama (hoja), contiene una matriz vacía.SurrogateCutFlip

SurrogateCutPoint

Matriz de celdas de un elemento de los valores numéricos utilizados para el suplente se divide en, donde es el número de nodos en.ntreentree Para cada nodo, es un vector numérico.kSurrogateCutPoint{k} La longitud de es igual al número de predictores suplentes encontrados en este nodo.SurrogateCutPoint{k} Cada elemento de es para un predictor suplente categórico, o un corte numérico para un predictor suplente continuo.SurrogateCutPoint{k}NaN Para cada división sustituta con un corte numérico basado en una variable predictora continua, se elige el hijo izquierdo siCZ Z<C y para esta división suplente es + 1, o siSurrogateCutFlip ZC y para esta división suplente es – 1.SurrogateCutFlip Del mismo modo, se elige al niño adecuado si Z ≥ C y para esta división suplente es + 1, o siSurrogateCutFlip Z < C y para esta división suplente es – 1.SurrogateCutFlip El orden de las variables de división sustitutas en cada nodo coincide con el orden de las variables devueltas por.SurrCutPredictor La variable de división óptima en este nodo no aparece. Para los nodos no rama (hoja), contiene una celda vacía.SurrogateCutPoint

SurrogateCutType

Matriz de celdas de un elemento que indica los tipos de divisiones sustitutas en cada nodo, donde se encuentra el número de nodos.ntreentree Para cada nodo, es una matriz de celdas con los tipos de las variables de división sustitutas en este nodo.kSurrogateCutType{k} Las variables se ordenan por la medida predictiva de asociación con el predictor óptimo en el orden descendente, y solo se incluyen las variables con la medida predictiva positiva. El orden de las variables de división sustitutas en cada nodo se corresponde con el orden de las variables en.SurrogateCutPredictor La variable de división óptima en este nodo no aparece. Para los nodos no rama (hoja), contiene una celda vacía.SurrogateCutType Un tipo de división suplente puede ser si el corte se define en el formulario < para una variable y un punto de corte o si el corte se define por si toma un valor en un conjunto de categorías.'continuous'ZVZV'categorical'Z

SurrogateCutPredictor

Matriz de celdas de un elemento de los nombres de las variables utilizadas para las divisiones sustitutas en cada nodo, donde está el número de nodos.ntreentree Cada elemento de es una matriz de celdas con los nombres de las variables de división sustitutas en este nodo.SurrogateCutPredictor Las variables se ordenan por la medida predictiva de asociación con el predictor óptimo en el orden descendente, y solo se incluyen las variables con la medida predictiva positiva. La variable de división óptima en este nodo no aparece. Para los nodos no rama (hoja), contiene una celda vacía.SurrogateCutPredictor

SurrogatePredictorAssociation

Una matriz de celdas de elemento de las medidas predictivas de Asociación para suplentes se divide en, donde es el número de nodos en.ntreentree Para cada nodo, es un vector numérico.kSurrogatePredictorAssociation{k} La longitud de es igual al número de predictores suplentes encontrados en este nodo.SurrogatePredictorAssociation{k} Cada elemento da la medida predictiva de asociación entre la división óptima y esta división sustituta.SurrogatePredictorAssociation{k} El orden de las variables de división sustitutas en cada nodo es el orden de las variables en.SurrogateCutPredictor La variable de división óptima en este nodo no aparece. Para los nodos no rama (hoja), contiene una celda vacía.SurrogatePredictorAssociation

W

La escala, un vector con la longitud, el número de filas en.weightsnX

X

Una matriz o tabla de valores predictores. Cada columna de representa una variable, y cada fila representa una observación.X

Y

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

Métodos

compactÁrbol de regresión compacta
crossvalEl árbol de decisión validado
cvlossError de regresión mediante validación cruzada
pruneProducir secuencia de subárboles mediante la poda
resubLossError de regresión por reenvío
resubPredictPredecir la respuesta de reenvío del árbol

Métodos heredados

lossError de regresión
predictPredecir respuestas usando el árbol de regresión
predictorImportanceLas estimaciones de importancia predictora
surrogateAssociationMedida predictiva media de Asociación para divisiones sustitutas en el árbol de decisión
viewVer árbol

Semántica de copia

Valor. Para saber cómo afectan las clases de valor a las operaciones de copia, consulte.Copiar objetos (MATLAB)

Ejemplos

contraer todo

Cargue los datos de ejemplo.

load carsmall

Construya un árbol de regresión utilizando los datos de ejemplo. La variable de respuesta es millas por galón, MPG.

tree = fitrtree([Weight, Cylinders],MPG,...                 'CategoricalPredictors',2,'MinParentSize',20,...                 'PredictorNames',{'W','C'})
tree =    RegressionTree            PredictorNames: {'W'  'C'}              ResponseName: 'Y'     CategoricalPredictors: 2         ResponseTransform: 'none'           NumObservations: 94     Properties, Methods  

Predecir el kilometraje de coches de 4.000 libras con 4, 6 y 8 cilindros.

MPG4Kpred = predict(tree,[4000 4; 4000 6; 4000 8])
MPG4Kpred = 3×1

   19.2778
   19.2778
   14.3889

Referencias

[1] Breiman, L., J. Friedman, R. Olshen, and C. Stone. Classification and Regression Trees. Boca Raton, FL: CRC Press, 1984.

Capacidades ampliadas

Introducido en R2011a