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.

kfoldPredict

Clasifique las observaciones en el modelo ECOC con validación cruzada

Descripción

ejemplo

label = kfoldPredict(CVMdl) Devuelve las etiquetas de clase predichas por el modelo ECOC validado mediante validación cruzada ().ClassificationPartitionedECOCCVMdl Para cada pliegue, predice las etiquetas de clase para las observaciones que mantiene durante el entrenamiento. contiene ambos conjuntos de observaciones.kfoldPredictCVMdl.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 = kfoldPredict(CVMdl,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] = kfoldPredict(___) Además devuelve valores negados de la pérdida binaria promedio por clase () para las observaciones de pliegue de validación y las puntuaciones de clase positiva () para las observaciones de pliegue de validación clasificadas por cada alumno binario, utilizando cualquiera de las combinaciones de argumentos de entrada en el Sintaxis previa.NegLossPBScore

Si la matriz de codificación varía entre pliegues (es decir, el esquema de codificación es o), entonces está vacío ().sparserandomdenserandomPBScore[]

ejemplo

[label,NegLoss,PBScore,Posterior] = kfoldPredict(___) Además devuelve estimaciones de probabilidad de clase posterior para observaciones de pliegue de validación ().Posterior

Para obtener las probabilidades de clase posterior, debe establecer al entrenar el modelo ECOC validado mediante la Cruz.'FitPosterior',1fitcecoc De lo contrario, produce un error.kfoldPredict

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); rng(1); % For reproducibility

Entrenar y validar de forma cruzada un modelo ECOC utilizando clasificadores binarios de máquinas de vectores de soporte (SVM). Estandarice los Datos predictores mediante una plantilla SVM y especifique el orden de la clase.

t = templateSVM('Standardize',1); CVMdl = fitcecoc(X,Y,'CrossVal','on','Learners',t,'ClassNames',classOrder);

es un modelo.CVMdlClassificationPartitionedECOC De forma predeterminada, el software implementa la validación cruzada de 10 veces. Puede especificar un número diferente de pliegues mediante el argumento de par nombre-valor.'KFold'

Predecir las etiquetas de plegado de validación. Imprima un subconjunto aleatorio de etiquetas verdaderas y predichas.

labels = kfoldPredict(CVMdl); idx = randsample(numel(labels),10); table(Y(idx),labels(idx),...     'VariableNames',{'TrueLabels','PredictedLabels'})
ans=10×2 table
    TrueLabels    PredictedLabels
    __________    _______________

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

etiqueta correctamente las observaciones de pliegue de validación con índices.CVMdlidx

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 K = numel(classOrder);  % Number of classes rng(1); % For reproducibility

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

t = templateSVM('Standardize',1); CVMdl = fitcecoc(X,Y,'CrossVal','on','Learners',t,'ClassNames',classOrder);

es un modelo.CVMdlClassificationPartitionedECOC De forma predeterminada, el software implementa la validación cruzada de 10 veces. Puede especificar un número diferente de pliegues mediante el argumento de par nombre-valor.'KFold'

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:

  • Asigna 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ónMs

  • Utiliza la pérdida lineal

  • Agrega la pérdida binaria del alumno mediante 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®. Alternativamente, 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 de validación cruzada 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 de pliegue de validación.

