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.

ClassificationPartitionedKernelECOC

Modelo de códigos de salida de corrección de errores del kernel (ECOC) con validación cruzada para la clasificación multiclase

Descripción

es un modelo de códigos de salida de corrección de errores (ECOC) compuesto por modelos de clasificación de kernel, formados en pliegues con validación cruzada.ClassificationPartitionedKernelECOC Estimar la calidad de la clasificación mediante la validación cruzada utilizando una o más funciones "kfold":,,, y.kfoldPredictkfoldLosskfoldMarginkfoldEdge

Cada método "kfold" utiliza modelos formados en observaciones de pliegue (en pliegue) de formación para predecir la respuesta para las observaciones de la validación (no se pliegan). Por ejemplo, supongamos que se validan de una validación cruzada con cinco pliegues. En este caso, el software asigna aleatoriamente cada observación en cinco grupos de igual tamaño (aproximadamente). El contiene cuatro de los grupos (es decir, aproximadamente 4/5 de los datos) y el contiene el otro grupo (es decir, aproximadamente 1/5 de los datos).pliegue de entrenamientopliegue de validación En este caso, la validación cruzada procede de la siguiente manera:

  1. El software entrena el primer modelo (almacenado en) mediante el uso de las observaciones en los últimos cuatro grupos y reserva las observaciones en el primer grupo para la validación.CVMdl.Trained{1}

  2. El software entrena el segundo modelo (almacenado en) utilizando las observaciones del primer grupo y los tres últimos grupos.CVMdl.Trained{2} El software reserva las observaciones en el segundo grupo para su validación.

  3. El software procede de manera similar para los modelos tercero, cuarto y quinto.

Si valida mediante el uso, el software calcula las predicciones para las observaciones en grupo mediante el modelo TH.kfoldPredictii En Resumen, el software estima una respuesta para cada observación mediante el uso del modelo entrenado sin esa observación.

Nota

los objetos de modelo no almacenan el conjunto de Datos predictores.ClassificationPartitionedKernelECOC

Creación

Puede crear un modelo entrenando un modelo ECOC utilizando y especificando estos argumentos de par nombre-valor:ClassificationPartitionedKernelECOCfitcecoc

  • : Establezca el valor en un objeto de plantilla devuelto por o una matriz de celdas de dichos objetos de plantilla.'Learners''kernel'templateKernel

  • Uno de los argumentos,,, o.'CrossVal''CVPartition''Holdout''KFold''Leaveout'

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

Propiedades

expandir todo

Propiedades de validación cruzada

Esta propiedad es de solo lectura.

Nombre de modelo validado de forma cruzada, especificado como vector de caracteres.

Por ejemplo, especifica un modelo ECOC de kernel validado con validación cruzada.'KernelECOC'

Tipos de datos: char

Esta propiedad es de solo lectura.

Número de pliegues con validación cruzada, especificado como un escalar entero positivo.

Tipos de datos: double

Esta propiedad es de solo lectura.

Valores de parámetro de validación cruzada, especificados como un objeto. Los valores de parámetro corresponden a los valores de los argumentos de par nombre-valor utilizados para validar el clasificador ECOC. no contiene parámetros estimados.ModelParameters

Puede acceder a las propiedades del uso de notación de puntos.ModelParameters

Esta propiedad es de solo lectura.

Número de observaciones en los datos de entrenamiento, especificado como un escalar numérico positivo.

Tipos de datos: double

Esta propiedad es de solo lectura.

Partición de datos que indica cómo el software divide los datos en pliegues de validación cruzada, especificados como un modelo.cvpartition

Esta propiedad es de solo lectura.

Clasificadores compactos entrenados en pliegues de validación cruzada, especificados como una matriz de celdas de modelos. tiene células, donde está el número de pliegues.CompactClassificationECOCTrainedkk

Tipos de datos: cell

Esta propiedad es de solo lectura.

Ponderaciones de observación utilizadas para validar de forma cruzada el modelo, especificado como un vector numérico. tiene elementos.WNumObservations

El software normaliza las ponderaciones utilizadas para la formación.nansum(W)1

Tipos de datos: single | double

Esta propiedad es de solo lectura.

