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.

oobPermutedPredictorImportance

Estimaciones de importancia predictora por permutación de observaciones de predictor fuera de bolsa para bosque aleatorio de árboles de regresión

Descripción

ejemplo

Imp = oobPermutedPredictorImportance(Mdl) Devuelve un vector de uso del bosque aleatorio de árboles de regresión. debe ser un objeto de modelo.estimaciones de importancia fuera de bolsa, predictoras por permutaciónMdlMdlRegressionBaggedEnsemble

ejemplo

Imp = oobPermutedPredictorImportance(Mdl,Name,Value) utiliza opciones adicionales especificadas por uno o más argumentos de par.Name,Value Por ejemplo, puede acelerar el cálculo mediante computación paralela o indicar qué árboles utilizar en la estimación de importancia del predictor.

Argumentos de entrada

expandir todo

Bosque aleatorio de árboles de regresión, especificado como un objeto de modelo creado por.RegressionBaggedEnsemblefitrensemble

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

Índices de los alumnos a utilizar en la estimación de importancia predictora, especificado como el par separado por comas que consta de y un vector numérico de enteros positivos.'Learners' Los valores deben ser como máximo.Mdl.NumTrained Cuando oobPermutedPredictorImportance estima la importancia del predictor, incluye a los estudiantes en Mdl.Trained(learners) solamente, donde learners es el valor de.'Learners'

Ejemplo: 'Learners',[1:2:Mdl.NumTrained]

Opciones de computación paralela, especificadas como el par separado por comas que consta de una matriz de estructura devuelta por. requiere una licencia.'Options'statset'Options'Parallel Computing Toolbox™

oobPermutedPredictorImportance utiliza únicamente el campo. invoca un grupo de trabajadores.'UseParallel'statset('UseParallel',true)

Ejemplo: 'Options',statset('UseParallel',true)

Argumentos de salida

expandir todo

, devuelto como un vector de 1 por numérico. es el número de variables predictoras en los datos de entrenamiento ().Estimaciones de importancia fuera de bolsa, predictoras por permutaciónppsize(Mdl.X,2) Imp(j) es la importancia predictora del predictor Mdl.PredictorNames(j).

Ejemplos

expandir todo

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

Puede entrenar un bosque aleatorio de 500 árboles de regresión utilizando todo el conjunto de datos.

Mdl = fitrensemble(X,'MPG','Method','Bag','NumLearningCycles',500); 

utiliza un objeto de árbol de plantilla predeterminado como un factor débil cuando es.fitrensembletemplateTree()'Method''Bag' En este ejemplo, para la reproducibilidad, especifique Cuándo crea un objeto de plantilla de árbol y, a continuación, utilice el objeto como un factor débil.'Reproducible',true

rng('default') % For reproducibility t = templateTree('Reproducible',true); % For reproducibiliy of random predictor selections Mdl = fitrensemble(X,'MPG','Method','Bag','NumLearningCycles',50,'Learners',t);

es un modelo.MdlRegressionBaggedEnsemble

Estime las medidas de importancia predictora mediante el permuting de observaciones fuera de bolsa. Compare las estimaciones utilizando un gráfico de barras.

imp = oobPermutedPredictorImportance(Mdl);  figure; bar(imp); title('Out-of-Bag Permuted Predictor Importance Estimates'); ylabel('Estimates'); xlabel('Predictors'); h = gca; h.XTickLabel = Mdl.PredictorNames; h.XTickLabelRotation = 45; h.TickLabelInterpreter = 'none';

es un vector 1-por-7 de estimaciones de importancia predictora.imp Los valores más grandes indican los predictores que tienen una mayor influencia en las predicciones. En este caso, es el predictor más importante, seguido de.WeightModel_Year

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

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 500 á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. Para reproducir selecciones de predictor aleatorias, establezca la semilla del generador de números aleatorios utilizando y especificando.rng'Reproducible',true

rng('default'); % For reproducibility t = templateTree('PredictorSelection','curvature','Surrogate','on', ...     'Reproducible',true); % For reproducibility of random predictor selections Mdl = fitrensemble(X,'MPG','Method','bag','NumLearningCycles',500, ...     'Learners',t);

Estime las medidas de importancia predictora mediante el permuting de observaciones fuera de bolsa. Realizar cálculos en paralelo.

options = statset('UseParallel',true); imp = oobPermutedPredictorImportance(Mdl,'Options',options);
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6). 

Compare las estimaciones utilizando un gráfico de barras.

figure; bar(imp); title('Out-of-Bag Permuted Predictor Importance Estimates'); ylabel('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_YearCylinders Compare estos resultados con los resultados en.Estimar la importancia de los predictores

Más acerca de

expandir todo

Sugerencias

Al cultivar un bosque aleatorio usando:fitrensemble

  • El carrito estándar tiende a seleccionar predictores divididos que contienen muchos valores distintos, por ejemplo, variables continuas, sobre aquellos que contienen pocos valores distintos, por ejemplo, variables categóricas.[3] Si el conjunto de datos de predictor es heterogéneo, o si hay predictores que tienen relativamente menos valores distintos que otras variables, considere la posibilidad de especificar la curvatura o la prueba de interacción.

  • Los árboles cultivados con CART estándar no son sensibles a las interacciones variables predictoras. Además, estos árboles tienen menos probabilidades de identificar variables importantes en presencia de muchos predictores irrelevantes que la aplicación de la prueba de interacción. Por lo tanto, para tener en cuenta las interacciones predictoras e identificar las variables de importancia en presencia de muchas variables irrelevantes, especifique la prueba de interacción.[2]

  • Si los datos de entrenamiento incluyen muchos predictores y desea analizar la importancia del predictor, a continuación, especifique la función como para los estudiantes de árbol del conjunto.'NumVariablesToSample'templateTree'all' De lo contrario, el software podría no seleccionar algunos predictores, subestimar su importancia.

Para obtener más información, consulte y.templateTreeElija la técnica dividir predictor selección

Referencias

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

[2] Loh, W.Y. “Regression Trees with Unbiased Variable Selection and Interaction Detection.” Statistica Sinica, Vol. 12, 2002, pp. 361–386.

[3] Loh, W.Y. and Y.S. Shih. “Split Selection Methods for Classification Trees.” Statistica Sinica, Vol. 7, 1997, pp. 815–840.

Capacidades ampliadas

Introducido en R2016b