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.

resubPredict

Clasifique las observaciones en el modelo de códigos de salida de corrección de errores multiclase (ECOC)

Descripción

ejemplo

label = resubPredict(Mdl) Devuelve un vector de etiquetas de clase pronosticadas () para el modelo de códigos de salida de corrección de errores multiclase (ECOC) entrenado utilizando los Datos predictores almacenados en.EtiquetaMdlMdl.X

El software predice la clasificación de una observación asignando la observación a la clase que produce la mayor pérdida binaria media negada (o, equivalentemente, la pérdida binaria promedio más pequeña).

ejemplo

label = resubPredict(Mdl,Name,Value) Devuelve las etiquetas de clase previstas con opciones adicionales especificadas por uno o más argumentos de par nombre-valor. Por ejemplo, especifique el método de estimación de probabilidad posterior, el esquema de decodificación o el nivel de verbosidad.

ejemplo

[label,NegLoss,PBScore] = resubPredict(___) utiliza cualquiera de las combinaciones de argumentos de entrada en las sintaxis anteriores y, además, devuelve la media negada por clase () para las observaciones y las puntuaciones de clase positiva () para las observaciones clasificadas por cada alumno binario.pérdida binariaNegLossPBScore

ejemplo

[label,NegLoss,PBScore,Posterior] = resubPredict(___) Además devuelve estimaciones de probabilidad de clase posterior para observaciones ().Posterior

Para obtener las probabilidades de clase posterior, debe establecer al entrenar el modelo ECOC utilizando.'FitPosterior',truefitcecoc De lo contrario, produce un error.resubPredict

Ejemplos

contraer todo

Cargue el conjunto de datos de iris de Fisher. Especifique los datos del predictor, los datos de respuesta y el orden de las clases.XYY

load fisheriris X = meas; Y = categorical(species); classOrder = unique(Y);

Entrenar un modelo ECOC utilizando clasificadores binarios SVM. Estandarice los predictores mediante una plantilla SVM y especifique el orden de la clase.

t = templateSVM('Standardize',true); Mdl = fitcecoc(X,Y,'Learners',t,'ClassNames',classOrder);

es un objeto de plantilla SVM.t Durante el entrenamiento, el software utiliza los valores predeterminados para las propiedades vacías en. es un modelo.tMdlClassificationECOC

Predecir las etiquetas de los datos de entrenamiento. Imprima un subconjunto aleatorio de etiquetas verdaderas y predichas.

labels = resubPredict(Mdl);  rng(1); % For reproducibility n = numel(Y); % Sample size idx = randsample(n,10); table(Y(idx),labels(idx),'VariableNames',{'TrueLabels','PredictedLabels'})
ans=10×2 table
    TrueLabels    PredictedLabels
    __________    _______________

    setosa          setosa       
    versicolor      versicolor   
    virginica       virginica    
    setosa          setosa       
    versicolor      versicolor   
    setosa          setosa       
    versicolor      versicolor   
    versicolor      versicolor   
    setosa          setosa       
    setosa          setosa       

etiqueta correctamente las observaciones con índices.Mdlidx

Cargue el conjunto de datos de iris de Fisher. Especifique los datos del predictor, los datos de respuesta y el orden de las clases.XYY

load fisheriris X = meas; Y = categorical(species); classOrder = unique(Y); % Class order

Entrenar un modelo ECOC utilizando clasificadores binarios SVM. Estandarice los predictores mediante una plantilla SVM y especifique el orden de la clase.

t = templateSVM('Standardize',true); Mdl = fitcecoc(X,Y,'Learners',t,'ClassNames',classOrder);

es un objeto de plantilla SVM.t Durante el entrenamiento, el software utiliza los valores predeterminados para las propiedades vacías en. es un modelo.tMdlClassificationECOC

Las puntuaciones SVM son distancias firmadas desde la observación hasta el límite de decisión. Por lo tanto, el dominio es

<math display="block">
<mrow>
<mo stretchy="false">(</mo>
<mo>-</mo>
<mo></mo>
<mo>,</mo>
<mo></mo>
<mo stretchy="false">)</mo>
</mrow>
</math>
. Cree una función de pérdida binaria personalizada que haga lo siguiente:

  • Asigne la matriz de diseño de codificación () y las puntuaciones de clasificación de clase positiva () para cada alumno a la pérdida binaria para cada observación.Ms

  • Utilice la pérdida lineal.

  • Agregue la pérdida binaria del alumno utilizando la mediana.

