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.

testckfold

Compare las precisiones de dos modelos de clasificación mediante la validación cruzada repetida

Descripción

evalúa estadísticamente las precisiones de dos modelos de clasificación al cruzar repetidamente la validación de los dos modelos, determinar las diferencias en la pérdida de clasificación y, a continuación, formular el estadístico de prueba combinando las diferencias de pérdida de clasificación .testckfold Este tipo de prueba es particularmente apropiado cuando el tamaño de la muestra es limitado.

Puede evaluar si las precisiones de los modelos de clasificación son diferentes o si un modelo de clasificación funciona mejor que otro. Las pruebas disponibles incluyen una prueba emparejada de 5 por 2, una prueba emparejada de 5 por 2 y una prueba de validación cruzada repetida de 10 por 10.tFt Para obtener más información, consulte.Las pruebas de validación cruzada repetidas Para acelerar los cálculos, admite la computación paralela (requiere una licencia).testckfoldParallel Computing Toolbox™

ejemplo

h = testckfold(C1,C2,X1,X2) Devuelve la decisión de prueba que resulta de la realización de una prueba de validación cruzada emparejada de 5 por 2.F La hipótesis nula es los modelos de clasificación y tienen la misma precisión en la predicción de las etiquetas de clase verdadera utilizando los datos de predicción y respuesta en las tablas y. = indica que se rechaza la hipótesis nula en el nivel de significancia del 5%.C1C2X1X2h1

testckfold realiza la prueba de validación cruzada aplicando y a todas las variables predictoras en y, respectivamente.C1C2X1X2 La verdadera clase de etiquetas en y debe ser la misma.X1X2 Los nombres de variable de respuesta en,,, y debe ser el mismo.X1X2C1.ResponseNameC2.ResponseName

Para ver ejemplos de formas de comparar modelos, consulte.Consejos

ejemplo

h = testckfold(C1,C2,X1,X2,Y) aplica el modelo de clasificación completo o las plantillas de clasificación y todas las variables predictoras de las tablas o matrices de datos y, respectivamente. es el nombre de la variable de tabla correspondiente a las etiquetas de clase true, o una matriz de etiquetas de clase true.C1C2X1X2Y

ejemplo

h = testckfold(___,Name,Value) utiliza cualquiera de los argumentos de entrada de las sintaxis anteriores y las opciones adicionales especificadas por uno o más argumentos de par.Name,Value Por ejemplo, puede especificar el tipo de hipótesis alternativa, el tipo de prueba o el uso de la computación paralela.

ejemplo

[h,p,e1,e2] = testckfold(___) también devuelve el valor-Value para la prueba de hipótesis () y el respectivo para cada ejecución y pliegue de validación cruzada (y).pplas pérdidas de clasificacióne1e2

Ejemplos

contraer todo

En cada nodo, elige el mejor predictor para dividir utilizando una búsqueda exhaustiva de forma predeterminada.fitctree Alternativamente, puede elegir dividir el predictor que muestra la mayor evidencia de dependencia con la respuesta mediante la realización de pruebas de curvatura. Este ejemplo compara estadísticamente los árboles de clasificación cultivados a través de la búsqueda exhaustiva de las mejores divisiones y cultivadas mediante la realización de pruebas de curvatura con interacción.

Cargue el conjunto de datos.census1994

load census1994.mat rng(1) % For reproducibility

Aumente un árbol de clasificación predeterminado utilizando el conjunto de entrenamiento, que es una tabla.adultdata El nombre de la variable de respuesta es.'salary'

C1 = fitctree(adultdata,'salary')
C1 =    ClassificationTree            PredictorNames: {1x14 cell}              ResponseName: 'salary'     CategoricalPredictors: [2 4 6 7 8 9 10 14]                ClassNames: [<=50K    >50K]            ScoreTransform: 'none'           NumObservations: 32561     Properties, Methods  

es un modelo completo.C1ClassificationTree Su propiedad es. utiliza una búsqueda exhaustiva para encontrar el mejor predictor a partir de la ganancia de división máxima.ResponseName'salary'C1

Hacer crecer otro árbol de clasificación usando el mismo conjunto de datos, pero especificar para encontrar el mejor predictor para dividir usando la prueba de curvatura con interacción.

C2 = fitctree(adultdata,'salary','PredictorSelection','interaction-curvature')
C2 =    ClassificationTree            PredictorNames: {1x14 cell}              ResponseName: 'salary'     CategoricalPredictors: [2 4 6 7 8 9 10 14]                ClassNames: [<=50K    >50K]            ScoreTransform: 'none'           NumObservations: 32561     Properties, Methods  

también es un modelo completo con igual a.C2ClassificationTreeResponseName'salary'

Realice una prueba emparejada de 5 por 2 para comparar las precisiones de los dos modelos usando el conjunto de entrenamiento.F Dado que los nombres de variable de respuesta en los conjuntos de datos y las propiedades son todos iguales, y los datos de respuesta en ambos conjuntos son iguales, puede omitir el suministro de los datos de respuesta.ResponseName

h = testckfold(C1,C2,adultdata,adultdata)
h = logical
   0

indica que no rechace la hipótesis nula y que tenga las mismas precisiones al nivel del 5%.h = 0C1C2

Realice una prueba estadística comparando las tasas de clasificación errónea de los dos modelos utilizando una prueba emparejada de 5 por 2.F

Cargue el conjunto de datos de iris de Fisher.

load fisheriris;

Cree una plantilla de Bayes ingenua y una plantilla de árbol de clasificación utilizando las opciones predeterminadas.

