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.

templateEnsemble

Plantilla de aprendizaje Ensemble

Descripción

ejemplo

t = templateEnsemble(Method,NLearn,Learners) Devuelve una plantilla de aprendizaje de conjunto que especifica el uso del método de agregación de conjunto, los ciclos de aprendizaje y los alumnos débiles.MethodNLearnLearners

Todas las demás opciones de la plantilla () específicas para el aprendizaje conjunto aparecen vacías, pero el software utiliza sus valores predeterminados correspondientes durante el entrenamiento.t

ejemplo

t = templateEnsemble(Method,NLearn,Learners,Name,Value) Devuelve una plantilla de conjunto con opciones adicionales especificadas por uno o más argumentos de par nombre-valor.

Por ejemplo, puede especificar el número de predictores en cada alumno de subespacio aleatorio, la tasa de aprendizaje para la contracción o el error de clasificación de destino para.RobustBoost

Si se muestra en la ventana de comandos, todas las opciones aparecerán vacías (), excepto las opciones que especifique mediante los argumentos de par nombre-valor.t[] Durante el entrenamiento, el software utiliza valores predeterminados para las opciones vacías.

Ejemplos

contraer todo

Se usa para especificar una plantilla de aprendizaje de conjunto.templateEnsemble Debe especificar el método de conjunto, el número de ciclos de aprendizaje y el tipo de alumnos débiles. En este ejemplo, especifique el método AdaBoostM1, los alumnos de 100 y los alumnos débiles del árbol de clasificación.

t = templateEnsemble('AdaBoostM1',100,'tree')
t =  Fit template for classification AdaBoostM1.                  Type: 'classification'               Method: 'AdaBoostM1'     LearnerTemplates: 'Tree'               NLearn: 100            LearnRate: []  

Todas las propiedades del objeto de plantilla están vacías excepto,, y.MethodTypeLearnerTemplatesNLearn Cuando se entrena en, el software rellena las propiedades vacías con sus respectivos valores predeterminados. Por ejemplo, el software rellena la propiedad con.LearnRate1

es un plan para un alumno de conjunto y no se realiza ningún cálculo cuando se especifica.t Puede pasar a especificar los alumnos binarios de conjunto para el aprendizaje multiclase de ECOC.tfitcecoc

Cree una plantilla de conjunto para utilizarla.fitcecoc

Cargue el conjunto de datos de arritmia.

load arrhythmia tabulate(categorical(Y));
  Value    Count   Percent       1      245     54.20%       2       44      9.73%       3       15      3.32%       4       15      3.32%       5       13      2.88%       6       25      5.53%       7        3      0.66%       8        2      0.44%       9        9      1.99%      10       50     11.06%      14        4      0.88%      15        5      1.11%      16       22      4.87% 
rng(1); % For reproducibility

Algunas clases tienen pequeñas frecuencias relativas en los datos.

Cree una plantilla para un conjunto AdaBoostM1 de árboles de clasificación y especifique usar 100 alumnos y una contracción de 0,1. Por defecto, impulsar crece tocones (es decir, un nodo que tiene un conjunto de hojas). Dado que hay clases con pequeñas frecuencias, los árboles deben ser lo suficientemente frondosos como para ser sensibles a las clases minoritarias. Especifique el número mínimo de observaciones del nodo hoja en 3.

tTree = templateTree('MinLeafSize',20); t = templateEnsemble('AdaBoostM1',100,tTree,'LearnRate',0.1);

Todas las propiedades de los objetos de plantilla están vacías excepto y, y las propiedades correspondientes de los valores de los argumentos de par nombre-valor en las llamadas de función.MethodType Al pasar a la función de entrenamiento, el software rellena las propiedades vacías con sus respectivos valores predeterminados.t

Especifique como un aprendizaje binario para un modelo multiclase ECOC.t Entrena usando el diseño de codificación uno contra uno predeterminado.