Etiquetas de clase observadas utilizadas para validar de forma cruzada el modelo, especificado como una matriz categórica o de caracteres, Vector lógico o numérico, o matriz de celdas de vectores de caracteres. tiene elementos y tiene el mismo tipo de datos que el argumento de entrada que se pasa a la validación cruzada del modelo.YNumObservationsYfitcecoc (The software treats string arrays as cell arrays of character vectors.)

Cada fila de representa la clasificación observada de la fila correspondiente de.YX

Tipos de datos: categorical | char | logical | single | double | cell

ECOC Properties

Esta propiedad es de solo lectura.

Función de pérdida binaria del alumno, especificada como un vector de caracteres que representa el nombre de la función de pérdida.

De forma predeterminada, si todos los alumnos binarios son modelos de clasificación de kernel que usan SVM, entonces lo es.BinaryLoss'hinge' Si todos los alumnos binarios son modelos de clasificación de kernel que utilizan regresión logística, entonces lo es.BinaryLoss'quadratic' Para aumentar potencialmente la precisión, especifique una función de pérdida binaria distinta de la predeterminada durante un cálculo de predicción o pérdida mediante el argumento de par nombre-valor de o.'BinaryLoss'kfoldPredictkfoldLoss

Tipos de datos: char

Esta propiedad es de solo lectura.

Etiquetas de clase de alumno binarias, especificadas como una matriz numérica o.[]

  • Si la matriz de codificación es la misma en todos los pliegues, entonces es una-por-matriz, donde es el número de estudiantes binarios ().BinaryYNumObservationsLLsize(CodingMatrix,2)

    Los elementos de are,, o, y los valores corresponden a asignaciones de clase dicottomosas.BinaryY–101 En esta tabla se describe cómo el alumno asigna la observación a una clase dicottóloga correspondiente al valor de.jkBinaryY(k,j)

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

  • Si la matriz de codificación varía entre pliegues, entonces está vacía ().BinaryY[]

Tipos de datos: double

Esta propiedad es de solo lectura.

Códigos que especifican asignaciones de clases para los alumnos binarios, especificados como una matriz numérica o.[]

  • Si la matriz de codificación es la misma en todos los pliegues, entonces es una-por-matriz, donde es el número de clases y es el número de estudiantes binarios.CodingMatrixKLKL

    Los elementos de are,, o, y los valores corresponden a asignaciones de clase dicottomosas.CodingMatrix–101 En esta tabla se describe cómo el alumno asigna observaciones en clase a una clase dicottóloga correspondiente al valor de.jiCodingMatrix(i,j)

    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

  • Si la matriz de codificación varía entre pliegues, entonces está vacía ().CodingMatrix[] Puede obtener la matriz de codificación para cada pliegue utilizando la propiedad.Trained Por ejemplo, es la matriz codificadora en el primer pliegue del modelo ECOC validado en cruz.CVMdl.Trained{1}.CodingMatrixCVMdl

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

Otras propiedades de clasificación

Esta propiedad es de solo lectura.

Índices predictores categóricos, especificados como un valor numérico vacío. En general, contiene valores de índice correspondientes a las columnas de los datos del predictor que contienen predictores categóricos.CategoricalPredictors Dado que los modelos solo se pueden entrenar con Datos predictores numéricos, esta propiedad está vacía ().ClassificationKernel[]

Esta propiedad es de solo lectura.

Etiquetas de clase únicas utilizadas en el entrenamiento, especificadas 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 la propiedad de etiquetas de clase observada y determina el orden de la clase.ClassNamesY

Tipos de datos: categorical | char | logical | single | double | cell

Esta propiedad es de solo lectura.

Costos de clasificación errónea, especificados como una matriz numérica cuadrada. tiene filas y columnas, donde está el número de clases.CostoKK

es el costo de clasificar un punto en la clase si su clase verdadera es.Cost(i,j)ji El orden de las filas y columnas corresponde al orden de las clases en.CostoClassNames

Tipos de datos: double

Esta propiedad es de solo lectura.

Los nombres predictores en orden de su aparición en los Datos predictores, especificados como una matriz de celdas de vectores de caracteres del formulario.X{'x1','x2',...} La longitud de es igual al número de columnas en.PredictorNamesX

Tipos de datos: cell

Esta propiedad es de solo lectura.

Probabilidades de clase anteriores, especificadas como un vector numérico. tiene tantos elementos como clases, y el orden de los elementos corresponde a los elementos de.PriorClassNamesClassNames

