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 clasificación

Descripción

ejemplo

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

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 clasificación, especificado como un objeto de modelo creado por.ClassificationBaggedEnsemblefitcensemble

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.census1994 Considere un modelo que predice la categoría salarial de una persona dada su edad, clase obrera, nivel educativo, estado marcial, raza, sexo, ganancia y pérdida de capital, y número de horas de trabajo por semana.

load census1994 X = adultdata(:,{'age','workClass','education_num','marital_status','race',...     'sex','capital_gain','capital_loss','hours_per_week','salary'});

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

Mdl = fitcensemble(X,'salary','Method','Bag','NumLearningCycles',50); 

utiliza un objeto de árbol de plantilla predeterminado como un factor débil cuando es.fitcensembletemplateTree()'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 = fitcensemble(X,'salary','Method','Bag','NumLearningCycles',50,'Learners',t);

es un modelo.MdlClassificationBaggedEnsemble

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 de 1 por 9 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.marital_statuscapital_gain

Cargue el conjunto de datos.census1994 Considere un modelo que predice la categoría salarial de una persona dada su edad, clase obrera, nivel educativo, estado marcial, raza, sexo, ganancia y pérdida de capital, y número de horas de trabajo por semana.

load census1994 X = adultdata(:,{'age','workClass','education_num','marital_status','race', ...     'sex','capital_gain','capital_loss','hours_per_week','salary'});

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

summary(X)
Variables:      age: 32561×1 double          Values:              Min        17               Median     37               Max        90        workClass: 32561×1 categorical          Values:              Federal-gov              960                Local-gov               2093                Never-worked               7                Private                22696                Self-emp-inc            1116                Self-emp-not-inc        2541                State-gov               1298                Without-pay               14                NumMissing              1836         education_num: 32561×1 double          Values:              Min              1                    Median          10                    Max             16             marital_status: 32561×1 categorical          Values:              Divorced                       4443                   Married-AF-spouse                23                   Married-civ-spouse            14976                   Married-spouse-absent           418                   Never-married                 10683                   Separated                      1025                   Widowed                         993            race: 32561×1 categorical          Values:              Amer-Indian-Eskimo      311              Asian-Pac-Islander     1039              Black                  3124              Other                   271              White                 27816       sex: 32561×1 categorical          Values:              Female    10771             Male      21790      capital_gain: 32561×1 double          Values:              Min               0                  Median            0                  Max           99999           capital_loss: 32561×1 double          Values:              Min               0                  Median            0                  Max            4356           hours_per_week: 32561×1 double          Values:              Min               1                    Median           40                    Max              99             salary: 32561×1 categorical          Values:              <=50K     24720               >50K       7841   

Debido a que hay pocas categorías representadas en las variables categóricas en comparación con los niveles en las variables continuas, el algoritmo de división de predictor estándar de CART prefiere dividir un predictor continuo sobre las variables categóricas.

Entrenar un bosque aleatorio de 50 árboles de clasificació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 = fitcensemble(X,'salary','Method','bag','NumLearningCycles',50, ...     '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.capital_gainmartial_status 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:fitcensemble

  • 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