Puede crear una función independiente para la función de pérdida binaria y, a continuación, guardarla en la ruta de acceso de MATLAB®. O puede especificar una función de pérdida binaria anónima. En este caso, cree una función Handle () a una función de pérdida binaria anónima.customBL

customBL = @(M,s)nanmedian(1 - bsxfun(@times,M,s),2)/2;

Predecir etiquetas para los datos de entrenamiento y estimar la pérdida binaria mediana por clase. Imprima la mediana de pérdidas binarias negativas por clase para un conjunto aleatorio de 10 observaciones.

[label,NegLoss] = resubPredict(Mdl,'BinaryLoss',customBL);  rng(1); % For reproducibility n = numel(Y); % Sample size idx = randsample(n,10); classOrder
classOrder = 3x1 categorical array
     setosa 
     versicolor 
     virginica 

table(Y(idx),label(idx),NegLoss(idx,:),'VariableNames',...     {'TrueLabel','PredictedLabel','NegLoss'})
ans=10×3 table
    TrueLabel     PredictedLabel                NegLoss            
    __________    ______________    _______________________________

    setosa          versicolor      0.12375      1.9569     -3.5807
    versicolor      versicolor       -1.017     0.62908      -1.112
    virginica       virginica       -1.9083    -0.21792     0.62621
    setosa          versicolor      0.43855      2.2443     -4.1828
    versicolor      versicolor      -1.0733     0.39617    -0.82283
    setosa          versicolor      0.26677      2.2004     -3.9672
    versicolor      versicolor      -1.1235      0.6988     -1.0753
    versicolor      versicolor       -1.271     0.51807     -0.7471
    setosa          versicolor      0.35193      2.0678     -3.9198
    setosa          versicolor      0.23363      2.1887     -3.9223

El orden de las columnas corresponde a los elementos de.classOrder El software predice la etiqueta en función de la pérdida máxima negada. Los resultados indican que la mediana de las pérdidas lineales podría no funcionar así como otras pérdidas.

Entrenar un clasificador ECOC utilizando los estudiantes binarios SVM. Primero predecir las etiquetas de muestra de entrenamiento y las probabilidades posteriores de clase. A continuación, predecir la probabilidad máxima de clase posterior en cada punto de una cuadrícula. Visualiza los resultados.

Cargue el conjunto de datos de iris de Fisher. Especifique las cotas del pétalo como los predictores y los nombres de las especies como respuesta.

load fisheriris X = meas(:,3:4); Y = species; rng(1); % For reproducibility

Cree una plantilla de SVM. Estandarice los predictores y especifique el kernel gaussiano.

t = templateSVM('Standardize',true,'KernelFunction','gaussian');

es una plantilla de SVM.t La mayoría de sus propiedades están vacías. Cuando el software entrena el clasificador ECOC, fija las propiedades aplicables a sus valores predeterminados.

Entrenar el clasificador ECOC utilizando la plantilla SVM. Transforme las puntuaciones de clasificación en probabilidades posteriores de clase (que se devuelven por o) mediante el argumento de par nombre-valor.PredecirresubPredict'FitPosterior' Especifique el orden de la clase mediante el argumento de par nombre-valor.'ClassNames' Mostrar mensajes de diagnóstico durante el entrenamiento mediante el argumento de par nombre-valor.'Verbose'

Mdl = fitcecoc(X,Y,'Learners',t,'FitPosterior',true,...     'ClassNames',{'setosa','versicolor','virginica'},...     'Verbose',2);
Training binary learner 1 (SVM) out of 3 with 50 negative and 50 positive observations. Negative class indices: 2 Positive class indices: 1  Fitting posterior probabilities for learner 1 (SVM). Training binary learner 2 (SVM) out of 3 with 50 negative and 50 positive observations. Negative class indices: 3 Positive class indices: 1  Fitting posterior probabilities for learner 2 (SVM). Training binary learner 3 (SVM) out of 3 with 50 negative and 50 positive observations. Negative class indices: 3 Positive class indices: 2  Fitting posterior probabilities for learner 3 (SVM). 

