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 utilizando el modelo de clasificación de vecino más cercanok

Descripción

label = predict(mdl,X) Devuelve un vector de las etiquetas de clase previstas para los Datos predictores de la tabla o matriz, en función del modelo de clasificación de vecino entrenado más cercano.Xkmdl Ver.Etiqueta de clase pronosticada

ejemplo

[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 vecino más cercano, las puntuaciones son probabilidades posteriores.k Ver.Probabilidad posterior

  • Una matriz de coste de clasificación esperado ().Costo Para cada observación en, la etiqueta de clase pronosticada corresponde a los costos mínimos de clasificación esperados entre todas las clases.X Ver.Costo esperado

Ejemplos

contraer todo

Cree un clasificador de vecino más cercano para los datos de iris de Fisher, donde = 5.kk Evalúe algunas predicciones de modelos sobre nuevos datos.

Cargue el conjunto de datos de iris de Fisher.

load fisheriris X = meas; Y = species;

Cree un clasificador para cinco vecinos más cercanos. Estandarice los Datos predictores no categóricos.

mdl = fitcknn(X,Y,'NumNeighbors',5,'Standardize',1);

Predecir las clasificaciones de las flores con las características mínimas, medias y máximas.

Xnew = [min(X);mean(X);max(X)]; [label,score,cost] = predict(mdl,Xnew)
label = 3x1 cell array
    {'versicolor'}
    {'versicolor'}
    {'virginica' }

score = 3×3

    0.4000    0.6000         0
         0    1.0000         0
         0         0    1.0000

cost = 3×3

    0.6000    0.4000    1.0000
    1.0000         0    1.0000
    1.0000    1.0000         0

Las filas segunda y tercera de las matrices de puntuación y de coste tienen valores binarios, lo que significa que los cinco vecinos más cercanos de las mediciones de flor media y máxima tienen clasificaciones idénticas.

Argumentos de entrada

contraer todo

-modelo de clasificador de vecino más cercano, especificado como un objeto.kClassificationKNN

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

  • Para una matriz numérica:

    • Las variables que componen las columnas de deben tener el mismo orden que las variables predictoras utilizadas para entrenar.Xmdl

    • Si entrena usando una tabla (por ejemplo,), entonces puede ser una matriz numérica si contiene todas las variables predictoras numéricas. -la clasificación de vecino más cercano requiere predictores homogéneos.mdlTblXTblk Por lo tanto, para tratar todos los predictores numéricos en como categóricos durante el entrenamiento, establecer cuando se entrena utilizando.Tbl'CategoricalPredictors','all'fitcknn Si contiene predictores heterogéneos (por ejemplo, tipos de datos numéricos y categóricos) y es una matriz numérica, se produce un error.TblXPredecir

  • 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 entrena usando una tabla (por ejemplo,), entonces todas las variables predictoras en deben tener los mismos nombres de variables y tipos de datos que los usados para entrenar (almacenados en).mdlTblXmdlmdl.PredictorNames Sin embargo, el orden de columna de no necesita corresponder al orden de columna de.XTbl Ambos y pueden contener variables adicionales (variables de respuesta, ponderaciones de observación, etcétera), pero las ignora.TblXPredecir

    • Si entrena 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.PredictorNamesfitcknn Todas las variables predictoras en deben ser vectores numéricos. puede contener variables adicionales (variables de respuesta, ponderaciones de observación, etcétera), pero las ignora.XXPredecir

Si se establece en el tren, a continuación, el software estandariza las columnas de uso de los medios correspondientes en y desviaciones estándar en.'Standardize',truefitcknnmdlXmdl.Mumdl.Sigma

Tipos de datos: double | single | table

Argumentos de salida

contraer todo

Las etiquetas de clase previstas para las observaciones (filas) en, devueltas como una matriz categórica, matriz de caracteres, Vector lógico, Vector de valores numéricos o matriz de celdas de vectores de caracteres. tiene una longitud igual al número de filas.XEtiquetaX La etiqueta es la clase con el costo mínimo esperado. Ver.Etiqueta de clase pronosticada

Puntuaciones de clase pronosticadas o probabilidades posteriores, devueltas como una matriz numérica de tamaño por. 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.nKnXKmdl.ClassNamesscore(i,j)iXjmdl.ClassNames Ver.Probabilidad posterior

Tipos de datos: single | double

Costos de clasificación esperados, devueltos como una matriz numérica 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.nKnXKmdl.ClassNamescost(i,j)iXjmdl.ClassNames Ver.Costo esperado

Tipos de datos: single | double

Algoritmos

contraer todo

Etiqueta de clase pronosticada

predict clasifica minimizando el coste de clasificación previsto:

y^=argminy=1,...,Kj=1KP^(j|x)C(y|j),

Dónde

  • y^ es la clasificación pronosticada.

  • es el número de clases.K

  • P^(j|x) es la probabilidad posterior de la clase para la observación.jx

  • C(y|j) es el costo de clasificar una observación como cuando es su verdadera clase.yj

Probabilidad posterior

Considere un vector (punto de consulta único) y un modelo.xnewmdl

  • es el número de vecinos más cercanos utilizados en la predicción,.kmdl.NumNeighbors

  • especifica los vecinos más cercanos.nbd(mdl,xnew)kxnewmdl.X

  • especifica las clasificaciones de los puntos en, a saber.Y(nbd)nbd(mdl,xnew)mdl.Y(nbd)

  • especifica los pesos de los puntos en.W(nbd)nbd(mdl,xnew)

  • especifica los antecedentes de las clases en.priormdl.Y

Si el modelo contiene un vector de probabilidades previas, los pesos de observación se normalizan por clase para sumar a los Priors.W Este proceso puede implicar un cálculo para el punto, ya que los pesos pueden depender de la distancia desde los puntos en.xnewxnewmdl.X

La probabilidad posterior (|) espjxnew

p(j|xnew)=inbdW(i)1Y(X(i))=jinbdW(i).

Aquí 1Y(X(i))=j es cuando, y de lo contrario.1mdl.Y(i) = j0

Verdadero costo de clasificación errónea

Dos costos están asociados con la clasificación KNN: el verdadero costo de clasificación errónea por clase y el costo esperado de clasificación errónea por observación.

Puede establecer el verdadero costo de clasificación errónea por clase utilizando el argumento de par nombre-valor cuando se ejecuta.'Cost'fitcknn El valor es el costo de clasificar una observación en la clase si su clase verdadera es.Cost(i,j)ji De forma predeterminada, si, y si.Cost(i,j) = 1i ~= jCost(i,j) = 0i = j En otras palabras, el costo es para la clasificación correcta y para la clasificación incorrecta.01

Costo esperado

Dos costos están asociados con la clasificación KNN: el verdadero costo de clasificación errónea por clase y el costo esperado de clasificación errónea por observación. La tercera salida es el costo esperado de clasificación errónea por observación.Predecir

Supongamos que tiene observaciones que desea clasificar con un clasificador entrenado y tiene clases.NobsmdlK Las observaciones se colocan en una matriz con una observación por fila.Xnew El comando

[label,score,cost] = predict(mdl,Xnew)

Devuelve una matriz de tamaño por, entre otras salidas.CostoNobsK Cada fila de la matriz contiene el costo esperado (promedio) de clasificar la observación en cada una de las clases. EsCostoKcost(n,j)

i=1KP^(i|Xnew(n))C(j|i),

Dónde

  • es el número de clases.K

  • P^(i|Xnew(n)) es la clase de observación ().probabilidad posterioriXnewn

  • C(j|i) es el verdadero costo de clasificación errónea de clasificar una observación como cuando es su verdadera clase.ji

Capacidades ampliadas

Introducido en R2012a