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.

templateECOC

Plantilla de aprendizaje de códigos de salida de corrección de errores

Descripción

ejemplo

t = templateECOC() Devuelve una plantilla de aprendizaje de clasificación de códigos de salida de corrección de errores (ECOC).

Si especifica una plantilla predeterminada, el software utiliza los valores predeterminados para todos los argumentos de entrada durante el entrenamiento.

ejemplo

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

Por ejemplo, puede especificar un diseño de codificación, si se ajustan las probabilidades posteriores o los tipos de alumnos binarios.

Si se muestra en la ventana de comandos, todas las opciones aparecerán vacías (), excepto las 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 utiliza para crear una plantilla ECOC predeterminada.templateECOC

t = templateECOC()
t =  Fit template for classification ECOC.      BinaryLearners: ''             Coding: ''       FitPosterior: []            Options: []     VerbosityLevel: []      NumConcurrent: []            Version: 1             Method: 'ECOC'               Type: 'classification'  

Todas las propiedades del objeto de plantilla están vacías excepto y.MethodType Cuando se pasa a, el software rellena las propiedades vacías con sus respectivos valores predeterminados.ttestckfold Por ejemplo, el software rellena la propiedad con.BinaryLearners'SVM' Para obtener más información sobre otros valores predeterminados, consulte.fitcecoc

es un plan para un estudiante de ECOC.t Al crearlo, no se produce ningún cálculo. Puede pasar a especificar un plan para que un modelo de clasificación ECOC se compare estadísticamente con otro modelo.ttestckfold

Una forma de seleccionar predictores o características es entrenar dos modelos donde se utiliza un subconjunto de los predictores que entrenaron al otro. Compare estadísticamente los rendimientos predictivos de los modelos. Si hay pruebas suficientes de que el modelo entrenado en menos predictores funciona mejor que el modelo entrenado usando más de los predictores, entonces usted puede proceder con un modelo más eficiente.

Cargue el conjunto de datos de iris de Fisher. Trace todas las combinaciones de predictores de 2 dimensiones.

load fisheriris d = size(meas,2); % Number of predictors pairs = combnk(1:d,2);  figure; for j = 1:size(pairs,1);     subplot(3,2,j);     gscatter(meas(:,pairs(j,1)),meas(:,pairs(j,2)),species);     xlabel(sprintf('meas(:,%d)',pairs(j,1)));     ylabel(sprintf('meas(:,%d)',pairs(j,2)));     legend off; end

Basado en la trama de dispersión, y parece que separan bien los grupos.meas(:,3)meas(:,4)

Cree una plantilla ECOC. Especifique si desea utilizar un diseño de codificación uno contra el otro.

t = templateECOC('Coding','onevsall');

De forma predeterminada, el modelo ECOC utiliza alumnos binarios de SVM lineales. Puede elegir otros algoritmos admitidos especificándolos mediante el argumento de par nombre-valor.'Learners'

Pruebe si un modelo ECOC que se acaba de entrenar utilizando los predictores 3 y 4 funciona como máximo, así como un modelo ECOC que se entrena con todos los predictores. Rechazar esta hipótesis nula significa que el modelo ECOC entrenado utilizando los predictores 3 y 4 funciona mejor que el modelo ECOC entrenado usando todos los predictores. Supongo

<math display="block">
<mrow>
<msub>
<mrow>
<mi>C</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
</mrow>
</math>
representa el error de clasificación del modelo ECOC entrenado con predictores 3 y 4 y
<math display="block">
<mrow>
<msub>
<mrow>
<mi>C</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
</mrow>
</math>
representa el error de clasificación del modelo ECOC entrenado utilizando todos los predictores, entonces la prueba es:

<math display="block">
<mrow>
<mtable columnalign="left">
<mtr>
<mtd>
<mrow>
<mrow>
<msub>
<mrow>
<mi>H</mi>
</mrow>
<mrow>
<mn>0</mn>
</mrow>
</msub>
</mrow>
<mo>:</mo>
<mrow>
<msub>
<mrow>
<mi>C</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
</mrow>
<mo></mo>
<mrow>
<msub>
<mrow>
<mi>C</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mrow>
<msub>
<mrow>
<mi>H</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
</mrow>
<mo>:</mo>
<mrow>
<msub>
<mrow>
<mi>C</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
</mrow>
<mo><</mo>
<mrow>
<msub>
<mrow>
<mi>C</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
</mrow>
</mrow>
</mtd>
</mtr>
</mtable>
</mrow>
</math>