C1 = templateNaiveBayes; C2 = templateTree;

y son objetos de plantilla correspondientes a los Bayes ingenuos y los algoritmos de árbol de clasificación, respectivamente.C1C2

Pruebe si los dos modelos tienen precisiones predictivas iguales. Utilice los mismos Datos predictores para cada modelo. realiza una prueba emparejada de 5 por 2, a dos caras por defecto.testckfoldF

rng(1); % For reproducibility h = testckfold(C1,C2,meas,meas,species)
h = logical
   0

indica que no se rechace la hipótesis nula de que los dos modelos tengan la misma precisión predictiva.h = 0

Realice una prueba estadística para evaluar si un modelo más sencillo tiene mejor precisión que un modelo más complejo mediante una prueba de validación cruzada repetida de 10 por 10.t

Cargue el conjunto de datos de iris de Fisher. Crear una matriz de costes que penalice la clasificación errónea de un iris de setosa dos veces más que clasificar erróneamente un iris virginica como versicolor.

load fisheriris; tabulate(species)
       Value    Count   Percent       setosa       50     33.33%   versicolor       50     33.33%    virginica       50     33.33% 
Cost = [0 2 2;2 0 1;2 1 0]; ClassNames  = {'setosa' 'versicolor' 'virginica'};...     % Specifies the order of the rows and columns in Cost

La distribución empírica de las clases es uniforme y el coste de clasificación está ligeramente desequilibrado.

Cree dos plantillas de ECOC: una que utilice los alumnos binarios de SVM lineales y una que utilice alumnos binarios de SVM equipados con el kernel de RBF.

tSVMLinear = templateSVM('Standardize',true); % Linear SVM by default tSVMRBF = templateSVM('KernelFunction','RBF','Standardize',true); C1 = templateECOC('Learners',tSVMLinear); C2 = templateECOC('Learners',tSVMRBF);

y son objetos de plantilla ECOC. está preparada para SVM lineal. está preparada para SVM con una formación de kernel RBF.C1C2C1C2

Pruebe la hipótesis nula de que el modelo más simple () es a lo más preciso como el modelo más complejo () en términos de costos de clasificación.C1C2 Realice la prueba repetida de validación cruzada de 10 por 10. Solicitud de valores devueltos y costos de clasificación errónea.p

rng(1); % For reproducibility [h,p,e1,e2] = testckfold(C1,C2,meas,meas,species,...     'Alternative','greater','Test','10x10t','Cost',Cost,...     'ClassNames',ClassNames)
h = logical
   0

p = 0.1077 
e1 = 10×10

         0         0         0    0.0667         0    0.0667    0.1333         0    0.1333         0
    0.0667    0.0667         0         0         0         0    0.0667         0    0.0667    0.0667
         0         0         0         0         0    0.0667    0.0667    0.0667    0.0667    0.0667
    0.0667    0.0667         0    0.0667         0    0.0667         0         0    0.0667         0
    0.0667    0.0667    0.0667         0    0.0667    0.0667         0         0         0         0
         0         0    0.1333         0         0    0.0667         0         0    0.0667    0.0667
    0.0667    0.0667         0         0    0.0667         0         0    0.0667         0    0.0667
    0.0667         0    0.0667    0.0667         0    0.1333         0    0.0667         0         0
         0    0.0667    0.1333    0.0667    0.0667         0         0         0         0         0
         0    0.0667    0.0667    0.0667    0.0667         0         0    0.0667         0         0

e2 = 10×10

         0         0         0    0.1333         0    0.0667    0.1333         0    0.2667         0
    0.0667    0.0667         0    0.1333         0         0         0    0.1333    0.1333    0.0667
    0.1333    0.1333         0         0         0    0.0667         0    0.0667    0.0667    0.0667
         0    0.1333         0    0.0667    0.1333    0.1333         0         0    0.0667         0
    0.0667    0.0667    0.0667         0    0.0667    0.1333    0.1333         0         0    0.0667
    0.0667         0    0.0667    0.0667         0    0.0667    0.1333         0    0.0667    0.0667
    0.2000    0.0667         0         0    0.0667         0         0    0.1333         0    0.0667
    0.2000         0         0    0.1333         0    0.1333         0    0.0667         0         0
         0    0.0667    0.0667    0.0667    0.1333         0    0.2000         0         0         0
    0.0667    0.0667         0    0.0667    0.1333         0         0    0.0667    0.1333    0.0667

El valor-Value es ligeramente mayor que 0,10, lo que indica que se mantiene la hipótesis nula de que el modelo más simple es más preciso que el modelo más complejo.p Este resultado es consistente para cualquier nivel de significancia () que sea como máximo 0,10.Alpha

y son matrices de 10 por 10 que contienen costos de clasificación errónea.e1e2 Row corresponde a la ejecución de la validación cruzada repetida.rr La columna corresponde al pliegue de conjunto de pruebas dentro de una ejecución de validación cruzada determinada.kk Por ejemplo, el elemento (2, 4) de es 0,1333.e2 Este valor significa que en la ejecución de validación cruzada 2, cuando el conjunto de pruebas es el pliegue 4, el costo estimado de clasificación errónea del conjunto de pruebas es 0,1333.

Reduzca la complejidad del modelo de clasificación seleccionando un subconjunto de variables predictoras (entidades) de un conjunto más grande. A continuación, compare estadísticamente la precisión entre los dos modelos.

Cargue el conjunto de datos.ionosphere

load ionosphere;

Entrena un conjunto de 100 árboles de clasificación potenciado usando AdaBoostM1 y todo el conjunto de predictores. Inspeccione la medida de importancia para cada predictor.

