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.

TreeBagger clase

Bolsa de árboles de decisión

Descripción

bolsas un conjunto de árboles de decisión para la clasificación o la regresión.TreeBagger Bagging significa agregación de bootstrap. Cada árbol en el conjunto se cultiva en una réplica de arranque dibujado de forma independiente de los datos de entrada. Las observaciones no incluidas en esta réplica son "fuera de bolsa" para este árbol.

confía en el y la funcionalidad para el cultivo de árboles individuales.TreeBaggerClassificationTreeRegressionTree En particular, y acepta el número de entidades seleccionadas aleatoriamente para cada división de decisión como un argumento de entrada opcional.ClassificationTreeRegressionTree Es decir, implementa el algoritmo de bosque aleatorio.TreeBagger[1]

Para los problemas de regresión, admite la regresión media y cuantil (es decir, el bosque de regresión de cuantil).TreeBagger[2]

  • Para predecir las respuestas de la media o estimar el error medio cuadrado dado los datos, pase un modelo y los datos aTreeBagger predict O errorRespectivamente. Para realizar operaciones similares para observaciones fuera de bolsa, utilice oobPredict O oobError.

  • Para estimar los cuantiles de la distribución de respuesta o el error cuantil dado los datos, pase un modelo y los datos aTreeBagger quantilePredict O quantileErrorRespectivamente. Para realizar operaciones similares para observaciones fuera de bolsa, utilice oobQuantilePredict O oobError.

Construcción

TreeBaggerCrear bolsa de árboles de decisión

Métodos

appendAñada nuevos árboles al conjunto
compactConjunto compacto de árboles de decisión
errorError (probabilidad de clasificación errónea o MSE)
fillproxMatriz de proximidad para los datos de entrenamiento
growTreesEntrena árboles adicionales y añádela al conjunto
marginMargen de clasificación
mdsproxLa escala multidimensional de la matriz de proximidad
meanMarginEl margen de clasificación medio
oobErrorError fuera de la bolsa
oobMarginLos márgenes fuera de bolsa
oobMeanMarginLos márgenes de la media fuera de bolsa
oobPredictLas predicciones del Ensemble para las observaciones fuera de bolsa
oobQuantileErrorPérdida de cuantil fuera de bolsa de la bolsa de árboles de regresión
oobQuantilePredictLas predicciones de cuantil para las observaciones fuera de bolsa de la bolsa de árboles de regresión
predictPredecir las respuestas usando un conjunto de árboles de decisión en bolsas
quantileErrorPérdida de cuantil usando bolsa de árboles de regresión
quantilePredictPredecir el cuantil de respuesta usando una bolsa de árboles de regresión

Propiedades

ClassNames

Matriz de celdas que contiene los nombres de clase para la variable de respuesta.Y Esta propiedad está vacía para los árboles de regresión.

ComputeOOBPrediction

Una marca lógica que especifica si se deben calcular las predicciones fuera de bolsa para las observaciones de entrenamiento. El valor predeterminado es.false

Si esta marca es, las siguientes propiedades están disponibles:true

  • OOBIndices

  • OOBInstanceWeight

Si esta marca es, se pueden llamar a los siguientes métodos:true

  • oobError

  • oobMargin

  • oobMeanMargin

ComputeOOBPredictorImportance

Una marca lógica que especifica si se deben calcular las estimaciones fuera de bolsa de importancia variable. El valor predeterminado es.false Si esta bandera es, entonces es cierto también.trueComputeOOBPrediction

Si esta marca es, las siguientes propiedades están disponibles:true

  • OOBPermutedPredictorDeltaError

  • OOBPermutedPredictorDeltaMeanMargin

  • OOBPermutedPredictorCountRaiseMargin

Cost

Matriz cuadrada, donde es el costo de clasificar un punto en la clase si su clase verdadera es (es decir, las filas corresponden a la clase verdadera y las columnas corresponden a la clase pronosticada).Cost(i,j)ji El orden de las filas y columnas corresponde al orden de las clases en.CostoClassNames El número de filas y columnas en es el número de clases únicas en la respuesta.Costo

Esta propiedad es:

  • de solo lectura

  • Empty () para conjuntos de árboles de regresión[]

DefaultYfit