De forma predeterminada, realiza una prueba de 5 por 2 veces, que no es adecuada como una prueba de una cola.testckfoldkF Especificar para realizar una prueba de 5 por 2 veces.kt

rng(1); % For reproducibility [h,pValue] = testckfold(t,t,meas(:,pairs(1,:)),meas,species,...     'Alternative','greater','Test','5x2t')
h = logical
   0

pValue = 0.8940 

El indica que no hay suficiente evidencia para sugerir que el modelo entrenado usando predictores 3 y 4 es más preciso que el modelo entrenado usando todos los predictores.h = 0

Argumentos de entrada

contraer todo

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 un diseño de codificación completo ternario, para transformar las puntuaciones en probabilidades posteriores y para cultivar árboles de clasificación para todos los estudiantes binarios.'Coding','ternarycomplete','FitPosterior',true,'Learners','tree'

Nombre de diseño de codificación, especificado como el par separado por comas que consta de una matriz numérica o un valor en esta tabla.'Coding'

ValorNúmero de estudiantes binariosDescripción
Y'allpairs''onevsone'(– 1)/2KKPara cada alumno binario, una clase es positiva, otra es negativa y el software ignora el resto. Este diseño agota todas las combinaciones de asignaciones de pares de clases.
'binarycomplete'2(K1)1Este diseño divide las clases en todas las combinaciones binarias y no ignora ninguna clase. Para cada alumno binario, todas las asignaciones de clase son y con al menos una clase positiva y negativa en la asignación.-11
'denserandom'Aleatorio, pero aproximadamente 10 log2KPara cada alumno binario, el software asigna aleatoriamente clases en clases positivas o negativas, con al menos uno de cada tipo. Para obtener más información, consulte.Matrices de diseño de codificación aleatoria
'onevsall'KPara cada alumno binario, una clase es positiva y el resto es negativo. Este diseño agota todas las combinaciones de asignaciones de clase positivas.
'ordinal'– 1KPara el primer aprendizaje binario, la primera clase es negativa y el resto es positivo. Para el segundo aprendizaje binario, las dos primeras clases son negativas, el resto es positivo, y así sucesivamente.
'sparserandom'Aleatorio, pero aproximadamente 15 log2KPara cada alumno binario, el software asigna aleatoriamente clases como positivas o negativas con la probabilidad 0,25 para cada uno, y omite las clases con la probabilidad 0,5. Para obtener más información, consulte.Matrices de diseño de codificación aleatoria
'ternarycomplete'(3K2(K+1)+1)/2Este diseño divide las clases en todas las combinaciones ternarias. Todas las asignaciones de clase son, y con al menos una clase positiva y una negativa en la asignación.0-11

También puede especificar un diseño de codificación mediante una matriz de codificación personalizada. La matriz de codificación personalizada es a-by-Matrix.KL Cada fila corresponde a una clase y cada columna corresponde a un alumno binario. El orden de la clase (filas) corresponde al orden en.ClassNames Componga la matriz siguiendo estas pautas:

  • Cada elemento de la matriz de codificación personalizada debe ser, o, y el valor debe corresponder a una asignación de clase dicottóloga.-101 Esta tabla describe el significado de, es decir, la clase que el alumno asigna a las observaciones de la clase.Coding(i,j)ji

    ValorAsignación de clase dicottóloga
    –1El alumno asigna observaciones en clase a una clase negativa.ji
    0Antes del entrenamiento, el alumno elimina las observaciones de la clase del conjunto de datos.ji
    1El alumno asigna observaciones en clase a una clase positiva.ji

  • Cada columna debe contener al menos una o.-11

  • Para todos los índices de columna, tal que ≠, no puede ser igual y no puede ser igual.ijijCoding(:,i)Coding(:,j)Coding(:,i)-Coding(:,j)

  • Todas las filas de la matriz de codificación personalizada deben ser diferentes.