t = templateTree('MaxNumSplits',1); % Weak-learner template tree object C = fitcensemble(X,Y,'Method','AdaBoostM1','Learners',t); predImp = predictorImportance(C);  figure; bar(predImp); h = gca; h.XTick = 1:2:h.XLim(2); title('Predictor Importances'); xlabel('Predictor'); ylabel('Importance measure');

Identifique los cinco predictores principales en términos de su importancia.

[~,idxSort] = sort(predImp,'descend'); idx5 = idxSort(1:5);

Pruebe si los dos modelos tienen precisiones predictivas iguales. Especifique el conjunto de datos reducido y, a continuación, los Datos predictores completos. Utilice la computación paralela para acelerar los cálculos.

s = RandStream('mlfg6331_64'); Options = statset('UseParallel',true,'Streams',s,'UseSubstreams',true);  [h,p,e1,e2] = testckfold(C,C,X(:,idx5),X,Y,'Options',Options)
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 12). 
h = logical
   0

p = 0.4161 
e1 = 5×2

    0.0686    0.0795
    0.0800    0.0625
    0.0914    0.0568
    0.0400    0.0739
    0.0914    0.0966

e2 = 5×2

    0.0914    0.0625
    0.1257    0.0682
    0.0971    0.0625
    0.0800    0.0909
    0.0914    0.1193

trata los modelos de clasificación entrenados como plantillas, por lo que ignora todos los parámetros ajustados en.testckfoldC Es decir, Cross valida utilizando sólo las opciones especificadas y los Datos predictores para estimar las pérdidas de clasificación fuera de pliegue.testckfoldC

indica que no se rechace la hipótesis nula de que los dos modelos tengan la misma precisión predictiva.h = 0 Este resultado favorece el conjunto más simple.

Argumentos de entrada

contraer todo

Plantilla de modelo de clasificación o modelo de clasificación entrenado, especificado como cualquier objeto de plantilla de modelo de clasificación o objeto de modelo de clasificación entrenado descrito en estas tablas.

Tipo de plantillaDevuelto por
Árbol de clasificacióntemplateTree
El análisis discriminantetemplateDiscriminant
Conjunto (impulsar, embolsado y subespacio aleatorio)templateEnsemble
Códigos de salida de corrección de errores (ECOC), modelo de clasificación multiclasetemplateECOC
Nnk templateKNN
Naive BayestemplateNaiveBayes
Máquina de vectores de soporte (SVM)templateSVM
Tipo de modelo entrenadoObjeto de modeloDevuelto por
Árbol de clasificaciónClassificationTreefitctree
El análisis discriminanteClassificationDiscriminantfitcdiscr
Conjunto de modelos de clasificación en bolsasClassificationBaggedEnsemblefitcensemble
Conjunto de modelos de clasificaciónClassificationEnsemblefitcensemble
El modelo ECOCClassificationECOCfitcecoc
Nnk ClassificationKNNfitcknn
Naive BayesClassificationNaiveBayesfitcnb
SvmClassificationSVMfitcsvm

Para mayor eficacia, proporcione un objeto de plantilla de modelo de clasificación en lugar de un objeto de modelo de clasificación entrenado.

Plantilla de modelo de clasificación o modelo de clasificación entrenado, especificado como cualquier objeto de plantilla de modelo de clasificación o objeto de modelo de clasificación entrenado descrito en estas tablas.

Tipo de plantillaDevuelto por
Árbol de clasificacióntemplateTree
El análisis discriminantetemplateDiscriminant
Conjunto (impulsar, embolsado y subespacio aleatorio)templateEnsemble
Códigos de salida de corrección de errores (ECOC), modelo de clasificación multiclasetemplateECOC
Nnk templateKNN
Naive BayestemplateNaiveBayes
Máquina de vectores de soporte (SVM)templateSVM
Tipo de modelo entrenadoObjeto de modeloDevuelto por
Árbol de clasificaciónClassificationTreefitctree
El análisis discriminanteClassificationDiscriminantfitcdiscr
Conjunto de modelos de clasificación en bolsasClassificationBaggedEnsemblefitcensemble
Conjunto de modelos de clasificaciónClassificationEnsemblefitcensemble
El modelo ECOCClassificationECOCfitcecoc
Nnk ClassificationKNNfitcknn
Naive BayesClassificationNaiveBayesfitcnb
SvmClassificationSVMfitcsvm

Para mayor eficacia, proporcione un objeto de plantilla de modelo de clasificación en lugar de un objeto de modelo de clasificación entrenado.

Datos utilizados para aplicar al primer modelo o plantilla de clasificación completa, especificados como una matriz o tabla numérica.C1

Cada fila de corresponde a una observación, y cada columna corresponde a una variable.X1 testckfold no admite variables de varias columnas ni matrices de celdas que no sean matrices de celdas de vectores de caracteres.

y debe ser del mismo tipo de datos y, debe tener el mismo número de observaciones.X1X2X1X2Y

Si se especifica como una matriz,Y testckfold trata todas las columnas como variables predictoras separadas.X1

Tipos de datos: double | single | table

Datos utilizados para aplicar al segundo modelo o plantilla de clasificación completa, especificados como una matriz o tabla numérica.C2

Cada fila de corresponde a una observación, y cada columna corresponde a una variable.X2 testckfold no admite variables de varias columnas ni matrices de celdas que no sean matrices de celdas de vectores de caracteres.

y debe ser del mismo tipo de datos y, debe tener el mismo número de observaciones.X1X2X1X2Y