Mdl = fitcecoc(X,Y,'Learners',t);
  • es un modelo multiclase.MdlClassificationECOC

  • es una matriz de modelos de celdas de 78 por 1.Mdl.BinaryLearnersCompactClassificationEnsemble

  • es una matriz de modelos de celdas 100-by-1, para = 1,..., 78.Mdl.BinaryLearners{j}.TrainedCompactClassificationTreej

Puede comprobar que uno de los alumnos binarios contiene un alumno débil que no es un muñón mediante el uso de.view

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

Muestra el error de clasificación errónea en la muestra (reenvío).

L = resubLoss(Mdl,'LossFun','classiferror')
L = 0.0575 

Entrena un clasificador ECOC de uno contra todos usando un conjunto de árboles de decisión con divisiones sustitutas.GentleBoost Para acelerar el entrenamiento, los predictores numéricos bin y el uso de computación paralela. La discretización solo es válida cuando se utiliza un alumno de árbol.fitcecoc Después del entrenamiento, calcule el error de clasificación utilizando la validación cruzada de 10 veces. Tenga en cuenta que la computación paralela requiere Parallel Computing Toolbox™.

Cargue datos de muestra

Cargue e inspeccione el conjunto de datos.arrhythmia

load arrhythmia [n,p] = size(X)
n = 452 
p = 279 
isLabels = unique(Y); nLabels = numel(isLabels)
nLabels = 13 
tabulate(categorical(Y))
  Value    Count   Percent       1      245     54.20%       2       44      9.73%       3       15      3.32%       4       15      3.32%       5       13      2.88%       6       25      5.53%       7        3      0.66%       8        2      0.44%       9        9      1.99%      10       50     11.06%      14        4      0.88%      15        5      1.11%      16       22      4.87% 

El conjunto de datos contiene predictores y el tamaño de la muestra es relativamente pequeño.279452 De las 16 etiquetas distintas, solo 13 se representan en la respuesta ().Y Cada etiqueta describe varios grados de arritmia, y el 54,20% de las observaciones están en clase.1

Entrena uno contra todos clasificador ECOC

Cree una plantilla de conjunto. Debe especificar al menos tres argumentos: un método, un número de alumnos y el tipo de alumno. En este ejemplo, especifique para el método, para el número de alumnos y una plantilla de árbol de decisión que utiliza divisiones sustitutas porque faltan observaciones.'GentleBoost'100

tTree = templateTree('surrogate','on'); tEnsemble = templateEnsemble('GentleBoost',100,tTree);

es un objeto de plantilla.tEnsemble La mayoría de sus propiedades están vacías, pero el software los rellena con sus valores predeterminados durante el entrenamiento.

Entrena un clasificador ECOC de uno contra todos usando los conjuntos de árboles de decisión como estudiantes binarios. Para acelerar el entrenamiento, utilice el binning y la computación paralela.

  • Binning (): cuando tiene un conjunto de datos de entrenamiento grande, puede acelerar el entrenamiento (una disminución potencial en la precisión) mediante el argumento de par nombre-valor.'NumBins',50'NumBins' Este argumento sólo es válido cuando se utiliza un aprendiz de árbol.fitcecoc Si especifica el valor, las ubicaciones de software cada predictor numérico en un número especificado de bins equiprobables y, a continuación, crece árboles en los índices de ubicación en lugar de los datos originales.'NumBins' Usted puede probar primero, y luego cambiar el valor dependiendo de la precisión y la velocidad de entrenamiento.'NumBins',50'NumBins'

  • Parallel Computing (): con una licencia de Parallel Computing Toolbox, puede acelerar el cálculo mediante el uso de la computación paralela, que envía cada alumno binario a un trabajador en el grupo.'Options',statset('UseParallel',true) El número de trabajadores depende de la configuración del sistema. Cuando se utilizan árboles de decisión para los alumnos binarios, se paraleliza el entrenamiento mediante los bloques de creación de subprocesos de Intel® (TBB) para sistemas de doble núcleo y superiores.fitcecoc Por lo tanto, especificar la opción no es útil en un solo equipo.'UseParallel' Utilice esta opción en un clúster.