es un modelo.MdlClassificationECOC La misma plantilla SVM se aplica a cada alumno binario, pero puede ajustar las opciones para cada alumno binario pasando un vector de celdas de plantillas.

Predecir las etiquetas de muestra de entrenamiento y las probabilidades posteriores de clase. Mostrar mensajes de diagnóstico durante el cálculo de las etiquetas y las probabilidades posteriores de clase mediante el argumento de par nombre-valor.'Verbose'

[label,~,~,Posterior] = resubPredict(Mdl,'Verbose',1);
Predictions from all learners have been computed. Loss for all observations has been computed. Computing posterior probabilities... 
Mdl.BinaryLoss
ans =  'quadratic' 

El software asigna una observación a la clase que produce la pérdida binaria promedio más pequeña. Debido a que todos los estudiantes binarios están calculando probabilidades posteriores, la función de pérdida binaria es.quadratic

Muestra un conjunto aleatorio de resultados.

idx = randsample(size(X,1),10,1); Mdl.ClassNames
ans = 3x1 cell array
    {'setosa'    }
    {'versicolor'}
    {'virginica' }

table(Y(idx),label(idx),Posterior(idx,:),...     'VariableNames',{'TrueLabel','PredLabel','Posterior'})
ans=10×3 table
     TrueLabel       PredLabel                    Posterior               
    ____________    ____________    ______________________________________

    'virginica'     'virginica'      0.0039321     0.0039869       0.99208
    'virginica'     'virginica'       0.017067      0.018263       0.96467
    'virginica'     'virginica'       0.014948      0.015856        0.9692
    'versicolor'    'versicolor'    2.2197e-14       0.87317       0.12683
    'setosa'        'setosa'             0.999    0.00025091    0.00074639
    'versicolor'    'virginica'     2.2195e-14      0.059429       0.94057
    'versicolor'    'versicolor'    2.2194e-14       0.97001      0.029986
    'setosa'        'setosa'             0.999     0.0002499    0.00074741
    'versicolor'    'versicolor'     0.0085646       0.98259      0.008849
    'setosa'        'setosa'             0.999    0.00025013    0.00074718

Las columnas corresponden al orden de la clase de.PosteriorMdl.ClassNames

Defina una rejilla de valores en el espacio pronosticador observado. Predecir las probabilidades posteriores para cada instancia en la cuadrícula.

xMax = max(X); xMin = min(X);  x1Pts = linspace(xMin(1),xMax(1)); x2Pts = linspace(xMin(2),xMax(2)); [x1Grid,x2Grid] = meshgrid(x1Pts,x2Pts);  [~,~,~,PosteriorRegion] = predict(Mdl,[x1Grid(:),x2Grid(:)]);

Para cada coordenada de la cuadrícula, trace la probabilidad de la clase máxima posterior entre todas las clases.

contourf(x1Grid,x2Grid,...         reshape(max(PosteriorRegion,[],2),size(x1Grid,1),size(x1Grid,2))); h = colorbar; h.YLabel.String = 'Maximum posterior'; h.YLabel.FontSize = 15;  hold on gh = gscatter(X(:,1),X(:,2),Y,'krk','*xd',8); gh(2).LineWidth = 2; gh(3).LineWidth = 2;  title('Iris Petal Measurements and Maximum Posterior') xlabel('Petal length (cm)') ylabel('Petal width (cm)') axis tight legend(gh,'Location','NorthWest') hold off

Entrena un modelo ECOC multiclase y estima las probabilidades posteriores usando computación paralela.

Cargue el conjunto de datos.arrhythmia Examine los datos de respuesta y determine el número de clases.Y

load arrhythmia Y = categorical(Y); tabulate(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% 
K = numel(unique(Y));

Varias clases no están representadas en los datos, y muchas otras clases tienen bajas frecuencias relativas.

Especifique una plantilla de aprendizaje de conjunto que utilice el método GentleBoost y 50 alumnos de árbol de clasificación débiles.

t = templateEnsemble('GentleBoost',50,'Tree');

es un objeto de plantilla.t La mayoría de sus propiedades están vacías ().[] El software utiliza los valores predeterminados para todas las propiedades vacías durante el entrenamiento.

Dado que la variable de respuesta contiene muchas clases, especifique un diseño de codificación aleatorio disperso.

rng(1); % For reproducibility Coding = designecoc(K,'sparserandom');

Entrenar un modelo ECOC utilizando computación paralela. Especifique para ajustar las probabilidades posteriores.

pool = parpool;                      % Invokes workers
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6). 
options = statset('UseParallel',true); Mdl = fitcecoc(X,Y,'Learner',t,'Options',options,'Coding',Coding,...     'FitPosterior',true);