[label,NegLoss] = kfoldPredict(CVMdl,'BinaryLoss',customBL);  idx = randsample(numel(label),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.37141       2.1292      -4.0006
    versicolor      versicolor      -1.2167       0.3669     -0.65017
    setosa          versicolor      0.23927         2.08      -3.8193
    virginica       virginica       -1.9154     -0.19947       0.6149
    versicolor      versicolor      -1.3746      0.45535     -0.58076
    setosa          versicolor      0.20061       2.2774      -3.9781
    virginica       versicolor      -1.4928     0.090689    -0.097935
    virginica       virginica       -1.7669     -0.13464       0.4015
    setosa          versicolor      0.19999       1.9113      -3.6113
    setosa          versicolor      0.16108       1.9684      -3.6295

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.

Cargue el conjunto de datos de iris de Fisher. Utilice las cotas de pétalo como Datos predictores.X Especifique los datos de respuesta y el orden de las clases en.YY

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

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

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

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

Entrenar y validar de forma cruzada un clasificador ECOC utilizando la plantilla SVM. Transforme las puntuaciones de clasificación en probabilidades posteriores de clase (devueltas por) mediante el argumento de par nombre-valor.kfoldPredict'FitPosterior' Especifique el orden de la clase.

CVMdl = fitcecoc(X,Y,'Learners',t,'CrossVal','on','FitPosterior',true,...     'ClassNames',classOrder);

es un modelo.CVMdlClassificationPartitionedECOC De forma predeterminada, el software utiliza la validación cruzada de 10 veces.

Predecir las probabilidades posteriores de la clase de doble validación. Utilice 10 valores iniciales aleatorios para el algoritmo Kullback-Leibler.

[label,~,~,Posterior] = kfoldPredict(CVMdl,'NumKLInitializations',10);

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 calculan las probabilidades posteriores, la función de pérdida binaria es.quadratic

Muestra un conjunto aleatorio de resultados.

idx = randsample(size(X,1),10); CVMdl.ClassNames
ans = 3x1 categorical array
     setosa 
     versicolor 
     virginica 

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

    versicolor    versicolor     0.0086394       0.98243     0.0089291
    versicolor    virginica     2.2197e-14       0.12447       0.87553
    setosa        setosa             0.999    0.00022837    0.00076884
    versicolor    versicolor    2.2194e-14       0.98916      0.010839
    virginica     virginica       0.012318      0.012925       0.97476
    virginica     virginica      0.0015571     0.0015638       0.99688
    virginica     virginica      0.0042894     0.0043555       0.99136
    setosa        setosa             0.999    0.00028329    0.00071382
    virginica     virginica      0.0094641     0.0098145       0.98072
    setosa        setosa             0.999    0.00013562    0.00086192

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

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

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% 
n = numel(Y); K = numel(unique(Y));

Varias clases no están representadas en los datos, y muchas de las 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 las opciones están vacías ().[] El software utiliza los valores predeterminados para todas las opciones 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 y validar de forma cruzada un modelo ECOC mediante computación paralela. Ajuste las probabilidades posteriores (devueltas por).kfoldPredict

pool = parpool;                      % Invokes workers
Starting parallel pool (parpool) using the 'local' profile ... connected to 6 workers. 
options = statset('UseParallel',1); CVMdl = fitcecoc(X,Y,'Learner',t,'Options',options,'Coding',Coding,...     'FitPosterior',1,'CrossVal','on');
Warning: One or more folds do not contain points from all the groups. 

es un modelo.CVMdlClassificationPartitionedECOC De forma predeterminada, el software implementa la validación cruzada de 10 veces. Puede especificar un número diferente de pliegues mediante el argumento de par nombre-valor.'KFold'

El grupo invoca a seis trabajadores, aunque el número de trabajadores puede variar entre los sistemas. Dado que algunas clases tienen baja frecuencia relativa, es muy probable que uno o más pliegues no contengan observaciones de todas las clases.

Estimar las probabilidades posteriores, y mostrar la probabilidad posterior de ser clasificado como no tener arritmia (clase 1) dados los datos para un conjunto aleatorio de observaciones de pliegue de validación.

[~,~,~,posterior] = kfoldPredict(CVMdl,'Options',options); idx = randsample(n,10); table(idx,Y(idx),posterior(idx,1),...     'VariableNames',{'OOFSampleIndex','TrueLabel','PosteriorNoArrhythmia'})
ans=10×3 table
    OOFSampleIndex    TrueLabel    PosteriorNoArrhythmia
    ______________    _________    _____________________

         171             1                0.33654       
         221             1                0.85135       
          72             16                0.9174       
           3             10              0.025649       
         202             1                 0.8438       
         243             1                 0.9435       
          18             1                0.81198       
          49             6               0.090154       
         234             1                0.61625       
         315             1                0.97187       

Argumentos de entrada

contraer todo

Modelo ECOC validado de forma cruzada, especificado como modelo.ClassificationPartitionedECOC Puede crear un modelo de dos maneras:ClassificationPartitionedECOC

  • Pase un modelo de ECOC entrenado () a.ClassificationECOCcrossval

  • Entrenar un modelo ECOC utilizando y especificar cualquiera de estos argumentos de par nombre-valor de validación cruzada:,,,, o.fitcecoc'CrossVal''CVPartition''Holdout''KFold''Leaveout'

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 estimar las probabilidades posteriores de varias clases resolviendo un problema de mínimos cuadrados utilizando la programación cuadrática.kfoldPredict(CVMdl,'PosteriorMethod','qp')

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 y el mismo número de filas que.EtiquetaCVMdl.Y

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

Pérdidas binarias promedio negadas, 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 ().NegLossnKnsize(CVMdl.X,1)Ksize(CVMdl.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(CVMdl.X,1)Lsize(CVMdl.CodingMatrix,2)

Si la matriz de codificación varía entre pliegues (es decir, el esquema de codificación es o), entonces está vacío ().sparserandomdenserandomPBScore[]

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(CVMdl.X,1)Ksize(CVMdl.ClassNames,1)

Debe establecer al entrenar el modelo ECOC validado mediante la Cruz con el fin de solicitar.'FitPosterior',1fitcecocPosterior 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