Además, especifique que las probabilidades anteriores son 1/, donde = 13 es el número de clases distintas.KK

options = statset('UseParallel',true); Mdl = fitcecoc(X,Y,'Coding','onevsall','Learners',tEnsemble,...                 'Prior','uniform','NumBins',50,'Options',options);
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6). 

es un modelo.MdlClassificationECOC

Validación cruzada

Valide en cruz el clasificador ECOC utilizando la validación cruzada de 10 veces.

CVMdl = crossval(Mdl,'Options',options);
Warning: One or more folds do not contain points from all the groups. 

es un modelo.CVMdlClassificationPartitionedECOC La advertencia indica que algunas clases no se representan mientras que el software entrena por lo menos un pliegue. Por lo tanto, esos pliegues no pueden predecir etiquetas para las clases que faltan. Puede inspeccionar los resultados de un pliegue utilizando la indexación de celdas y la notación de puntos. Por ejemplo, acceda a los resultados del primer pliegue introduciendo.CVMdl.Trained{1}

Utilice el clasificador ECOC validado para predecir etiquetas de plegado de validación. Puede calcular la matriz de confusión utilizando.confusionchart Mueva y cambie el tamaño del gráfico cambiando la propiedad de posición interna para asegurarse de que los porcentajes aparezcan en el Resumen de filas.

oofLabel = kfoldPredict(CVMdl,'Options',options); ConfMat = confusionchart(Y,oofLabel,'RowSummary','total-normalized'); ConfMat.InnerPosition = [0.10 0.12 0.85 0.85];

Reproducir datos Binned

Reproduzca datos de predictor en bin utilizando la propiedad del modelo entrenado y la función.BinEdgesdiscretize

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 para los predictores categóricos.XbinnedXbinned0 Si contiene s, los valores correspondientes son s.XNaNXbinnedNaN

Argumentos de entrada

contraer todo

Método de agregación de conjunto, especificado como uno de los nombres de método de esta lista.

  • Para la clasificación con dos clases:

    • 'AdaBoostM1'

    • 'LogitBoost'

    • 'GentleBoost'

    • requiere'RobustBoost'Optimization Toolbox™

    • requiere'LPBoost'Optimization Toolbox

    • requiere'TotalBoost'Optimization Toolbox

    • 'RUSBoost'

    • 'Subspace'

    • 'Bag'

  • Para la clasificación con tres o más clases:

    • 'AdaBoostM2'

    • requiere'LPBoost'Optimization Toolbox

    • requiere'TotalBoost'Optimization Toolbox

    • 'RUSBoost'

    • 'Subspace'

    • 'Bag'

  • Para la regresión:

    • 'LSBoost'

    • 'Bag'

Si especifica, a continuación, especifique el tipo de problema mediante el argumento de par nombre-valor, porque puede especificar para problemas de clasificación y regresión.'Method','Bag'Type'Bag'

Para obtener más información sobre los algoritmos y ejemplos de agregación de conjuntos, vea y.Algoritmos de conjuntoElija un método de agregación de conjunto aplicable

Número de ciclos de aprendizaje de conjunto, especificado como un entero positivo o.'AllPredictorCombinations'

  • Si especifica un entero positivo, entonces, en cada ciclo de aprendizaje, el software entrena a un alumno débil para cada objeto de plantilla en.Learners Por lo tanto, el software entrena a los estudiantes.NLearn*numel(Learners)

  • Si especifica, a continuación, establezca y especifique un alumno solo en.'AllPredictorCombinations'Method'Subspace'Learners Con estos ajustes, el software entrena a los estudiantes para todas las combinaciones posibles de predictores tomados a la vez.NPredToSample Por lo tanto, el software entrena a los estudiantes.nchoosek(size(X,2),NPredToSample)