Si se especifica como una matriz,Y testckfold trata todas las columnas como variables predictoras separadas.X2

Tipos de datos: double | single | table

Etiquetas de clase verdaderas, especificadas como una matriz categórica, de caracteres o de cadena, un vector lógico o numérico, una matriz de vectores de caracteres o un vector de caracteres o un escalar de cadena.

  • Para un vector de caracteres o un escalar de cadena, y deben ser tablas, sus variables de respuesta deben tener el mismo nombre y valores, y deben ser el nombre de la variable común.X1X2Y Por ejemplo, si y son las variables de respuesta, entonces es y debe ser equivalente.X1.LabelsX2.LabelsY'Labels'X1.LabelsX2.Labels

  • Para todos los demás tipos de datos admitidos, es una matriz de etiquetas de clase verdaderas.Y

    • Si es una matriz de caracteres, cada elemento debe corresponder a una fila de la matriz.Y

    • , debe tener el mismo número de observaciones (filas).X1X2Y

  • Si ambas sentencias son verdaderas, puede omitir el suministro.Y

    • y son tablas que contienen la misma variable de respuesta (valores y nombre).X1X2

    • y son modelos de clasificación completa que contienen propiedades que especifican los nombres de variable de respuesta en y.C1C2ResponseNameX1X2

    Por consiguiente testckfold utiliza la variable de respuesta común en las tablas. Por ejemplo, si las variables de respuesta en las tablas son y, y los valores de y son, entonces usted no tiene que suministrar.X1.LabelsX2.LabelsC1.ResponseNameC2.ResponseName'Labels'Y

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

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 comprobar si el primer conjunto de primeras etiquetas de clase predicha es más preciso que el segundo conjunto, para realizar la prueba de 10 por 10 t y para usar la computación paralela para la validación cruzada.'Alternative','greater','Test','10x10t','Options',statsset('UseParallel',true)

Nivel de significancia de prueba de hipótesis, especificado como el par separado por comas que consta de y un valor escalar en el intervalo (0,1).'Alpha'

Ejemplo: 'Alpha',0.1

Tipos de datos: single | double

Hipótesis alternativa para evaluar, especificada como el par separado por comas que consta de y uno de los valores enumerados en la tabla.'Alternative'

ValorHipótesis alternativa DescripciónLas pruebas admitidas
predeterminado'unequal'Para predecir, el conjunto de predicciones resultantes de aplicada y aplicada para tener precisiones desiguales.YC1X1C2X2Y'5x2F''5x2t''10x10t'
'greater'Para predecir, el conjunto de predicciones resultantes de aplicado a es más preciso de lo que se aplica.YC1X1C2X2 Y'5x2t''10x10t'
'less'Para predecir, el conjunto de predicciones resultantes de aplicado a es menos preciso de lo que se aplica.YC1X1C2X2Y'5x2t''10x10t'

Para obtener más información sobre las pruebas admitidas, consulte.Test

Ejemplo: 'Alternative','greater'

Marque la identificación de los predictores categóricos en los primeros datos del predictor de conjunto de pruebas (), especificados como el par separado por comas que consta de uno de los siguientes:X1'X1CategoricalPredictors'

  • Un vector numérico con índices de a través, donde está el número de columnas de.1ppX1

  • Un vector lógico de longitud, donde una entrada significa que la columna correspondiente de es una variable categórica.ptrueX1

  • , lo que significa que todos los predictores son categóricos.'all'

La especificación es apropiada si:X1CategoricalPredictors

  • Al menos un predictor es categórico y es un árbol de clasificación, un conjunto de árboles de clasificación, un modelo ECOC o un modelo de clasificación Bayes ingenuo.C1

  • Todos los predictores son categóricos y son un modelo de clasificación NN.C1k

Si especifica para cualquier otro caso,X1CategoricalPredictors testckfold produce un error. Por ejemplo, la función no puede entrenar a los alumnos de SVM con predictores categóricos.

El valor predeterminado es, que indica que no hay predictores categóricos.[]

Ejemplo: 'X1CategoricalPredictors','all'

Tipos de datos: single | double | logical | char | string

Marque la identificación de los predictores categóricos en los segundos Datos predictores del conjunto de pruebas (), especificados como el par separado por comas que consta de uno de los siguientes:X2'X2CategoricalPredictors'

  • Un vector numérico con índices de a través, donde está el número de columnas de.1ppX2

  • Un vector lógico de longitud, donde una entrada significa que la columna correspondiente de es una variable categórica.ptrueX2

  • , lo que significa que todos los predictores son categóricos.'all'

La especificación es apropiada si:X2CategoricalPredictors

  • Al menos un predictor es categórico y es un árbol de clasificación, un conjunto de árboles de clasificación, un modelo ECOC o un modelo de clasificación Bayes ingenuo.C2

  • Todos los predictores son categóricos y son un modelo de clasificación NN.C2k

Si especifica para cualquier otro caso,X2CategoricalPredictors testckfold produce un error. Por ejemplo, la función no puede entrenar a los alumnos de SVM con predictores categóricos.

El valor predeterminado es, que indica que no hay predictores categóricos.[]

Ejemplo: 'X2CategoricalPredictors','all'

Tipos de datos: single | double | logical | char | string

Nombres de clase, especificados como el par separado por comas que consta de una matriz categórica, carácter o cadena, Vector lógico o numérico, o matriz de celdas de vectores de caracteres.'ClassNames' Debe establecer utilizando el tipo de datos de.ClassNamesY

Si es una matriz de caracteres, cada elemento debe corresponder a una fila de la matriz.ClassNames

