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.

predict

Predecir etiquetas mediante el modelo de clasificación de análisis discriminante

Descripción

label = predict(Mdl,X) Devuelve un vector de las etiquetas de clase previstas para los Datos predictores de la tabla o matriz, según el modelo de clasificación de análisis discriminante entrenado.XMdl

[label,score,cost] = predict(Mdl,X) también devuelve:

  • Una matriz de puntuaciones de clasificación () que indica la probabilidad de que una etiqueta proviene de una clase determinada.Puntuación Para el análisis discriminante, las puntuaciones son.probabilidades posteriores

  • Una matriz de ().costo de clasificación esperadoCosto Para cada observación en, la etiqueta de clase pronosticada corresponde al costo mínimo de clasificación esperado entre todas las clases.X

Argumentos de entrada

expandir todo

Modelo de clasificación de análisis discriminante, especificado como un objeto de modelo devuelto por.ClassificationDiscriminantCompactClassificationDiscriminantfitcdiscr

Datos de predictor que se clasificarán, especificados como una matriz o tabla numérica.

Cada fila de corresponde a una observación, y cada columna corresponde a una variable.X Todas las variables predictoras en deben ser vectores numéricos.X

  • Para una matriz numérica, las variables que componen las columnas de deben tener el mismo orden que las variables predictoras que entrenaron.XMdl

  • Para una tabla:

    • no admite variables de varias columnas ni matrices de celdas que no sean matrices de celdas de vectores de caracteres.Predecir

    • Si ha entrenado utilizando una tabla (por ejemplo,), todas las variables predictoras en deben tener los mismos nombres de variables y tipos de datos que los que entrenaron (almacenados en).MdlTblXMdlMdl.PredictorNames Sin embargo, el orden de columna de no necesita corresponder al orden de columna de. y puede contener variables adicionales (variables de respuesta, pesos de observación, etc.), pero las ignora.XTblTblXPredecir

    • Si entrenó con una matriz numérica, los nombres de los predictores y los nombres de las variables predictoras correspondientes deben ser los mismos.MdlMdl.PredictorNamesX Para especificar nombres de predictores durante el entrenamiento, vea el argumento de par nombre-valor de. puede contener variables adicionales (variables de respuesta, pesos de observación, etc.), pero las ignora.PredictorNamesfitcdiscrXPredecir

Tipos de datos: table | double | single

Argumentos de salida

expandir todo

, devuelto como una matriz categórica o de caracteres, Vector lógico o numérico, o matriz de celdas de vectores de caracteres.Las etiquetas de clase previstas

:Etiqueta

  • Es el mismo tipo de datos que las etiquetas de clase observadas () que se entrenaron.YMdl (The software treats string arrays as cell arrays of character vectors.)

  • Tiene una longitud igual al número de filas de.X

Clase pronosticada, devuelta como una matriz numérica de size-by-. es el número de observaciones (filas) en, y es el número de clases (in). es la probabilidad posterior de que la observación en es de clase en.probabilidades posterioresNKNXKMdl.ClassNamesscore(i,j)iXjMdl.ClassNames

, devuelta como una matriz de tamaño por. es el número de observaciones (filas) en, y es el número de clases (in). es el costo de clasificar la fila de como clase en.Los costos de clasificación esperadosNKNXKMdl.ClassNamescost(i,j)iXjMdl.ClassNames

Ejemplos

expandir todo

Cargue el conjunto de datos de iris de Fisher. Determine el tamaño de la muestra.

load fisheriris N = size(meas,1);

Particionar los datos en conjuntos de entrenamiento y pruebas. Mantenga el 10% de los datos para las pruebas.

rng(1); % For reproducibility cvp = cvpartition(N,'Holdout',0.1); idxTrn = training(cvp); % Training set indices idxTest = test(cvp);    % Test set indices

Almacene los datos de entrenamiento en una tabla.

tblTrn = array2table(meas(idxTrn,:)); tblTrn.Y = species(idxTrn);

Entrenar un modelo de análisis discriminante utilizando el conjunto de entrenamiento y las opciones predeterminadas.

Mdl = fitcdiscr(tblTrn,'Y');

Predecir etiquetas para el conjunto de pruebas. Se entrenó con una tabla de datos, pero puede predecir etiquetas mediante una matriz.Mdl

labels = predict(Mdl,meas(idxTest,:));

Construya una matriz de confusión para el conjunto de pruebas.

confusionchart(species(idxTest),labels);

clasifica erróneamente un Iris versicolor como virginica en el conjunto de pruebas.Mdl

Cargue el conjunto de datos de iris de Fisher. Considere la posibilidad de entrenar con longitudes y anchos de pétalo solamente.

load fisheriris X = meas(:,3:4);

Entrenar un modelo de análisis de discriminante cuadrático utilizando todo el conjunto de datos.

Mdl = fitcdiscr(X,species,'DiscrimType','quadratic');

Defina una rejilla de valores en el espacio pronosticador observado. Predecir las probabilidades posteriores para cada instancia en la cuadrícula.

xMax = max(X); xMin = min(X); d = 0.01; [x1Grid,x2Grid] = meshgrid(xMin(1):d:xMax(1),xMin(2):d:xMax(2));  [~,score] = predict(Mdl,[x1Grid(:),x2Grid(:)]); Mdl.ClassNames
ans = 3x1 cell array
    {'setosa'    }
    {'versicolor'}
    {'virginica' }

es una matriz de probabilidades posteriores de clase.Puntuación Las columnas corresponden a las clases de.Mdl.ClassNames Por ejemplo, es la probabilidad posterior de que la observación sea un iris de setosa.score(j,1)j

Graficar la probabilidad posterior de clasificación versicolor para cada observación en la cuadrícula y trazar los datos de entrenamiento.

figure; contourf(x1Grid,x2Grid,reshape(score(:,2),size(x1Grid,1),size(x1Grid,2))); h = colorbar; caxis([0 1]); colormap jet; hold on gscatter(X(:,1),X(:,2),species,'mcy','.x+'); axis tight title('Posterior Probability of versicolor');  hold off

La región de probabilidad posterior expone una parte del límite de decisión.

Más acerca de

expandir todo

Capacidades ampliadas

Introducido en R2011b