es un modelo.MdlClassificationECOC Puede acceder a sus propiedades utilizando la notación de puntos.

El grupo invoca a seis trabajadores, aunque el número de trabajadores puede variar entre los sistemas.

Estimar las probabilidades posteriores, y mostrar la probabilidad posterior de ser clasificado como no tener arritmia (clase 1) dado un subconjunto aleatorio de los datos de entrenamiento.

[~,~,~,posterior] = resubPredict(Mdl);  n = numel(Y); idx = randsample(n,10,1); table(idx,Y(idx),posterior(idx,1),...     'VariableNames',{'ObservationIndex','TrueLabel','PosteriorNoArrythmia'})
ans=10×3 table
    ObservationIndex    TrueLabel    PosteriorNoArrythmia
    ________________    _________    ____________________

           79              1                0.93436      
          248              1                0.95574      
          398              10              0.032378      
          207              1                0.97965      
          340              1                0.93656      
          206              1                0.97795      
          345              10              0.015642      
          296              2                0.13433      
          391              1                 0.9648      
          406              1                0.94861      

Argumentos de entrada

contraer todo

Modelo ECOC de varias clases completo y entrenado, especificado como modelo entrenado con.ClassificationECOCfitcecoc

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 una función de pérdida de aprendizaje binaria lineal y un esquema de decodificación basado en pérdidas para agregar las pérdidas binarias.resubPredict(Mdl,'BinaryLoss','linear','Decoding','lossbased')

Función de pérdida binaria de aprendizaje, especificada como el par separado por comas que consta de un nombre de función de pérdida incorporada o un identificador de función.'BinaryLoss'

  • Esta tabla describe las funciones incorporadas, donde yj es una etiqueta de clase para un alumno binario determinado (en el conjunto {– 1, 1, 0}), sj es la partitura para la observación, y (jgyj,sj) es la fórmula de pérdida binaria.

    ValorDescripciónPuntuación de dominio(gyj,sj)
    'binodeviance'Desviación binomial(– ∞, ∞)log [1 + exp (– 2yjsj)]/[2log (2)]
    'exponential'Exponencial(– ∞, ∞)exp (–yjsj)/2
    'hamming'Hamming[0, 1] o (– ∞, ∞)[1 – signo (yjsj)]/2
    'hinge'Bisagra(– ∞, ∞)Max (0,1 – yjsj)/2
    'linear'Lineal(– ∞, ∞)1 yjsj)/2
    'logit'Logística(– ∞, ∞)log [1 + exp (–yjsj)]/[2log (2)]
    'quadratic'Cuadrática[0,1]1 yj(2sj – 1)]2/2

    El software normaliza las pérdidas binarias para que la pérdida es 0,5 cuando yj = 0. Además, el software calcula la pérdida binaria media para cada clase.

  • Para una función de pérdida binaria personalizada, por ejemplo, especifique su identificador de función.customFunction'BinaryLoss',@customFunction

    tiene este formulario: donde:customFunction

    bLoss = customFunction(M,s)

    • es la matriz-por-codificación almacenada en.MKLMdl.CodingMatrix

    • es el vector 1 por fila de las puntuaciones de clasificación.sL

    • es la pérdida de clasificación.bLoss Este escalar agrega las pérdidas binarias para cada alumno en una clase determinada. Por ejemplo, puede usar la pérdida binaria media para agregar la pérdida sobre los alumnos de cada clase.

    • es el número de clases.K

    • es el número de estudiantes binarios.L

    Para obtener un ejemplo de cómo pasar una función de pérdida binaria personalizada, consulte.Predecir etiquetas de muestra de prueba de modelo ECOC utilizando la función de pérdida binaria personalizada

El valor predeterminado depende de los rangos de puntuación devueltos por los alumnos binarios.BinaryLoss Esta tabla describe algunos valores predeterminados basados en las suposiciones dadas.BinaryLoss