Para obtener más información, consulte.Consejos

Tipos de datos: single | double | char | string

Los estudiantes débiles para usar en el conjunto, especificado como un nombre de aprendiz débil, objeto de plantilla de aprendizaje débil o matriz de celdas de objetos de plantilla de aprendizaje débil.

Aprendiz débilNombre de aprendiz débilFunción de creación de objetos de plantillaConfiguraciónMethod
El análisis discriminante'Discriminant'templateDiscriminantRecomendado para'Subspace'
vecinos más cercanosk'KNN'templateKNNPor sólo'Subspace'
Árbol de decisión'Tree'templateTreeTodos los métodos excepto'Subspace'

Para obtener más información, consulte y.NLearnConsejos

Ejemplo: Para un conjunto compuesto por dos tipos de árboles de clasificación, suministro, donde y son plantillas de árbol de clasificación.{t1 t2}t1t2

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

Ejemplo: especifica para usar como la tasa de aprendizaje y para mostrar un mensaje a la línea de comandos cada vez que entrena a los estudiantes.'LearningRate',0.05,'NPrint',50,055

General Ensemble Options

contraer todo

Frecuencia de impresión, especificada como el par separado por comas que consta de un entero positivo o.'NPrint''off'

Para realizar un seguimiento del número de o que el software entrenado hasta ahora, especifique un entero positivo.weak learnersPliegues Es decir, si especifica el entero positivo y:m

  • No especifique ninguna opción de validación cruzada de la función de empalme (por ejemplo,), entonces el software muestra un mensaje a la línea de comandos cada vez que completa la capacitación de los estudiantes débiles.CrossValm

  • Una opción de validación cruzada, a continuación, el software muestra un mensaje a la línea de comandos cada vez que finaliza los pliegues de entrenamiento.m

Si usted especifica, después el software no visualiza un mensaje cuando completa la formación de los estudiantes débiles.'off'

Sugerencia

Al entrenar un conjunto de muchos alumnos débiles en un conjunto de datos de gran tamaño, especifique un entero positivo para.NPrint

Ejemplo: 'NPrint',5

Tipos de datos: single | double | char | string

Tipo de aprendizaje supervisado, especificado como el par separado por comas que consta de y o.'Type''classification''regression'

  • Si es así, el tipo de aprendizaje supervisado es ambiguo.Method'bag' Por lo tanto, especifique cuando embolsado.Type

  • De lo contrario, el valor de determina el tipo de aprendizaje supervisado.Method

Ejemplo: 'Type','classification'

Opciones de muestreo para impulsar métodos y embolsado

contraer todo

Fracción del conjunto de entrenamiento que se remuestrea para cada alumno débil, especificado como el par separado por comas y que consta de un escalar positivo en (0,1].'FResample'

Para usar, especificar o establecer en.'FResample''bag'MethodResample'on'

Ejemplo: 'FResample',0.75

Tipos de datos: single | double

Indicador que indica el muestreo con sustitución, especificado como el par separado por comas que consta de y o.'Replace''off''on'

  • Para, el software muestrea las observaciones de entrenamiento con reemplazo.'on'

  • Para, el software muestrea las observaciones de entrenamiento sin reemplazo.'off' Si se establece en, a continuación, las observaciones de software muestras de formación asumiendo pesos uniformes.Resample'on' Si también especifica un método de Boosting, el software aumenta al reponderando las observaciones.

A menos que establezca o establezca en, no tiene ningún efecto.Method'bag'Resample'on'Replace

Ejemplo: 'Replace','off'

Indicador que indica que se remuestrea, especificado como el par separado por comas que consta de y o.'Resample''off''on'

  • Si es un método de Boosting, entonces:Method

    • especifica las observaciones de formación de muestra utilizando ponderaciones actualizadas como probabilidades de muestreo multinomial.'Resample','on'

    • (valor predeterminado) especifica las observaciones de reponderación en cada iteración de aprendizaje.'Resample','off'

  • Si es así, debe serlo.Method'bag''Resample''on' El software remuestrea una fracción de las observaciones de entrenamiento (ver) con o sin reemplazo (ver).FResampleReplace