Utilizar para:ClassNames

  • Especifique el orden de cualquier dimensión de argumento de entrada que corresponda al orden de la clase. Por ejemplo, se utiliza para especificar el orden de las dimensiones de.ClassNamesCosto

  • Seleccione un subconjunto de clases para realizar pruebas. Por ejemplo, supongamos que el conjunto de todos los nombres de clase distintos en es.Y{'a','b','c'} Para entrenar y probar modelos utilizando observaciones de clases y solo, especifique.'a''c''ClassNames',{'a','c'}

El valor predeterminado es el conjunto de todos los nombres de clase distintos en.Y

Ejemplo: 'ClassNames',{'b','g'}

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

Coste de clasificación, especificado como el par separado por comas que consta de una matriz cuadrada o una matriz de estructura.'Cost'

  • Si especifica la matriz cuadrada, entonces es el costo de clasificar un punto en la clase si su clase verdadera es.CostoCost(i,j)ji Es decir, las filas corresponden a la clase true y las columnas corresponden a la clase pronosticada. Para especificar el orden de la clase de las filas y columnas correspondientes, especifique además el argumento de par nombre-valor.CostoClassNames

  • Si especifica la estructura, debe tener dos campos:SS

    • , que contiene los nombres de clase como una variable del mismo tipo de datos que.S.ClassNamesY Puede utilizar este campo para especificar el orden de las clases.

    • , que contiene la matriz de costes, con filas y columnas ordenadas como enS.ClassificationCostsS.ClassNames

Para el uso de pruebas sensibles al costo,.testcholdout

Es una práctica recomendada suministrar la misma matriz de costes utilizada para entrenar los modelos de clasificación.

El valor predeterminado es if y if.Cost(i,j) = 1i ~= jCost(i,j) = 0i = j

Ejemplo: 'Cost',[0 1 2 ; 1 0 2; 2 2 0]

Tipos de datos: double | single | struct

Función de pérdida, especificada como el par separado por comas que consta de y,,, o un identificador de función.'LossFun''classiferror''binodeviance''exponential''hinge'

  • La tabla siguiente enumera las funciones de pérdida disponibles.

    ValorFunción de pérdida
    'binodeviance'Desviación binomial
    'classiferror'Error de clasificación
    'exponential'Pérdida exponencial
    'hinge'La pérdida de bisagra

  • Especifique su propia función utilizando la notación de identificador de función.

    Supongamos que es el tamaño de la muestra y hay clases únicas.n = size(X,1)K La función debe tener la firma lossvalue = lossfun(C,S,W,Cost)Dónde:

    • El argumento de salida es un escalar.lossvalue

    • lossfun es el nombre de la función.

    • es una matriz lógica con filas que indican a qué clase pertenece la observación correspondiente.CnK El orden de las columnas corresponde al orden de la clase en el argumento de par nombre-valor.ClassNames

      Construya estableciendo si la observación está en la clase, para cada fila.CC(p,q) = 1pq Establezca todos los demás elementos de la fila en.p0

    • es una matriz numérica de puntuaciones de clasificación.SnK El orden de las columnas corresponde al orden de la clase en el argumento de par nombre-valor. es una matriz de puntuaciones de clasificación.ClassNamesS

    • es un vector numérico de pesos de observación de-por-1.Wn Si pasa, el software normaliza los pesos a sumar.W1

    • es una matriz numérica de los costes de clasificación.CostoKK Por ejemplo, especifica un costo de clasificación correcta y un costo de clasificación errónea.Cost = ones(K) - eye(K)01

    Especifique la función mediante 'LossFun',@lossfun.

Opciones de computación paralela, especificadas como el par separado por comas que consta de una matriz de estructura devuelta por.'Options'statset Estas opciones requieren.Parallel Computing Toolbox testckfold usos y campos.'Streams''UseParallel''UseSubtreams'

Esta tabla resume las opciones disponibles.

OpciónDescripción
'Streams'

Un objeto o matriz de celdas de estos objetos.RandStream Si no se especifica, el software utiliza la secuencia o secuencias predeterminadas.Streams Si especifica, utilice un único objeto excepto cuando se cumplen los siguientes pasos:Streams

  • Tiene una piscina paralela abierta.

  • Es.UseParalleltrue

  • Es.UseSubstreamsfalse

En ese caso, utilice una matriz de celdas del mismo tamaño que el grupo paralelo. Si un pool paralelo no está abierto, después el software intenta abrir uno (dependiendo de sus preferencias), y debe suministrar un solo flujo de números aleatorios.Streams

'UseParallel'Si lo tiene, puede invocar un grupo de trabajadores estableciendo.Parallel Computing Toolbox'UseParallel',true
'UseSubstreams'Se establece en para calcular en paralelo mediante la secuencia especificada por.true'Streams' El valor predeterminado es.false Por ejemplo, establezca un tipo que permita subsecuencias, como o.Streams'mlfg6331_64''mrg32k3a'

Ejemplo: 'Options',statset('UseParallel',true)

Tipos de datos: struct

Probabilidades previas para cada clase, especificadas como el par separado por comas que consta de y, un vector numérico o una estructura.'Prior''empirical''uniform'

Esta tabla resume las opciones disponibles para establecer las probabilidades previas.

ValorDescripción
'empirical'Las probabilidades previas de clase son las frecuencias de clase relativas.Y
'uniform'Todas las probabilidades previas de clase son iguales a 1/, donde está el número de clases.KK
Vector numéricoCada elemento es una clase de probabilidad previa. Especifique el orden mediante el argumento de par nombre-valor.ClassNames El software normaliza los elementos que suman.1
Estructura