presunciónValor predeterminado
Todos los alumnos binarios son SVMs o modelos de clasificación de kernel o lineales de alumnos de SVM.'hinge'
Todos los estudiantes binarios son conjuntos entrenados por o.AdaboostM1GentleBoost'exponential'
Todos los estudiantes binarios son conjuntos entrenados por.LogitBoost'binodeviance'
Todos los estudiantes binarios son modelos lineales o de clasificación de kernel de los estudiantes de regresión logística. O, especifique para predecir las probabilidades posteriores de clase estableciendo en.'FitPosterior',truefitcecoc'quadratic'

Para comprobar el valor predeterminado, utilice la notación de puntos para mostrar la propiedad del modelo entrenado en la línea de comandos.BinaryLoss

Ejemplo: 'BinaryLoss','binodeviance'

Tipos de datos: char | string | function_handle

Esquema de decodificación que agrega las pérdidas binarias, especificadas como el par separado por comas que consta de y o.'Decoding''lossweighted''lossbased' Para obtener más información, consulte.Pérdida binaria

Ejemplo: 'Decoding','lossbased'

Número de valores iniciales aleatorios para ajustar las probabilidades posteriores mediante la minimización de la divergencia Kullback-Leibler, especificada como el par separado por comas que consta de un escalar entero no negativo.'NumKLInitializations'

Si usted no pide el cuarto argumento de salida () y el conjunto (el valor por defecto), después el software ignora el valor de.Posterior'PosteriorMethod','kl'NumKLInitializations

Para obtener más información, consulte.Estimación posterior utilizando la divergencia Kullback-Leibler

Ejemplo: 'NumKLInitializations',5

Tipos de datos: single | double

Opciones de estimación, especificadas como el par separado por comas que consta de una matriz de estructura devuelta por.'Options'statset

Para invocar la computación paralela:

  • Necesitas una licencia.Parallel Computing Toolbox™

  • Especificar.'Options',statset('UseParallel',true)

Método de estimación de probabilidad posterior, especificado como el par separado por comas que consta de y o.'PosteriorMethod''kl''qp'

  • Si es así, el software estima las probabilidades posteriores multiclase minimizando la divergencia Kullback-Leibler entre las probabilidades posteriores previstas y previstas devueltas por los estudiantes binarios.PosteriorMethod'kl' Para obtener más información, consulte.Estimación posterior utilizando la divergencia Kullback-Leibler

  • Si es así, el software estima las probabilidades posteriores multiclase resolviendo un problema de mínimos cuadrados usando la programación cuadrática.PosteriorMethod'qp' Necesita una licencia para usar esta opción.Optimization Toolbox™ Para obtener más información, consulte.Estimación posterior mediante programación cuadrática

  • Si no solicita el cuarto argumento de salida (), el software ignora el valor de.PosteriorPosteriorMethod

Ejemplo: 'PosteriorMethod','qp'

Nivel de verbosidad, especificado como el par separado por comas que consta de y o. controla el número de mensajes de diagnóstico que el software muestra en la ventana de comandos.'Verbose'01Verbose

Si es, entonces el software no visualiza los mensajes de diagnóstico.Verbose0 De lo contrario, el software muestra mensajes de diagnóstico.

Ejemplo: 'Verbose',1

Tipos de datos: single | double

Argumentos de salida

contraer todo

Etiquetas de clase pronosticadas, devueltas como una matriz categórica o de caracteres, Vector lógico o numérico o matriz de celdas de vectores de caracteres.

tiene el mismo tipo de datos que y tiene el mismo número de filas que.EtiquetaMdl.ClassNamesMdl.X

El software predice la clasificación de una observación asignando la observación a la clase que produce la mayor pérdida binaria media negada (o, equivalentemente, la pérdida binaria promedio más pequeña).

Media negada, devuelta como una matriz numérica. es un-por-matriz, donde es el número de observaciones () y es el número de clases únicas ().pérdidas binariasNegLossnKnsize(Mdl.X,1)Ksize(Mdl.ClassNames,1)

Puntuaciones de clase positiva para cada alumno binario, devueltas como una matriz numérica. es un-por-matriz, donde es el número de observaciones () y es el número de estudiantes binarios ().PBScorenLnsize(Mdl.X,1)Lsize(Mdl.CodingMatrix,2)