Si especifica volver a muestrear utilizando, es recomendable volver a muestrear todo el conjunto de datos.Resample Es decir, utilice el valor predeterminado de 1 para.FResample

Las opciones de método AdaBoostM1, AdaBoostM2, LogitBoost, GentleBoost y LSBoost

contraer todo

Velocidad de aprendizaje para la contracción, especificada como el par separado por comas que consta de un escalar numérico en el intervalo (0,1).

Para entrenar un conjunto con contracción, se establece en un valor menor que, por ejemplo, es una opción popular.LearnRate10.1 Entrenar un conjunto usando contracción requiere más iteraciones de aprendizaje, pero a menudo logra una mejor precisión.

Ejemplo: 'LearnRate',0.1

Tipos de datos: single | double

Opciones del método RUSBoost

contraer todo

Velocidad de aprendizaje para la contracción, especificada como el par separado por comas que consta de un escalar numérico en el intervalo (0,1).

Para entrenar un conjunto con contracción, se establece en un valor menor que, por ejemplo, es una opción popular.LearnRate10.1 Entrenar un conjunto usando contracción requiere más iteraciones de aprendizaje, pero a menudo logra una mejor precisión.

Ejemplo: 'LearnRate',0.1

Tipos de datos: single | double

Proporción de muestreo con respecto a la clase de menor representación, especificada como el par separado por comas consistente en un vector escalar o numérico numérico de valores positivos con una longitud igual al número de clases distintas en los datos de entrenamiento.'RatioToSmallest'

Supongamos que hay K clases en los datos de entrenamiento y la clase de menor representación tiene m observaciones de los datos de formación.

  • Si especifica el escalar numérico positivo s, a continuación, las muestras de software s*m observaciones de cada clase, es decir, utiliza la misma proporción de muestreo para cada clase. Para obtener más información, consulte.Algoritmos

  • Si especifica el vector numérico [s1,s2,...,sK], a continuación, las muestras de software si*m observaciones de la clase i, i = 1,...,.K Los elementos de corresponden al orden de los nombres de clase especificados mediante el argumento de par nombre-valor de la función de empalme (véase).RatioToSmallestClassNamesConsejos

El valor predeterminado es ones(K,1), que especifica la muestra m observaciones de cada clase.

Ejemplo: 'RatioToSmallest',[2,1]

Tipos de datos: single | double

Opciones del método LPBoost y TotalBoost

contraer todo

Precisión de margen para controlar la velocidad de convergencia, especificada como el par separado por comas que consta de y un escalar numérico en el intervalo [0,1]. afecta al número de iteraciones de impulso requeridas para la convergencia.'MarginPrecision'MarginPrecision

Sugerencia

Para entrenar un conjunto con muchos alumnos, especifique un valor pequeño para.MarginPrecision Para entrenar con unos pocos alumnos, especifique un valor grande.

Ejemplo: 'MarginPrecision',0.5

Tipos de datos: single | double

Opciones del método RobustBoost

contraer todo

Error de clasificación de destino, especificado como el par separado por comas que consta de un escalar numérico no negativo.'RobustErrorGoal' El límite superior de los valores posibles depende de los valores de y.RobustMarginSigmaRobustMaxMargin Sin embargo, el límite superior no puede exceder.1

Sugerencia

Para un conjunto de entrenamiento en particular, por lo general hay un rango óptimo para.RobustErrorGoal Si lo establece demasiado bajo o demasiado alto, el software puede producir un modelo con una precisión de clasificación deficiente. Pruebe la validación cruzada para buscar el valor adecuado.

Ejemplo: 'RobustErrorGoal',0.05

Tipos de datos: single | double