Valor predeterminado devuelto por predict Y oobPredict. La propiedad controla qué valor pronosticado se devuelve cuando no es posible ninguna predicción.DefaultYfit Por ejemplo, cuando necesita predecir para una observación que es en-bolsa para todos los árboles en el conjunto.oobPredict

  • Para la clasificación, puede establecer esta propiedad en cualquiera o.'''MostPopular' Si elige (valor predeterminado), el valor de la propiedad se convierte en el nombre de la clase más probable en los datos de entrenamiento.'MostPopular' Si usted elige, las observaciones en el bolso se excluyen de la computación del error y del margen fuera de la bolsa.''

  • Para la regresión, puede establecer esta propiedad en cualquier escalar numérico. El valor predeterminado es la media de la respuesta para los datos de entrenamiento. Si establece esta propiedad en, las observaciones in-bag se excluyen del cálculo del margen y el error fuera de bolsa.NaN

DeltaCriterionDecisionSplit

Una matriz numérica de tamaño 1-por-de los cambios en el criterio de división se suman sobre las divisiones en cada variable, promediada a través de todo el conjunto de árboles cultivados.Nvars

InBagFraction

Fracción de observaciones que se seleccionan aleatoriamente con reemplazo para cada réplica de arranque. El tamaño de cada réplica es ×, donde es el número de observaciones en el conjunto de entrenamiento.NobsInBagFractionNobs El valor predeterminado es 1.

MergeLeaves

Una marca lógica que especifica si las hojas del árbol de decisión con el mismo elemento primario se fusionan para las divisiones que no disminuyen el riesgo total. El valor predeterminado es.false

Method

Método utilizado por los árboles. Los valores posibles son para conjuntos de clasificación y para conjuntos de regresión.'classification''regression'

MinLeafSize

Número mínimo de observaciones por hoja de árbol. De forma predeterminada, es 1 para la clasificación y 5 para la regresión.MinLeafSize Para el entrenamiento de árbol de decisión, el valor se establece igual a.MinParent2*MinLeafSize

NumTrees

Valor escalar igual al número de árboles de decisión en el conjunto.

NumPredictorSplit

Una matriz numérica de tamaño 1-por-, donde cada elemento da un número de divisiones en este predictor sumó a todos los árboles.Nvars

NumPredictorsToSample

Número de variables de predictor o de entidad que se seleccionen aleatoriamente para cada división de decisión. De forma predeterminada, es igual a la raíz cuadrada del número total de variables para la clasificación, y un tercio del número total de variables para la regresión.NumPredictorsToSample

OOBIndices

Matriz lógica de tamaño por-, donde es el número de observaciones en los datos de entrenamiento y es el número de árboles en el conjunto.NobsNumTreesNobsNumTrees Un valor para el elemento (,) indica que la observación está fuera de bolsa para el árbol.trueijij En otras palabras, no se seleccionó la observación para los datos de entrenamiento utilizados para cultivar árboles.ij

OOBInstanceWeight

Matriz numérica de tamaño por 1 que contiene el número de árboles utilizados para calcular la respuesta fuera de bolsa para cada observación. es el número de observaciones en los datos de entrenamiento utilizados para crear el conjunto.NobsNobs

OOBPermutedPredictorCountRaiseMargin

Una matriz numérica de tamaño 1 por contiene una medida de importancia variable para cada variable predictora (característica).Nvars Para cualquier variable, la medida es la diferencia entre el número de márgenes elevados y el número de márgenes bajos si los valores de esa variable se permutan a través de las observaciones fuera de bolsa. Esta medida se calcula para cada árbol, luego promediada sobre todo el conjunto y dividida por la desviación estándar sobre todo el conjunto. Esta propiedad está vacía para los árboles de regresión.

OOBPermutedPredictorDeltaError

Una matriz numérica de tamaño 1 por contiene una medida de importancia para cada variable predictora (característica).Nvars Para cualquier variable, la medida es el aumento en el error de predicción si los valores de esa variable se permutan a través de las observaciones fuera de bolsa. Esta medida se calcula para cada árbol, luego promediada sobre todo el conjunto y dividida por la desviación estándar sobre todo el conjunto.

OOBPermutedPredictorDeltaMeanMargin

Una matriz numérica de tamaño 1 por contiene una medida de importancia para cada variable predictora (característica).Nvars Para cualquier variable, la medida es la disminución en el margen de clasificación si los valores de esa variable se permutan a través de las observaciones fuera de bolsa. Esta medida se calcula para cada árbol, luego promediada sobre todo el conjunto y dividida por la desviación estándar sobre todo el conjunto. Esta propiedad está vacía para los árboles de regresión.

OutlierMeasure

Una matriz numérica de tamaño por 1, donde es el número de observaciones en los datos de entrenamiento, que contiene medidas de valor atípico para cada observación.NobsNobs

Prior

Vector numérico de probabilidades previas para cada clase. El orden de los elementos corresponde al orden de las clases en.PriorClassNames

Esta propiedad es:

  • de solo lectura

  • Empty () para conjuntos de árboles de regresión[]

Proximity

Una matriz numérica de tamaño por-, donde está el número de observaciones en los datos de entrenamiento, que contiene medidas de la proximidad entre las observaciones.NobsNobsNobs Para cualquier dos observaciones, su proximidad se define como la fracción de árboles para la cual estas observaciones aterrizan en la misma hoja. Se trata de una matriz simétrica con 1s en los elementos diagonales y fuera de la diagonal que van de 0 a 1.

Prune

La propiedad es true si los árboles de decisión se podan y false si no lo son.Prune No se recomienda la poda de árboles de decisión para conjuntos. El valor predeterminado es false.

SampleWithReplacement

Indicador lógico que especifica si se muestrean los datos para cada árbol de decisión con sustitución. Esta propiedad es si los datos de muestras con reemplazo y de otro modo.trueTreeBaggerfalse El valor predeterminado es.true

TreeArguments

Matriz de argumentos para o.fitctreefitrtree Estos argumentos se utilizan cuando se crecen árboles nuevos para el conjunto.TreeBagger

Trees

Una matriz de celdas de tamaño por 1 que contiene los árboles en el conjunto.NumTrees

SurrogateAssociation

Una matriz de tamaño-por-con medidas predictivas de asociación variable, promediada en todo el conjunto de árboles cultivados.NvarsNvars Si ha crecido la configuración del conjunto a, esta matriz para cada árbol se rellena con medidas predictivas de asociación promediada sobre las divisiones sustitutas.'surrogate''on' Si ha crecido el ajuste de conjunto a (por defecto), es diagonal.'surrogate''off'SurrogateAssociation

PredictorNames

Matriz de celdas que contiene los nombres de las variables predictoras (entidades). toma estos nombres del parámetro opcional.TreeBagger'names' Los nombres predeterminados son,, etc.'x1''x2'

W

Vector numérico de pesos de longitud, donde está el número de observaciones (filas) en los datos de entrenamiento. utiliza estos pesos para cultivar cada árbol de decisión en el conjunto.NobsNobsTreeBagger El valor predeterminado es.Wones(Nobs,1)

X

Una tabla o matriz numérica de size-by-, donde es el número de observaciones (filas) y es el número de variables (columnas) en los datos de entrenamiento.NobsNvarsNobsNvars Si entrena el conjunto utilizando una tabla de valores predictores, entonces es una tabla.X Si entrena el conjunto usando una matriz de valores predictores, entonces es una matriz.X Esta propiedad contiene los valores de predictor (o característica).

Y

Una matriz de tamaño de datos de respuesta.Nobs Elementos de corresponden a las filas de.YX Para la clasificación, es el conjunto de etiquetas de clase verdaderas.Y Las etiquetas pueden ser cualquiera, es decir, un vector numérico o lógico, una matriz de caracteres, una matriz de cadenas, una matriz de vectores de caracteres o un vector categórico. convierte las etiquetas en una matriz de celdas de vectores de caracteres para la clasificación.variable de agrupaciónTreeBagger Para la regresión, es un vector numérico.Y

Ejemplos

contraer todo

Cargue el conjunto de datos de iris de Fisher.

load fisheriris

Entrena un conjunto de árboles de clasificación en bolsas usando todo el conjunto de datos. Especifique los alumnos débiles.50 Almacene Qué observaciones están fuera de bolsa para cada árbol.

rng(1); % For reproducibility Mdl = TreeBagger(50,meas,species,'OOBPrediction','On',...     'Method','classification')
Mdl =    TreeBagger Ensemble with 50 bagged decision trees:                     Training X:              [150x4]                     Training Y:              [150x1]                         Method:       classification                  NumPredictors:                    4          NumPredictorsToSample:                    2                    MinLeafSize:                    1                  InBagFraction:                    1          SampleWithReplacement:                    1           ComputeOOBPrediction:                    1  ComputeOOBPredictorImportance:                    0                      Proximity:                   []                     ClassNames:        'setosa'    'versicolor'     'virginica'    Properties, Methods  

es un conjunto.MdlTreeBagger

almacena un vector de celda 50-by-1 de los árboles de clasificación entrenados (objetos del modelo) que componen el conjunto.Mdl.TreesCompactClassificationTree

Trace un gráfico del primer árbol de clasificación entrenado.

view(Mdl.Trees{1},'Mode','graph')

Por defecto, crece árboles profundos.TreeBagger

almacena los índices fuera de bolsa como una matriz de valores lógicos.Mdl.OOBIndices

Trace el error fuera de bolsa sobre el número de árboles de clasificación cultivados.

figure; oobErrorBaggedEnsemble = oobError(Mdl); plot(oobErrorBaggedEnsemble) xlabel 'Number of grown trees'; ylabel 'Out-of-bag classification error';

El error fuera de bolsa disminuye con el número de árboles cultivados.

Para etiquetar las observaciones fuera de bolsa, pase a.MdloobPredict

Cargue el conjunto de datos.carsmall Considere un modelo que predice la economía de combustible de un automóvil debido al desplazamiento del motor.

load carsmall

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,Displacement,MPG,'Method','regression');

es un conjunto.MdlTreeBagger

Utilizando una bolsa entrenada de árboles de regresión, puede estimar las respuestas de la media condicional o realizar la regresión cuantil para predecir cuantiles condicionales.

Para diez desplazamientos de motor igualmente espaciados entre el desplazamiento mínimo y máximo en la muestra, predecir las respuestas medias condicionales y los cuartes condicionales.

predX = linspace(min(Displacement),max(Displacement),10)'; mpgMean = predict(Mdl,predX); mpgQuartiles = quantilePredict(Mdl,predX,'Quantile',[0.25,0.5,0.75]);

Graficar las observaciones, y las respuestas media estimadas y cucules en la misma figura.

figure; plot(Displacement,MPG,'o'); hold on plot(predX,mpgMean); plot(predX,mpgQuartiles); ylabel('Fuel economy'); xlabel('Engine displacement'); legend('Data','Mean Response','First quartile','Median','Third quartile');

Cargue el conjunto de datos.carsmall Considere un modelo que predice la economía de combustible media de un automóvil debido a su aceleración, número de cilindros, cilindrada del motor, potencia, fabricante, año del modelo y peso. Considere, y como variables categóricas.CylindersMfgModel_Year

load carsmall Cylinders = categorical(Cylinders); Mfg = categorical(cellstr(Mfg)); Model_Year = categorical(Model_Year); X = table(Acceleration,Cylinders,Displacement,Horsepower,Mfg,...     Model_Year,Weight,MPG); rng('default'); % For reproducibility

Mostrar el número de categorías representadas en las variables categóricas.

numCylinders = numel(categories(Cylinders))
numCylinders = 3 
numMfg = numel(categories(Mfg))
numMfg = 28 
numModelYear = numel(categories(Model_Year))
numModelYear = 3 

Debido a que hay 3 categorías sólo en y, el estándar CART, algoritmo de división de predictor prefiere dividir un predictor continuo sobre estas dos variables.CylindersModel_Year

Entrenar un bosque aleatorio de 200 árboles de regresión utilizando todo el conjunto de datos. Para cultivar árboles no sesgados, especifique el uso de la prueba de curvatura para dividir los predictores. Dado que faltan valores en los datos, especifique el uso de divisiones sustitutas. Almacene la información fuera de la bolsa para estimar la importancia del predictor.

Mdl = TreeBagger(200,X,'MPG','Method','regression','Surrogate','on',...     'PredictorSelection','curvature','OOBPredictorImportance','on');

almacena estimaciones de importancia predictoras en la propiedad.TreeBaggerOOBPermutedPredictorDeltaError Compare las estimaciones utilizando un gráfico de barras.

imp = Mdl.OOBPermutedPredictorDeltaError;  figure; bar(imp); title('Curvature Test'); ylabel('Predictor importance estimates'); xlabel('Predictors'); h = gca; h.XTickLabel = Mdl.PredictorNames; h.XTickLabelRotation = 45; h.TickLabelInterpreter = 'none';

En este caso, es el predictor más importante, seguido de.Model_YearWeight

Compare las estimaciones de importancia del predictor calculadas a partir de un bosque aleatorio que cultiva árboles utilizando CART estándar.imp

MdlCART = TreeBagger(200,X,'MPG','Method','regression','Surrogate','on',...     'OOBPredictorImportance','on');  impCART = MdlCART.OOBPermutedPredictorDeltaError;  figure; bar(impCART); title('Standard CART'); ylabel('Predictor importance estimates'); xlabel('Predictors'); h = gca; h.XTickLabel = Mdl.PredictorNames; h.XTickLabelRotation = 45; h.TickLabelInterpreter = 'none';

En este caso, un predictor continuo, es el más importante.Weight Los siguientes dos predictores de mayor importancia son seguidos estrechamente por, que es un predictor continuo.Model_YearHorsepower

Semántica de copia

Valor. Para obtener información sobre cómo esto afecta al uso de la clase, consulte la documentación de programación orientada a objetos.Comparando las clases de identificador y valor (MATLAB)MATLAB®

Sugerencias

Para un objeto de modelo, la propiedad almacena un vector de celda o objetos de modelo.TreeBaggerBTreesB.NumTreesCompactClassificationTreeCompactRegressionTree Para una visualización textual o gráfica del árbol t en el vector de celda, escriba

view(B.Trees{t})

Funcionalidad alternativa

ofrece tres objetos para embolsado y bosque aleatorio:Statistics and Machine Learning Toolbox™

Para obtener más información sobre las diferencias entre los conjuntos (y) en bolsas (y), consulte.TreeBaggerClassificationBaggedEnsembleRegressionBaggedEnsembleLa comparación y los conjuntos en bolsasTreeBagger

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.