Una estructura con dos campos:S

  • contiene los nombres de clase como una variable del mismo tipo que.S.ClassNamesY

  • contiene un vector de las probabilidades previas correspondientes.S.ClassProbs El software normaliza los elementos que suman.1

Ejemplo: 'Prior',struct('ClassNames',{{'setosa','versicolor'}},'ClassProbs',[1,2])

Tipos de datos: char | string | single | double | struct

Prueba para llevar a cabo, especificado como el par separado por comas que consta de uno de los siguientes:,,,.'Test''5x2F''5x2t''10x10t'

ValorDescripciónHipótesis alternativa admitida
predeterminado'5x2F'prueba emparejada de 5 por 2.F Adecuado para pruebas a doble cara solamente.'unequal'
'5x2t'prueba emparejada de 5 por 2t, ,'unequal''less''greater'
'10x10t'prueba repetida de validación cruzada de 10 por 10t, ,'unequal''less''greater'

Para obtener más información sobre las pruebas disponibles, consulte.Las pruebas de validación cruzada repetidas Para obtener más información sobre las hipótesis alternativas admitidas, consulte.Alternative

Ejemplo: 'Test','10x10t'

Nivel de verbosidad, especificado como el par separado por comas que consta de y, o. controla la cantidad de información de diagnóstico que el software muestra en la ventana de comandos durante el entrenamiento de cada pliegue de validación cruzada.'Verbose'012Verbose

En esta tabla se resumen las opciones de nivel de detalle disponibles.

ValorDescripción
0El software no muestra información de diagnóstico.
1El software muestra mensajes de diagnóstico cada vez que implementa una nueva ejecución de validación cruzada.
2El software muestra mensajes de diagnóstico cada vez que implementa una nueva ejecución de validación cruzada, y cada vez que se entrena en un pliegue en particular.

Ejemplo: 'Verbose',1

Tipos de datos: double | single

Ponderaciones de observación, especificadas como el par separado por comas que consta de un vector numérico.'Weights'

El tamaño de debe ser igual al número de filas de.WeightsX1 El software pesa las observaciones en cada fila de con el peso correspondiente en.XWeights

El software normaliza para resumir hasta el valor de la probabilidad anterior en la clase respectiva.Weights

Tipos de datos: double | single

Notas:

  • trata los modelos de clasificación entrenados como plantillas.testckfold Por lo tanto, ignora todos los parámetros ajustados en el modelo. Es decir, Cross valida utilizando sólo las opciones especificadas en el modelo y los Datos predictores.testckfold

  • Las pruebas repetidas de validación cruzada dependen de la suposición de que las estadísticas de prueba son asintóticamente normales bajo la hipótesis nula. Las matrices de costes altamente desequilibradas (por ejemplo, =) y las distribuciones de respuesta altamente discretas (es decir, la mayoría de las observaciones se encuentran en un número reducido de clases) pueden infringir la suposición de normalidad asintótica.Costo[0 100;1 0] Para pruebas de coste-sensible, utilice.testcholdout

  • s, los valores, los vectores de caracteres vacíos (), las cadenas vacías () y los valores indican valores de datos faltantes.NaN<undefined>''""<missing>

    • Para el tratamiento de los valores faltantes en y, vea la página de referencia de la función de entrenamiento de modelo de clasificación adecuada:,,,,,, o.X1X2fitctreefitcdiscrfitcensemblefitcecocfitcknnfitcnbfitcsvm

    • testckfold quita los valores faltantes y las filas correspondientes de y.YX1X2

Argumentos de salida

contraer todo

Resultado de la prueba de hipótesis, devuelto como un valor lógico.

indica el rechazo de la hipótesis nula en el nivel de significancia.h = 1Alpha

indica que no se ha rechazado la hipótesis nula en el nivel de significancia.h = 0Alpha

Tipos de datos: logical

-valor de la prueba, devuelto como un escalar en el intervalo [0,1]. es la probabilidad de que una estadística de prueba aleatoria sea al menos tan extrema como la estadística de prueba observada, dado que la hipótesis nula es verdadera.pp

testckfold estimaciones utilizando la distribución del estadístico de prueba, que varía con el tipo de prueba.p Para obtener más información sobre las estadísticas de prueba, consulte.Las pruebas de validación cruzada repetidas

, devuelta como una matriz numérica.Las pérdidas de clasificación Las filas de corresponden a la ejecución de validación cruzada y las columnas corresponden al pliegue de prueba.e1

testckfold aplica los primeros Datos predictores del conjunto de pruebas () al primer modelo de clasificación () para estimar el primer conjunto de etiquetas de clase.X1C1

resume la precisión del primer conjunto de etiquetas de clase que predice las etiquetas de clase verdaderas () para cada ejecución y pliegue de validación cruzada.e1Y El significado de los elementos depende del tipo de pérdida de clasificación.e1

, devuelta como una matriz numérica.Las pérdidas de clasificación Las filas de corresponden a la ejecución de validación cruzada y las columnas corresponden al pliegue de prueba.e2

testckfold aplica el segundo test-Set predictor Data () al segundo modelo de clasificación () para estimar el segundo conjunto de etiquetas de clase.X2C2

resume la precisión del segundo conjunto de etiquetas de clase que predice las etiquetas de clase verdaderas () para cada ejecución y pliegue de validación cruzada.e2Y El significado de los elementos depende del tipo de pérdida de clasificación.e2

Más acerca de

contraer todo

Las pruebas de validación cruzada repetidas