Distribución del margen de clasificación distribuida en los datos de entrenamiento, especificado como el par separado por comas que consta de un escalar numérico positivo.'RobustMarginSigma' Antes de especificar, consulte la bibliografía sobre, por ejemplo,.RobustMarginSigmaRobustBoost[19]

Ejemplo: 'RobustMarginSigma',0.5

Tipos de datos: single | double

Margen de clasificación máximo en los datos de entrenamiento, especificado como el par separado por comas que consta de un escalar numérico no negativo.'RobustMaxMargin' El software minimiza el número de observaciones en los datos de entrenamiento que tienen márgenes de clasificación a continuación.RobustMaxMargin

Ejemplo: 'RobustMaxMargin',1

Tipos de datos: single | double

Opciones de método de subespacio aleatorio

contraer todo

Número de predictores que se muestra para cada alumno de subespacio aleatorio, especificado como el par separado por comas que consta de un entero positivo en el intervalo 1,...,, donde está el número de variables predictoras (o).'NPredToSample'ppsize(X,2)size(Tbl,2)

Tipos de datos: single | double

Argumentos de salida

contraer todo

Plantilla de clasificación para el aprendizaje conjunto, devuelta como un objeto de plantilla. Puede pasar, por ejemplo, para especificar cómo crear el clasificador de aprendizaje de conjunto para el modelo ECOC.tfitcecoc

Si aparece en la ventana de comandos, todas las opciones no especificadas aparecerán vacías ().t[] Sin embargo, el software reemplaza las opciones vacías con sus valores predeterminados correspondientes durante el entrenamiento.

Sugerencias

  • puede variar de unas pocas docenas a unos pocos miles.NLearn Por lo general, un conjunto con buena potencia predictiva requiere de unos pocos cientos a unos pocos miles de estudiantes débiles. Sin embargo, usted no tiene que entrenar un conjunto para que muchos ciclos a la vez. Usted puede comenzar por el crecimiento de una docena de estudiantes, inspeccionar el rendimiento del conjunto y luego, si es necesario, entrenar a los estudiantes más débiles utilizando resume para problemas de clasificación o resume para los problemas de regresión.

  • El rendimiento del conjunto depende del ajuste del conjunto y del ajuste de los alumnos débiles. Es decir, si especifica los alumnos débiles con parámetros predeterminados, el conjunto puede realizar. Por lo tanto, al igual que los ajustes de conjunto, es recomendable ajustar los parámetros de los alumnos débiles mediante plantillas y elegir valores que minimicen el error de generalización.

  • Si especifica volver a muestrear utilizando, es recomendable volver a muestrear todo el conjunto de datos.Resample Es decir, utilice la configuración predeterminada de for.1FResample

  • En problemas de clasificación (es decir, es):Type'classification'

    • Si el método de agregación de conjunto () es y:Method'bag'

      • El costo de clasificación errónea es muy desequilibrado, entonces, para las muestras en el bolso, el software sobremuestrea las observaciones únicas de la clase que tiene una multa grande.

      • Las probabilidades previas de clase son altamente sesgados, el software sobremuestrea observaciones únicas de la clase que tiene una gran probabilidad previa.

      Para tamaños de muestra más pequeños, estas combinaciones pueden dar lugar a una frecuencia relativa muy baja de las observaciones fuera de bolsa de la clase que tiene una gran penalización o probabilidad previa. Por lo tanto, el error de out-of-bag Estimado es muy variable y puede ser difícil de interpretar. Para evitar grandes desviaciones de error de fuera de bolsa estimadas, especialmente para tamaños de muestra pequeños, establezca una matriz de coste de clasificación errónea más equilibrada utilizando el argumento de par nombre-valor de la función de empalme, o un vector de probabilidad anterior menos sesgado utilizando el nombre-valor argumento Pair de la función de empalme.CostoPrior

    • Dado que el orden de algunos argumentos de entrada y salida corresponden a las clases distintas de los datos de entrenamiento, es recomendable especificar el orden de la clase mediante el argumento de par nombre-valor de la función de conexión.ClassNames

      • Para determinar rápidamente el orden de la clase, quite todas las observaciones de los datos de entrenamiento que no están clasificados (es decir, tienen una etiqueta que falta), obtener y mostrar una matriz de todas las clases distintas y, a continuación, especifique la matriz para.ClassNames Por ejemplo, supongamos que la variable de respuesta () es una matriz de etiquetas de celdas.Y Este código especifica el orden de la clase en la variable. asigna a observaciones sin clasificar y excluye de su salida.classNames

        Ycat = categorical(Y); classNames = categories(Ycat)
        Categórico<undefined>categories<undefined> Por lo tanto, si usa este código para matrices de celdas de etiquetas o código similar para matrices categóricas, no tiene que quitar observaciones con etiquetas que faltan para obtener una lista de las clases distintas.

      • Para especificar que el orden debe ser de la etiqueta de menor representación a la más representada, a continuación, determinar rápidamente el orden de la clase (como en la viñeta anterior), pero organizar las clases en la lista por frecuencia antes de pasar la lista a.ClassNames A continuación del ejemplo anterior, este código especifica el orden de la clase de menor a mayor representado en.classNamesLH

        Ycat = categorical(Y); classNames = categories(Ycat); freq = countcats(Ycat); [~,idx] = sort(freq); classNamesLH = classNames(idx);

