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.

ClassificationPartitionedModel

Paquete: classreg.learning.partition

Modelo de clasificación de validación cruzada

Descripción

es un conjunto de modelos de clasificación formados en pliegues con validación cruzada.ClassificationPartitionedModel Estimar la calidad de la clasificación mediante validación cruzada utilizando uno o más métodos "kfold": kfoldPredict, kfoldLoss, kfoldMargin, kfoldEdgeY kfoldfun.

Cada método "kfold" utiliza modelos formados en observaciones en pliegue para predecir la respuesta para las observaciones fuera de pliegue. Por ejemplo, supongamos que se cruza la validación mediante cinco pliegues. En este caso, el software asigna aleatoriamente cada observación en cinco grupos aproximadamente del mismo tamaño. 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 prueba En este caso, la validación cruzada procede de la siguiente manera:

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

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

  • El software procede de una manera similar para el tercer a quinto modelos.

Si valida llamando a kfoldPredict, calcula las predicciones para las observaciones del grupo 1 utilizando el primer modelo, el grupo 2 para el segundo modelo, y así sucesivamente. En Resumen, el software estima una respuesta para cada observación utilizando el modelo entrenado sin esa observación.

Construcción

CVMdl = crossval(Mdl) crea un modelo de clasificación de validación cruzada a partir de un modelo de clasificación ().Mdl

Alternativamente:

  • CVDiscrMdl = fitcdiscr(X,Y,Name,Value)

  • CVKNNMdl = fitcknn(X,Y,Name,Value)

  • CVNBMdl = fitcnb(X,Y,Name,Value)

  • CVSVMMdl = fitcsvm(X,Y,Name,Value)

  • CVTreeMdl = fitctree(X,Y,Name,Value)

crear un modelo con validación cruzada cuando sea,,, o.name'CrossVal''KFold''Holdout''Leaveout''CVPartition' Para obtener detalles de sintaxis, vea,,, y.fitcdiscrfitcknnfitcnbfitcsvmfitctree

Argumentos de entrada

Mdl

Un modelo de clasificación. puede ser cualquiera de los siguientes:Mdl

  • Un árbol de clasificación entrenado utilizandofitctree

  • Un clasificador de análisis discriminante entrenado utilizandofitcdiscr

  • Un clasificador Bayes Ingenuo entrenado confitcnb

  • Un clasificador de vecino más cercano entrenado confitcknn

  • Un clasificador de máquina de vectores de soporte entrenado confitcsvm

Propiedades

BinEdges

Aristas de ubicación para los predictores numéricos, especificados como una matriz de celdas de vectores numéricos, donde es el número de predictores.pp Cada vector incluye los bordes de la papelera para un predictor numérico. El elemento en la matriz de celdas para un predictor categórico está vacío porque el software no bin predictores categóricos.

Los predictores numéricos de bins de software solo si especifica el argumento de par nombre-valor como un escalar entero positivo al entrenar un modelo con alumnos de árbol.'NumBins' La propiedad está vacía si el valor está vacío (valor predeterminado).BinEdges'NumBins'

Puede reproducir los datos de predictor en binned utilizando la propiedad del modelo entrenado.XbinnedBinEdgesmdl

X = mdl.X; % Predictor data
Xbinned = zeros(size(X));
edges = mdl.BinEdges;
% Find indices of binned predictors.
idxNumeric = find(~cellfun(@isempty,edges));
if iscolumn(idxNumeric)
    idxNumeric = idxNumeric';
end
for j = idxNumeric 
    x = X(:,j);
    % Convert x to array if x is a table.
    if istable(x) 
        x = table2array(x);
    end
    % Group x into bins by using the discretize function.
    xbinned = discretize(x,[-inf; edges{j}; inf]); 
    Xbinned(:,j) = xbinned;
end
contiene los índices de ubicación, que van desde 1 hasta el número de bins, para los predictores numéricos. valores son 0 para los predictores categóricos.XbinnedXbinned Si contiene s, los valores correspondientes son s.XNaNXbinnedNaN

CategoricalPredictors

Índices predictores categóricos, especificados como un vector de enteros positivos. contiene valores de índice correspondientes a las columnas de los datos del predictor que contienen predictores categóricos.CategoricalPredictors Si ninguno de los predictores es categórico, entonces esta propiedad está vacía ().[]

Si es un clasificador de análisis discriminante entrenado, entonces siempre está vacío ().MdlCategoricalPredictors[]

ClassNames

Etiquetas de clase únicas utilizadas en el entrenamiento del modelo, especificadas como una matriz categórica o de caracteres, Vector lógico o numérico o matriz de celdas de vectores de caracteres.

Cost

Matriz cuadrada, donde es el costo de clasificar un punto en la clase si su clase verdadera es (es decir, las filas corresponden a la clase verdadera y las columnas corresponden a la clase pronosticada).Cost(i,j)ji El orden de las filas y columnas corresponde al orden de las clases en.CostoClassNames El número de filas y columnas en es el número de clases únicas en la respuesta.Costo

Si se trata de una validación cruzada, o modelo, puede cambiar su matriz de costes por ejemplo, utilizando la notación de puntos.CVModelClassificationDiscriminantClassificationKNNClassificationNaiveBayesCostMatrix

CVModel.Cost = CostMatrix;