forman la estadística de prueba para comparar las precisiones de dos modelos de clasificación combinando las diferencias de pérdida de clasificación resultantes de la validación cruzada repetida de los datos.Las pruebas de validación cruzada repetidas Las pruebas de validación cruzada repetidas son útiles cuando el tamaño de la muestra es limitado.

Para realizar una prueba:RK

  1. Divida aleatoriamente (estratificado por clase) los conjuntos de Datos predictores y las etiquetas de clase verdadera en conjuntos, tiempos.KR Cada división se llama a y cada conjunto dentro de una ejecución se llama a.EjecutarDoblar Cada ejecución contiene los conjuntos de datos completos, pero divididos.

  2. Para las corridas = 1 a través, relance estos pasos para = 1 a través de:rRkK

    1. Reserve un pliegue como conjunto de pruebas y capacite a los dos modelos de clasificación utilizando sus respectivos conjuntos de Datos predictores en los restantes – 1 pliegues.kK

    2. Predecir etiquetas de clase utilizando los modelos entrenados y sus respectivos conjuntos de datos de predictor de plegado.k

    3. Calcule la pérdida de clasificación comparando los dos conjuntos de etiquetas estimadas con las etiquetas verdaderas. Denotar ecrk como la pérdida de clasificación cuando el conjunto de pruebas se pliega en la ejecución del modelo de clasificación.krc

    4. Calcule la diferencia entre las pérdidas de clasificación de los dos modelos:

      δ^rk=e1rke2rk.

    Al final de una ejecución, hay pérdidas de clasificación por modelo de clasificación.K

  3. Combine los resultados del paso 2. Para cada = 1 a través de:rR

    • Estimar los promedios dentro de las diferencias y su promedio: δ¯r=1Kk=1Kδ^kr.

    • Estimar el promedio general de las diferencias: δ¯=1KRr=1Rk=1Kδ^rk.

    • Calcule las desviaciones dentro de las diferencias: sr2=1Kk=1K(δ^rkδ¯r)2.

    • Calcule el promedio de las diferencias en el pliegue: s¯2=1Rr=1Rsr2.

    • Calcule la varianza general de la muestra de las diferencias: S2=1KR1r=1Rk=1K(δ^rkδ¯)2.

    Calcule la estadística de prueba. Todas las pruebas admitidas aquí descritas suponen que, enH0, las diferencias estimadas son independientes y se distribuyen aproximadamente normalmente, con una media de 0 y una desviación estándar común finita. Sin embargo, estas pruebas infringen la suposición de independencia y, por lo tanto, las distribuciones de estadísticas de prueba son aproximadas.

    • Para = 2, la prueba es una prueba emparejada.R Las dos pruebas admitidas son emparejadas y de prueba.tF

      • La estadística de prueba para la prueba emparejada est

        tpaired=δ^11s¯2.

        tpaired tiene una distribución con grados de libertad bajo la hipótesis nula.tR

        Para reducir los efectos de la correlación entre las diferencias estimadas, la cantidad δ^11 ocupa el numerador en lugar de δ¯.

        las pruebas emparejadas de 5 por 2 pueden ser ligeramente conservadoras.t[4]

      • La estadística de prueba para la prueba emparejada esF

        Fpaired=1RKr=1Rk=1K(δ^rk)2s¯2.

        Fpaired tiene una distribución y grados de libertad.FRKR

        Una prueba emparejada de 5 por 2 tiene una potencia comparable a la prueba de 5 por 2, pero es más conservadora.Ft[1]

    • Para > 2, la prueba es una prueba repetida de validación cruzada.R El estadístico de prueba es

      tCV=δ¯S/ν+1.

      tCV tiene una distribución con grados de libertad.tν Si las diferencias fueran verdaderamente independientes, entonces = – 1.νRK En este caso, el parámetro grados de libertad debe optimizarse.

      Para una prueba repetida de validación cruzada de 10 por 10, los grados óptimos de libertad entre 8 y 11 (y). utiliza = 10.t[2][3]testckfoldν

La ventaja de las pruebas de validación cruzada repetidas sobre las pruebas emparejadas es que los resultados son más repetibles.[3] La desventaja es que requieren altos recursos computacionales.

Pérdida de clasificación

indicar la precisión de un modelo de clasificación o un conjunto de etiquetas pronosticadas.Las pérdidas de clasificación En general, para una matriz de coste fijo, la precisión de clasificación disminuye a medida que aumenta la pérdida de clasificación.

testckfold Devuelve las pérdidas de clasificación (ver y) bajo la hipótesis alternativa (es decir, las pérdidas de clasificación sin restricciones).e1e2 En las definiciones siguientes:

  • Las pérdidas de clasificación se centran en el primer modelo de clasificación. Las pérdidas de clasificación para el segundo modelo son similares.

  • Ntest es el tamaño de muestra del conjunto de pruebas.

  • () es la función indicadora.Ix Si es una sentencia verdadera, entonces () = 1.xIx De lo contrario, () = 0.Ix

  • p^1j es la asignación de clase prevista del modelo de clasificación 1 para la observación.j

  • yj es la verdadera etiqueta de observación de la clase.j

  • tiene la formaDesviación binomial

    e1=j=1ntestwjlog(1+exp(2yjf(Xj)))j=1ntestwj

    Dónde:

    • yj = 1 para la clase positiva y-1 para la clase negativa.

    • f(Xj) es la puntuación de clasificación.

    La desviación binomial tiene conexiones a la maximización de la función de verosimilitud binomial. Para obtener más información sobre la desviación binomial, consulte.[5]

  • es similar a la desviación binomial y tiene la formaPérdida exponencial

    e1=j=1ntestwjexp(yjf(Xj))j=1ntestwj.

    yj Y f(Xj) tomar los mismos formularios aquí como en la fórmula de desviación binomial.

  • tiene la formaLa pérdida de bisagra

    e1=j=1nwjmax{0,1yjf(Xj)}j=1nwj,

    yj Y f(Xj) tomar los mismos formularios aquí como en la fórmula de desviación binomial.

    La pérdida de bisagra penaliza linealmente para observaciones mal clasificadas y está relacionada con la función objetivo SVM utilizada para la optimización. Para obtener más detalles sobre la pérdida de bisagra, consulte.[5]

  • , o error de clasificación, es un escalar en el intervalo [0,1] que representa la proporción de observaciones mal clasificadas.Tasa de clasificación errónea Es decir, la tasa de clasificación errónea para el primer modelo de clasificación es

    e1=j=1ntestwjI(p^1jyj)j=1ntestwj.