Tipos de datos: double

Esta propiedad es de solo lectura.

Nombre de variable de respuesta, especificado como.'Y' Dado que los modelos no se pueden entrenar en datos tabulares, esta propiedad es siempre.ClassificationKernel'Y'

Tipos de datos: char

Función de transformación de puntuación para aplicar a las puntuaciones previstas, especificadas como un nombre de función o un identificador de función.

Para un modelo de clasificación de kernel y antes de la transformación de puntuación, la puntuación de clasificación pronosticada para la observación (vector de fila) esMdlx f(x)=T(x)β+b.

  • T(·) es una transformación de una observación para la expansión de características.

  • es el vector de columna estimado de los coeficientes.β

  • es el sesgo escalar estimado.b

Para cambiar la función de transformación de puntuación aCVMdl function, por ejemplo, utilice la notación de puntos.

  • Para una función incorporada, ingrese este código y reemplace function con un valor de la tabla.

    CVMdl.ScoreTransform = 'function';

    ValorDescripción
    'doublelogit'1/(1 +e–2x)
    'invlogit'log (/(1 –))xx
    'ismax'Establece la puntuación de la clase con la puntuación más grande y establece las puntuaciones de todas las demás clases para10
    'logit'1/(1 +ex)
    O'none''identity'(sin transformación)x
    'sign'– 1 para < 0 0 para = 0 1 para > 0x
    x
    x
    'symmetric'2 – 1x
    'symmetricismax'Establece la puntuación de la clase con la puntuación más grande y establece las puntuaciones de todas las demás clases para1–1
    'symmetriclogit'2/(1 +ex) – 1

  • Para una función o una función que defina, introduzca su manejador de funciones.MATLAB®

    CVMdl.ScoreTransform = @function;

    function debe aceptar una matriz de las puntuaciones originales para cada clase y, a continuación, devolver una matriz del mismo tamaño que representa las puntuaciones transformadas para cada clase.

Tipos de datos: char | function_handle

Funciones del objeto

kfoldEdgeBorde de clasificación para el modelo ECOC del kernel validado con validación cruzada
kfoldLossPérdida de clasificación para el modelo ECOC del kernel validado con validación cruzada
kfoldMarginMárgenes de clasificación para el modelo ECOC del núcleo validado con validación cruzada
kfoldPredictClasifique las observaciones en el modelo ECOC del núcleo validado con validación cruzada

Ejemplos

contraer todo

Cree un modelo de clasificación ECOC de kernel multiclase validado con validación cruzada.fitcecoc

Cargue el conjunto de datos de iris de Fisher. contiene mediciones de flores, y contiene los nombres de las especies de flores.XY

load fisheriris X = meas; Y = species;

Valide de forma cruzada un modelo de clasificación ECOC de kernel multiclase que pueda identificar las especies de una flor basándose en las mediciones de la flor.

rng(1); % For reproducibility CVMdl = fitcecoc(X,Y,'Learners','kernel','CrossVal','on')
CVMdl =    classreg.learning.partition.ClassificationPartitionedKernelECOC     CrossValidatedModel: 'KernelECOC'            ResponseName: 'Y'         NumObservations: 150                   KFold: 10               Partition: [1x1 cvpartition]              ClassNames: {'setosa'  'versicolor'  'virginica'}          ScoreTransform: 'none'     Properties, Methods  

es un modelo con validación cruzada. implementa la validación cruzada de 10 veces de forma predeterminada.CVMdlClassificationPartitionedKernelECOCfitcecoc Por lo tanto, contiene un array de celdas de 10 por 1 de diez modelos, uno para cada pliegue.CVMdl.TrainedCompactClassificationECOC Cada modelo compacto de ECOC se compone de modelos de clasificación de kernel binarios.

Calcule el error de clasificación pasando a.CVMdlkfoldLoss

error = kfoldLoss(CVMdl)
error = 0.0333 

El error de clasificación Estimado es de aproximadamente un 3% de observaciones mal clasificadas.

Para cambiar las opciones predeterminadas al entrenar modelos de ECOC compuestos de modelos de clasificación de kernel, cree una plantilla de modelo de clasificación de kernel utilizando y, a continuación, pase la plantilla a.templateKernelfitcecoc

Introducido en R2018b