Algoritmos

  • Para obtener más información sobre los algoritmos de agregación de conjuntos, consulte.Algoritmos de conjunto

  • Si especifica ser un algoritmo de impulso y ser árboles de decisión, el software crece de forma predeterminada.MethodLearnersTocones Un muñón de decisión es un nodo raíz conectado a dos terminales, nodos hoja. Puede ajustar la profundidad del árbol especificando los argumentos de par nombre-valor y el uso.MaxNumSplitsMinLeafSizeMinParentSizetemplateTree

  • El software genera muestras en bolsa mediante sobremuestreo de clases con grandes costos de clasificación errónea y clases de submuestreo con pequeños costos de clasificación errónea. En consecuencia, las muestras fuera de bolsa tienen menos observaciones de las clases con grandes costos de clasificación errónea y más observaciones de clases con pequeños costos de clasificación errónea. Si entrena un conjunto de clasificación usando un pequeño conjunto de datos y una matriz de costos altamente sesgada, entonces el número de observaciones fuera de bolsa por clase podría ser muy bajo. Por lo tanto, el error de out-of-bag estimado podría tener una varianza grande y podría ser difícil de interpretar. El mismo fenómeno puede ocurrir para las clases con grandes probabilidades previas.

  • Para el método de agregación de conjunto RUSBoost (), el argumento de par nombre-valor especifica la proporción de muestreo para cada clase con respecto a la clase de menor representación.MethodRatioToSmallest Por ejemplo, supongamos que hay 2 clases en los datos de entrenamiento y. tiene 100 observaciones y tiene 10 observaciones.ABAB Además, supongamos que la clase de menor representación tiene m observaciones de los datos de formación.

    • Si establece, a continuación,'RatioToSmallest',2 s*m = = .2*1020 En consecuencia, el software entrena a cada aprendiz utilizando 20 observaciones de la clase y 20 observaciones de la clase.AB Si establece, obtendrá el mismo resultado.'RatioToSmallest',[2 2]

    • Si establece, a continuación,'RatioToSmallest',[2,1] s1*m = = y2*1020 s2*m = = .1*1010 En consecuencia, el software entrena a cada aprendiz utilizando 20 observaciones de la clase y 10 observaciones de la clase.AB

  • Para conjuntos de árboles de decisión, y para sistemas de doble núcleo y superiores, y paralelizar el entrenamiento mediante subprocesos Building Blocks (TBB).fitcensemblefitrensembleIntel® Para obtener más información sobre TBB, consulte.Intelhttps://software.intel.com/en-us/intel-tbb

Introducido en R2014b