Sugerencias

  • Algunos ejemplos de formas de comparar modelos son:

    • Compare las precisiones de un modelo de clasificación simple y un modelo más complejo pasando el mismo conjunto de Datos predictores.

    • Compare las precisiones de dos modelos diferentes utilizando dos conjuntos diferentes de predictores.

    • Realice varios tipos de selección de características. Por ejemplo, puede comparar la precisión de un modelo entrenado utilizando un conjunto de predictores con la precisión de uno entrenado en un subconjunto o un conjunto diferente de predictores. Puede elegir arbitrariamente el conjunto de predictores o utilizar una técnica de selección de entidades como PCA o selección secuencial de entidades (ver y).pcasequentialfs

  • Si ambas sentencias son verdaderas, puede omitir el suministro.Y

    • y son tablas que contienen la variable de respuesta y utilizan el mismo nombre de variable de respuesta.X1X2

    • y son modelos de clasificación completa que contienen propiedades iguales (p. ej. = ).C1C2ResponseNamestrcmp(C1.ResponseName,C2.ResponseName)1

    Por consiguiente testckfold utiliza la variable de respuesta común en las tablas.

  • Una forma de realizar la selección de características no sensibles a los costos es:

    1. Cree una plantilla de modelo de clasificación que caracterice el primer modelo de clasificación ().C1

    2. Cree una plantilla de modelo de clasificación que caracterice el segundo modelo de clasificación ().C2

    3. Especifique dos conjuntos de Datos predictores. Por ejemplo, especifique como conjunto de predictores completos y como conjunto reducido.X1X2

    4. Entrar.testckfold(C1,C2,X1,X2,Y,'Alternative','less') Si devuelve, entonces hay suficiente evidencia para sugerir que el modelo de clasificación que utiliza menos predictores funciona mejor que el modelo que utiliza el conjunto de predictor completo.testckfold1

    Alternativamente, puede evaluar si hay una diferencia significativa entre las precisiones de los dos modelos. Para realizar esta evaluación, quite la especificación en el paso 4.'Alternative','less'testckfold realiza una prueba bilateral, e indica que no hay suficiente evidencia para sugerir una diferencia en la precisión de los dos modelos.h = 0

  • Las pruebas son apropiadas para la tasa de clasificación errónea, pero puede especificar otras funciones de pérdida (véase).pérdida de clasificaciónLossFun Los supuestos clave son que las pérdidas de clasificación estimadas son independientes y normalmente se distribuyen con la media 0 y la varianza común finita bajo la hipótesis nula bilateral. Las pérdidas de clasificación que no sean la tasa de clasificación errónea pueden infringir esta suposición.

  • Los datos muy discretos, las clases desequilibradas y las matrices de costes altamente desequilibradas pueden infringir la suposición de normalidad de las diferencias de pérdida de clasificación.

Algoritmos

Si especifica que se realice la prueba de validación cruzada repetida 10 por 10, se utilizan 10 grados de libertad para que la distribución encuentre la región crítica y estime el valor-Value.t'Test','10x10t'testckfoldtp Para obtener más información, consulte y.[2][3]

Alternativas

Uso:testcholdout

  • Para conjuntos de pruebas con tamaños de muestra más grandes

  • Para implementar variantes de la prueba McNemar para comparar dos precisiones del modelo de clasificación

  • Para pruebas de coste-sensible utilizando una prueba de Chi-cuadrado o relación de verosimilitud. La prueba de Chi-cuadrado utiliza, que requiere una licencia.quadprogOptimization Toolbox™

Referencias

[1] Alpaydin, E. “Combined 5 x 2 CV F Test for Comparing Supervised Classification Learning Algorithms.” Neural Computation, Vol. 11, No. 8, 1999, pp. 1885–1992.

[2] Bouckaert. R. “Choosing Between Two Learning Algorithms Based on Calibrated Tests.” International Conference on Machine Learning, 2003, pp. 51–58.

[3] Bouckaert, R., and E. Frank. “Evaluating the Replicability of Significance Tests for Comparing Learning Algorithms.” Advances in Knowledge Discovery and Data Mining, 8th Pacific-Asia Conference, 2004, pp. 3–12.

[4] Dietterich, T. “Approximate statistical tests for comparing supervised classification learning algorithms.” Neural Computation, Vol. 10, No. 7, 1998, pp. 1895–1923.

[5] Hastie, T., R. Tibshirani, and J. Friedman. The Elements of Statistical Learning, 2nd Ed. New York: Springer, 2008.

Capacidades ampliadas

Introducido en R2015a