Probabilidades de clase posterior, devueltas como una matriz numérica. es un-por-matriz, donde es el número de observaciones () y es el número de clases únicas ().PosteriornKnsize(Mdl.X,1)Ksize(Mdl.ClassNames,1)

Para solicitar, debe establecer al entrenar el modelo ECOC utilizando.Posterior'FitPosterior',truefitcecoc De lo contrario, el software emite un error.

Más acerca de

contraer todo

Pérdida binaria

A es una función de la puntuación de clase y clasificación que determina qué tan bien un alumno binario clasifica una observación en la clase.pérdida binaria

Supongamos lo siguiente:

  • Mkj es Element (,) de la matriz de diseño de codificación (es decir, el código correspondiente a la clase de aprendizaje binario).kjMkj

  • sj es la puntuación de aprendizaje binario para una observación.j

  • es la función de pérdida binaria.g

  • k^ es la clase pronosticada para la observación.

En, la clase que produce la suma mínima de las pérdidas binarias sobre los estudiantes binarios determina la clase pronosticada de una observación, es decir,decodificación basada en pérdidas[Escalera et al.]

k^=argminkj=1L|mkj|g(mkj,sj).

En, la clase que produce el promedio mínimo de las pérdidas binarias sobre los estudiantes binarios determina la clase pronosticada de una observación, es decir,decodificación ponderada por pérdida[Escalera et al.]

k^=argminkj=1L|mkj|g(mkj,sj)j=1L|mkj|.

sugieren que la decodificación ponderada por pérdida mejora la precisión de la clasificación manteniendo los valores de pérdida para todas las clases en el mismo rango dinámico.Allwein et al.

En esta tabla se resumen las funciones de pérdida admitidas, donde yj es una etiqueta de clase para un alumno binario determinado (en el conjunto {– 1, 1, 0}), sj es la partitura para la observación, y (jgyj,sj).

ValorDescripciónPuntuación de dominio(gyj,sj)
'binodeviance'Desviación binomial(– ∞, ∞)log [1 + exp (– 2yjsj)]/[2log (2)]
'exponential'Exponencial(– ∞, ∞)exp (–yjsj)/2
'hamming'Hamming[0, 1] o (– ∞, ∞)[1 – signo (yjsj)]/2
'hinge'Bisagra(– ∞, ∞)Max (0,1 – yjsj)/2
'linear'Lineal(– ∞, ∞)1 yjsj)/2
'logit'Logística(– ∞, ∞)log [1 + exp (–yjsj)]/[2log (2)]
'quadratic'Cuadrática[0,1]1 yj(2sj – 1)]2/2

El software normaliza las pérdidas binarias de tal forma que la pérdida es de 0,5 cuando yj = 0 y agregados con el promedio de los alumnos binarios.[Allwein et al.]

No confunda la pérdida binaria con la pérdida de clasificación general (especificada por el argumento de par nombre-valor de las funciones de objeto y), que mide qué tan bien se comporta un clasificador ECOC como un todo.'LossFun'lossPredecir

Algoritmos

contraer todo

El software puede estimar las probabilidades posteriores de clase al minimizar la divergencia Kullback-Leibler o mediante la programación cuadrática. Para las siguientes descripciones de los algoritmos de estimación posterior, suponga que:

  • Mkj es el elemento (,) de la matriz de diseño de codificación.kjM

  • es la función indicadora.I

  • p^k es la estimación de probabilidad posterior de clase para la clase de una observación, = 1,...,.kkK

  • Rj es la probabilidad posterior de clase positiva para el aprendizaje binario.j Es decir Rj es la probabilidad de que el alumno binario clasifique una observación en la clase positiva, dados los datos de entrenamiento.j

Estimación posterior utilizando la divergencia Kullback-Leibler

De forma predeterminada, el software minimiza la divergencia de Kullback-Leibler para estimar las probabilidades posteriores de la clase. La divergencia Kullback-Leibler entre las probabilidades posteriores de clase positiva esperada y observada es

Δ(r,r^)=j=1Lwj[rjlogrjr^j+(1rj)log1rj1r^j],