CrossValidatedModel

Nombre del modelo validado de forma cruzada, que es un vector de caracteres.

KFold

Número de pliegues utilizados en el modelo de validación cruzada, que es un entero positivo.

ModelParameters

Objetos que sostienen parámetros de.CVModel

Partition

La partición de clase utilizada en la creación del modelo con validación cruzada.CVPartition

PredictorNames

Nombres de variables predictoras, especificadas como una matriz de vectores de caracteres. El orden de los elementos corresponde al orden en el que aparecen los nombres de predictor en los datos de entrenamiento.PredictorNames

Prior

Vector numérico de probabilidades previas para cada clase. El orden de los elementos corresponde al orden de las clases en.PriorClassNames

Si se trata de un modelo o validación cruzada, puede cambiar su vector de antecedentes por ejemplo, utilizando la notación de puntos.CVModelClassificationDiscriminantClassificationNaiveBayespriorVector

CVModel.Prior = priorVector;

ResponseName

Nombre de variable de respuesta, especificado como un vector de caracteres.

ScoreTransform

Transformación de puntuación, especificada como un controlador de función o vector de caracteres. representa una función de transformación integrada o un identificador de función para transformar las puntuaciones de clasificación previstas.ScoreTransform

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

  • Para una función incorporada, introduzca un vector de caracteres.

    Mdl.ScoreTransform = 'function';

    En esta tabla se describen las funciones integradas disponibles.

    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®

    Mdl.ScoreTransform = @function;

    function debe aceptar una matriz (las puntuaciones originales) y devolver una matriz del mismo tamaño (las puntuaciones transformadas).

Trained

Los alumnos capacitados, que es un conjunto de celdas de modelos de clasificación compacta.

W

La escala, que es un vector con longitud, el número de filas en.weightsnX

X

Una matriz o tabla de valores predictores. Cada columna de representa una variable, y cada fila representa una observación.X

Y

Matriz categórica o de caracteres, Vector lógico o numérico o matriz de celdas de vectores de caracteres que especifican las etiquetas de clase para cada observación. tiene el mismo número de filas que, y cada entrada de es la respuesta a los datos en la fila correspondiente de.YXYX

Métodos

kfoldEdgeMargen de clasificación para observaciones no utilizadas para la formación
kfoldLossPérdida de clasificación para observaciones no utilizadas para la formación
kfoldMarginMárgenes de clasificación para observaciones no utilizadas para la formación
kfoldPredictPredecir la respuesta para observaciones no utilizadas para el entrenamiento
kfoldfunFunción de validación cruzada

Semántica de copia

Valor. Para saber cómo afectan las clases de valor a las operaciones de copia, consulte.Copiar objetos (MATLAB)

Ejemplos

contraer todo

Evalúe el error de validación cruzada de plegado para un modelo de árbol de clasificación.k

Cargue el conjunto de datos de iris de Fisher.

load fisheriris

Entrenar un árbol de clasificación utilizando las opciones predeterminadas.

Mdl = fitctree(meas,species);

Cross valida el modelo de árbol de clasificación.

CVMdl = crossval(Mdl);

Calcule la pérdida de validación cruzada de 10 veces.

L = kfoldLoss(CVMdl)
L = 0.0533 

Estimar las probabilidades posteriores de clase positiva para el conjunto de pruebas de un algoritmo SVM.

Cargue el conjunto de datos.ionosphere

load ionosphere

Entrenar un clasificador SVM. Especifique una muestra de retención del 20%. Es una buena práctica estandarizar los predictores y especificar el orden de la clase.

rng(1) % For reproducibility CVSVMModel = fitcsvm(X,Y,'Holdout',0.2,'Standardize',true,...     'ClassNames',{'b','g'});

es un clasificador con validación cruzada entrenado.CVSVMModelClassificationPartitionedModel

Estimar la función de puntuación óptima para la asignación de puntuaciones de observación a las probabilidades posteriores de una observación que se clasifica como.'g'

ScoreCVSVMModel = fitSVMPosterior(CVSVMModel);

es un clasificador cruzado validado que contiene la función de transformación de puntuación óptima estimada a partir de los datos de entrenamiento.ScoreSVMModelClassificationPartitionedModel

Calcule las probabilidades posteriores de la clase positiva fuera de la muestra. Visualice los resultados de las primeras 10 observaciones fuera de la muestra.

[~,OOSPostProbs] = kfoldPredict(ScoreCVSVMModel); indx = ~isnan(OOSPostProbs(:,2)); hoObs = find(indx); % Holdout observation numbers OOSPostProbs = [hoObs, OOSPostProbs(indx,2)]; table(OOSPostProbs(1:10,1),OOSPostProbs(1:10,2),...     'VariableNames',{'ObservationIndex','PosteriorProbability'})
ans=10×2 table
    ObservationIndex    PosteriorProbability
    ________________    ____________________

            6                  0.17379      
            7                  0.89639      
            8                0.0076593      
            9                  0.91603      
           16                 0.026714      
           22                4.607e-06      
           23                   0.9024      
           24                2.413e-06      
           38                0.0004266      
           41                  0.86427      

Sugerencias

Para estimar las probabilidades posteriores de clasificadores SVM capacitados y validados, utilice.fitSVMPosterior