Para obtener más detalles sobre la forma de matrices de diseño de codificación personalizadas, consulte.Matrices de diseño de codificación personalizada

Ejemplo: 'Coding','ternarycomplete'

Tipos de datos: char | string | double | single | int16 | int32 | int64 | int8

Indicador que indica si se transformarán las puntuaciones en probabilidades posteriores, especificadas como el par separado por comas que consta de y a () o ().'FitPosterior'true1false0

Si es así, el software transforma las puntuaciones de clasificación de los alumnos binarios en probabilidades posteriores.FitPosteriortrue Puede obtener probabilidades posteriores mediante kfoldPredict, predictO resubPredict.

no admite la adaptación de probabilidades posteriores si:fitcecoc

  • El método del conjunto es,,,, o.AdaBoostM2LPBoostRUSBoostRobustBoostTotalBoost

  • Los aprendientes binarios () son modelos de clasificación lineal o kernel que implementan SVM.Learners Para obtener probabilidades posteriores de modelos de clasificación de kernel o lineales, implemente la regresión logística en su lugar.

Ejemplo: 'FitPosterior',true

Tipos de datos: logical

Plantillas de aprendizaje binario, especificadas como el par separado por comas que consta de un vector de caracteres, un escalar de cadena, un objeto de plantilla o un vector de celda de objetos de plantilla.'Learners' En concreto, puede especificar clasificadores binarios como SVM y los conjuntos que utilizan, y, para resolver problemas de varias clases.GentleBoostLogitBoostRobustBoost Sin embargo, también admite modelos multiclase como clasificadores binarios.fitcecoc

  • Si es un vector de caracteres o un escalar de cadena, el software entrena cada alumno binario utilizando los valores predeterminados del algoritmo especificado.Learners Esta tabla resume los algoritmos disponibles.

    ValorDescripción
    'discriminant'Análisis discriminante. Para ver las opciones predeterminadas, consulte.templateDiscriminant
    'kernel'Modelo de clasificación de kernel. Para ver las opciones predeterminadas, consulte.templateKernel
    'knn'-vecinos más cercanos.k Para ver las opciones predeterminadas, consulte.templateKNN
    'linear'Modelo de clasificación lineal. Para ver las opciones predeterminadas, consulte.templateLinear
    'naivebayes'Bayes Naive. Para ver las opciones predeterminadas, consulte.templateNaiveBayes
    'svm'Svm. Para ver las opciones predeterminadas, consulte.templateSVM
    'tree'Árboles de clasificación. Para ver las opciones predeterminadas, consulte.templateTree

  • Si es un objeto de plantilla, cada alumno binario entrena según las opciones almacenadas.Learners Puede crear un objeto de plantilla utilizando:

  • Si es un vector de celda de objetos de plantilla, entonces:Learners

    • Cell se corresponde con el aprendizaje binario (en otras palabras, la columna de la matriz de diseño de codificación), y el vector de celda debe tener longitud. es el número de columnas de la matriz de diseño de codificación.jjjLL Para obtener más información, consulte.Coding

    • Para usar una de las funciones de pérdida integradas para la predicción, todos los alumnos binarios deben devolver una puntuación en el mismo intervalo. Por ejemplo, no puede incluir estudiantes binarios de SVM predeterminados con estudiantes binarios de Bayes ingenuos por defecto. El primero devuelve una puntuación en el rango (-∞, ∞), y el último devuelve una probabilidad posterior como una puntuación. De lo contrario, debe proporcionar una pérdida personalizada como un identificador de función para funciones como predict Y loss.

    • No puede especificar plantillas de aprendizaje de modelo de clasificación lineal con ninguna otra plantilla.

    • De forma similar, no puede especificar plantillas de aprendizaje de modelo de clasificación de kernel con ninguna otra plantilla.

De forma predeterminada, el software entrena a los alumnos mediante plantillas de SVM predeterminadas.

Ejemplo: 'Learners','tree'

Argumentos de salida

contraer todo

Plantilla de clasificación ECOC, devuelta como un objeto de plantilla. Pase a para especificar cómo crear un clasificador ECOC cuyo rendimiento predictivo desea comparar con otro clasificador.ttestckfold

Si se visualiza 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.

Introducido en R2015a