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.

crossval

Clase: ClassificationNaiveBayes

Clasificador Bayes ingenuo de validación cruzada

Descripción

ejemplo

CVMdl = crossval(Mdl) Devuelve un clasificador Bayes Ingenuo con particiones () de un clasificador Bayes Ingenuo entrenado ().CVSMdlMdl

De forma predeterminada, utiliza la validación cruzada de 10 veces en los datos de entrenamiento para crear.crossvalCVMdl

ejemplo

CVMdl = crossval(Mdl,Name,Value) Devuelve un clasificador Bayes Ingenuo con particiones con opciones adicionales especificadas por uno o más argumentos de par.Name,Value

Por ejemplo, puede especificar una proporción de muestra de exclusión.

Argumentos de entrada

expandir todo

Un clasificador Bayes Ingenuo completamente entrenado, especificado como un modelo entrenado por.ClassificationNaiveBayesfitcnb

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

Partición de validación cruzada, especificada como el par separado por comas que consta de un objeto de partición creado por.'CVPartition'cvpartitioncvpartition El objeto de partición especifica el tipo de validación cruzada y la indización para los conjuntos de entrenamiento y validación.

Para crear un modelo con validación cruzada, puede usar uno de estos cuatro argumentos de par nombre-valor solamente:,,, o.CVPartitionHoldoutKFoldLeaveout

Ejemplo: Supongamos que crea una partición aleatoria para la validación cruzada de 5 veces en 500 observaciones mediante el uso de.cvp = cvpartition(500,'KFold',5) A continuación, puede especificar el modelo con validación cruzada mediante.'CVPartition',cvp

Fracción de los datos utilizados para la validación de exclusión, especificado como el par separado por comas que consta de y un valor escalar en el intervalo (0,1).'Holdout' Si usted especifica, después el software completa estos pasos:'Holdout',p

  1. Seleccione aleatoriamente y Reserve% de los datos como datos de validación y capacite al modelo con el resto de los datos.p*100

  2. Almacene el modelo compacto y entrenado en la propiedad del modelo con validación cruzada.Trained

Para crear un modelo con validación cruzada, puede usar uno de estos cuatro argumentos de par nombre-valor solamente:,,, o.CVPartitionHoldoutKFoldLeaveout

Ejemplo: 'Holdout',0.1

Tipos de datos: double | single

Número de pliegues que se utilizarán en un modelo con validación cruzada, especificado como el par separado por comas y que consta de un valor entero positivo mayor que 1.'KFold' Si usted especifica, después el software completa estos pasos:'KFold',k

  1. Particionar aleatoriamente los datos en sets.k

  2. Para cada conjunto, Reserve el conjunto como datos de validación y entrene el modelo utilizando el otro k – 1 Establece.

  3. Almacene los modelos compactos y entrenados en las celdas de un vector de celda a-por-1 en la propiedad del modelo validado de forma cruzada.kkTrained

Para crear un modelo con validación cruzada, puede usar uno de estos cuatro argumentos de par nombre-valor solamente:,,, o.CVPartitionHoldoutKFoldLeaveout

Ejemplo: 'KFold',5

Tipos de datos: single | double

Marca de validación cruzada de Leave-One-out, especificada como el par separado por comas que consta de y o.'Leaveout''on''off' Si especifica, a continuación, para cada una de las observaciones (donde está el número de observaciones excluyendo las observaciones faltantes, especificadas en la propiedad del modelo), el software completa estos pasos:'Leaveout','on'nnNumObservations

  1. Reservar la observación como datos de validación, y entrenar el modelo utilizando el otro – 1 observaciones.n

  2. Almacene los modelos compactos y entrenados en las celdas de un vector de celda-por-1 en la propiedad del modelo validado de forma cruzada.nnTrained

Para crear un modelo con validación cruzada, puede usar uno de estos cuatro argumentos de par nombre-valor solamente:,,, o.CVPartitionHoldoutKFoldLeaveout

Ejemplo: 'Leaveout','on'

Argumentos de salida

expandir todo

Clasificador Bayes Ingenuo con validación cruzada, devuelto como modelo.ClassificationPartitionedModel

Ejemplos

expandir todo

Cargue el conjunto de datos.ionosphere

load ionosphere X = X(:,3:end); % Remove first two predictors for stability rng(1);         % For reproducibility