Dónde wj=Sjwi es el peso para el aprendizaje binario.j

  • Sj es el conjunto de índices de observación en el que se entrena el aprendiz binario.j

  • wi es el peso de la observación.i

El software minimiza la divergencia iterativamente. El primer paso es elegir los valores iniciales p^k(0);k=1,...,K para las probabilidades posteriores de la clase.

  • Si no se especifica, el software intenta ambos conjuntos de valores iniciales deterministas descritos a continuación y selecciona el conjunto que minimiza Δ.'NumKLIterations'

    • p^k(0)=1/K;k=1,...,K.

    • p^k(0);k=1,...,K es la solución del sistema

      M01p^(0)=r,

      DóndeM01 es con todos losM Mkj = – 1 reemplazado por 0, y es un vector de las probabilidades posteriores de clase positiva devueltas por los estudiantes binarios.rL[Dietterich et al.] El software utiliza para resolver el sistema.lsqnonneg

  • Si especifica, donde es un número natural, el software hace lo siguiente para elegir el conjunto'NumKLIterations',cc p^k(0);k=1,...,K, y selecciona el conjunto que minimiza Δ.

    • El software intenta ambos conjuntos de valores iniciales deterministas como se describió anteriormente.

    • El software genera aleatoriamente vectores de longitud utilizando, y luego normaliza cada vector para sumar a 1.cKrand

En la iteración, el software completa estos pasos:t

  1. Calcular

    r^j(t)=k=1Kp^k(t)I(mkj=+1)k=1Kp^k(t)I(mkj=+1mkj=1).

  2. Calcule la probabilidad posterior de la siguiente clase usando

    p^k(t+1)=p^k(t)j=1Lwj[rjI(mkj=+1)+(1rj)I(mkj=1)]j=1Lwj[r^j(t)I(mkj=+1)+(1r^j(t))I(mkj=1)].

  3. Normalizar p^k(t+1);k=1,...,K por lo que suman 1.

  4. Compruebe si hay convergencia.

Para obtener más información, consulte y.[Hastie et al.][Zadrozny]

Estimación posterior mediante programación cuadrática

La estimación de probabilidad posterior usando la programación cuadrática requiere una licencia.Optimization Toolbox Para estimar las probabilidades posteriores para una observación usando este método, el software completa estos pasos:

  1. Estimar las probabilidades posteriores de clase positiva, Rj, para los estudiantes binarios = 1,...,.jL

  2. El uso de la relación entre Rj Y p^k Minimizar[Wu et al.]

    j=1L[rjk=1Kp^kI(mkj=1)+(1rj)k=1Kp^kI(mkj=+1)]2

    con respecto a p^k y las restricciones

    0p^k1kp^k=1.

    El software realiza la minimización utilizando.quadprog

Referencias

[1] Allwein, E., R. Schapire, and Y. Singer. “Reducing multiclass to binary: A unifying approach for margin classifiers.” Journal of Machine Learning Research. Vol. 1, 2000, pp. 113–141.

[2] Dietterich, T., and G. Bakiri. “Solving Multiclass Learning Problems Via Error-Correcting Output Codes.” Journal of Artificial Intelligence Research. Vol. 2, 1995, pp. 263–286.

[3] Escalera, S., O. Pujol, and P. Radeva. “On the decoding process in ternary error-correcting output codes.” IEEE Transactions on Pattern Analysis and Machine Intelligence. Vol. 32, Issue 7, 2010, pp. 120–134.

[4] Escalera, S., O. Pujol, and P. Radeva. “Separability of ternary codes for sparse designs of error-correcting output codes.” Pattern Recogn. Vol. 30, Issue 3, 2009, pp. 285–297.

[5] Hastie, T., and R. Tibshirani. “Classification by Pairwise Coupling.” Annals of Statistics. Vol. 26, Issue 2, 1998, pp. 451–471.

[6] Wu, T. F., C. J. Lin, and R. Weng. “Probability Estimates for Multi-Class Classification by Pairwise Coupling.” Journal of Machine Learning Research. Vol. 5, 2004, pp. 975–1005.

[7] Zadrozny, B. “Reducing Multiclass to Binary by Coupling Probability Estimates.” NIPS 2001: Proceedings of Advances in Neural Information Processing Systems 14, 2001, pp. 1041–1048.

Capacidades ampliadas

Introducido en R2014b