Entrena a un ingenuo clasificador Bayes. Es recomendable definir el orden de la clase. Supongamos que cada predictor es condicionalmente, normalmente distribuido dada su etiqueta.

Mdl = fitcnb(X,Y,'ClassNames',{'b','g'});

es un clasificador entrenado. es la clase negativa y es la clase positiva.MdlClassificationNaiveBayes'b''g'

Cross valida el clasificador mediante la validación cruzada de 10 veces.

CVMdl = crossval(Mdl)
CVMdl =    classreg.learning.partition.ClassificationPartitionedModel     CrossValidatedModel: 'NaiveBayes'          PredictorNames: {1x32 cell}            ResponseName: 'Y'         NumObservations: 351                   KFold: 10               Partition: [1x1 cvpartition]              ClassNames: {'b'  'g'}          ScoreTransform: 'none'     Properties, Methods  
FirstModel = CVMdl.Trained{1}
FirstModel =    classreg.learning.classif.CompactClassificationNaiveBayes               ResponseName: 'Y'      CategoricalPredictors: []                 ClassNames: {'b'  'g'}             ScoreTransform: 'none'          DistributionNames: {1x32 cell}     DistributionParameters: {2x32 cell}     Properties, Methods  

es un clasificador con validación cruzada.CVMdlClassificationPartitionedModel El software:

  1. Divide aleatoriamente los datos en 10 conjuntos de tamaño igual.

  2. Entrena a un ingenuo clasificador Bayes en nueve de los sets.

  3. Repite los pasos 1 y 2 = 10 veces.k Excluye una partición cada vez, y entrena en las otras nueve particiones.

  4. Combina estadísticas de generalización para cada pliegue.

es el primero de los 10 clasificadores entrenados.FirstModel Es un modelo.CompactClassificationNaiveBayes

Puede estimar el error de generalización pasando a.CVMdlkfoldLoss

De forma predeterminada, utiliza la validación cruzada de 10 veces para validar de manera cruzada un clasificador Bayes ingenuo.crossval Tiene varias otras opciones, como especificar un número diferente de pliegues o una proporción de muestra de retención. Este ejemplo muestra cómo especificar una proporción de holdout-sample.

Cargue el conjunto de datos.ionosphere

load ionosphere X = X(:,3:end); % Remove first two predictors for stability rng(1);         % For reproducibility

Entrena a un ingenuo clasificador Bayes. Supongamos que cada predictor es condicionalmente, normalmente distribuido dada su etiqueta. Es recomendable definir el orden de la clase.

Mdl = fitcnb(X,Y,'ClassNames',{'b','g'});

es un clasificador entrenado. es la clase negativa y es la clase positiva.MdlClassificationNaiveBayes'b''g'

Cross valida el clasificador especificando un 30% de muestra de exclusión.

CVMdl = crossval(Mdl,'Holdout',0.30)
CVMdl =    classreg.learning.partition.ClassificationPartitionedModel     CrossValidatedModel: 'NaiveBayes'          PredictorNames: {1x32 cell}            ResponseName: 'Y'         NumObservations: 351                   KFold: 1               Partition: [1x1 cvpartition]              ClassNames: {'b'  'g'}          ScoreTransform: 'none'     Properties, Methods  
TrainedModel = CVMdl.Trained{1}
TrainedModel =    classreg.learning.classif.CompactClassificationNaiveBayes               ResponseName: 'Y'      CategoricalPredictors: []                 ClassNames: {'b'  'g'}             ScoreTransform: 'none'          DistributionNames: {1x32 cell}     DistributionParameters: {2x32 cell}     Properties, Methods  

es un. es un clasificador entrenado utilizando el 70% de los datos.CVMdlClassificationPartitionedModelTrainedModelCompactClassificationNaiveBayes

Calcule el error de generalización.

kfoldLoss(CVMdl)
ans = 0.2571 

El error de clasificación errónea fuera de muestra es aproximadamente 2,6%.

Sugerencias

Evalúe el rendimiento predictivo de los datos con validación cruzada utilizando la función "kfold" y las propiedades de, comoMdlCVMdl kfoldLoss.

Alternativas

En lugar de crear un clasificador Bayes Ingenuo seguido de un clasificador de validación cruzada, cree un clasificador con validaciones cruzadas directamente mediante y especificando cualquiera de estos argumentos de par nombre-valor:,,, o.fitcnb'CrossVal''CVPartition''Holdout''Leaveout''KFold'