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.

Compactclassificationdiscriminante

Paquete: classreg.learning.classif

La clase de análisis discriminante compacta

Descripción

Un objeto es una versión compacta de un clasificador de análisis discriminante.CompactClassificationDiscriminant La versión compacta no incluye los datos para entrenar el clasificador. Por lo tanto, no puede realizar algunas tareas con un clasificador compacto, como la validación cruzada. Utilice un clasificador compacto para realizar predicciones (clasificaciones) de nuevos datos.

Construcción

cobj = compact(obj) construye un clasificador compacto a partir de un clasificador completo.

cobj = makecdiscr(Mu,Sigma) construye un clasificador de análisis discriminante compacto a partir de la matriz de medias y covarianzas de clase.MuSigma Para obtener detalles de sintaxis, consulte.makecdiscr

Argumentos de entrada

obj

Clasificador de análisis discriminante, creado con.fitcdiscr

Propiedades

BetweenSigma

-by-Matrix, la covarianza entre clases, donde está el número de predictores.ppp

CategoricalPredictors

Índices predictores categóricos, que siempre están vacíos ().[]

ClassNames

Lista de los elementos de los datos de entrenamiento con duplicados eliminados. puede ser una matriz categórica, una matriz de vectores de caracteres, una matriz de caracteres, un vector lógico o un vector numérico. tiene el mismo tipo de datos que los datos del argumento.YClassNamesClassNamesY (The software treats string arrays as cell arrays of character vectors.)

Coeffs

-por-estructura de matrices de coeficiente, donde es el número de clases. contiene coeficientes de los límites lineales o cuadráticos entre clases y.kkkCoeffs(i,j)ij Campos en:Coeffs(i,j)

  • DiscrimType

  • Class1ClassNames(i)

  • Class2ClassNames(j)

  • — Un escalarConst

  • — Un vector con componentes, donde está el número de columnas enLinearppX

  • —-by-Matrix, existe para el cuadráticoQuadraticppDiscrimType

La ecuación del límite entre clase y clase esij

+ * + * * = ,ConstLinearxx'Quadraticx0

donde es un vector de columna de longitud.xp

Si el par nombre-valor establecido en al construir el clasificador, está vacío ().fitcdiscrFillCoeffs'off'Coeffs[]

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

Cambiar una matriz utilizando la notación de puntos:.Costoobj.Cost = costMatrix

Delta

Valor del umbral Delta para un modelo discriminante lineal, un escalar no negativo. Si un coeficiente de magnitud tiene menor que, establece este coeficiente en, y por lo que puede eliminar el predictor correspondiente del modelo.objDeltaobj0 Se establece en un valor más alto para eliminar más predictores.Delta

debe ser para modelos discriminantes cuadráticos.Delta0

Cambiar usando la notación de puntos:.Deltaobj.Delta = newDelta

DeltaPredictor

Vector de fila de longitud igual al número de predictores en.obj Si entonces el coeficiente del modelo es.DeltaPredictor(i) < Deltai0

Si es un modelo de discriminante cuadrático, todos los elementos de son.objDeltaPredictor0

DiscrimType

Vector de caracteres que especifica el tipo discriminante. Uno de:

  • 'linear'

  • 'quadratic'

  • 'diagLinear'

  • 'diagQuadratic'

  • 'pseudoLinear'

  • 'pseudoQuadratic'

Cambiar usando la notación de puntos:.DiscrimTypeobj.DiscrimType = newDiscrimType

Puede cambiar entre tipos lineales o entre tipos cuadráticos, pero no puede cambiar entre tipos lineales y cuadráticos.

Gamma

Valor del parámetro de regularización gamma, un escalar desde.01 Cambiar usando la notación de puntos:.Gammaobj.Gamma = newGamma

  • Si establece para discriminante lineal, el discriminante establece su tipo en.1'diagLinear'

  • Si establece un valor entre y para discriminante lineal, el discriminante establece su tipo en.MinGamma1'linear'

  • No puede establecer valores por debajo del valor de la propiedad.MinGamma

  • En el caso de discriminante cuadrático, puede establecer (para) o (para).0DiscrimType'quadratic'1DiscrimType'diagQuadratic'

LogDetSigma

Logaritmo del determinante de la matriz de covarianza dentro de la clase. El tipo de depende del tipo discriminante:LogDetSigma

  • Escalar para el análisis discriminante lineal

  • Vector de longitud para el análisis de discriminante cuadrático, donde está el número de clasesKK

MinGamma

Escalar no negativo, el valor mínimo del parámetro gamma para que la matriz de correlación sea invertible. Si la matriz de correlación no es singular, es.MinGamma0

Mu

Clase significa, especificado como una-por-matriz de valores escalares clase medios de tamaño. es el número de clases y es el número de predictores.KpKp Cada fila de representa la media de la distribución normal multivariada de la clase correspondiente.Mu Los índices de clase están en el atributo.ClassNames

PredictorNames

Matriz de nombres de celdas para las variables predictoras, en el orden en que aparecen en los datos de entrenamiento.X

Prior

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

Añadir o cambiar un vector utilizando la notación de puntos:.Priorobj.Prior = priorVector

ResponseName

Vector de caracteres que describe la variable de respuesta.Y

ScoreTransform

Vector de caracteres que representa una función de transformación integrada o un identificador de función para transformar las puntuaciones. significa que no hay transformación; equivalentemente, significa.'none''none'@(x)x Para obtener una lista de las funciones de transformación integradas y la sintaxis de las funciones de transformación personalizadas, consulte.fitcdiscr

Implemente la notación de puntos para agregar o cambiar una función mediante uno de los siguientes:ScoreTransform

  • cobj.ScoreTransform = 'function'

  • cobj.ScoreTransform = @function

Sigma

Matriz o matrices de covarianza dentro de la clase. Las dimensiones dependen de:DiscrimType

  • (predeterminado) — matriz de tamaño por-, donde es el número de predictores'linear'ppp

  • — Matriz de tamaño por-por-, donde está el número de clases'quadratic'ppKK

  • — Vector de fila de longitud'diagLinear'p

  • — Matriz de tamaño por--por-'diagQuadratic'1pK

  • — Matriz de tamaño por'pseudoLinear'pp

  • — Matriz de tamaño por--por-'pseudoQuadratic'ppK

Métodos

edgeLa arista de clasificación
logPRegistre la densidad de probabilidad incondicional para el clasificador de análisis discriminante
lossError de clasificación
mahalLa distancia de Mahalanobis a la clase significa
marginLos márgenes de clasificación
nLinearCoeffsNúmero de coeficientes lineales distintos de cero
predictPredecir etiquetas mediante el modelo de clasificación de análisis discriminante

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

Cargue los datos de ejemplo.

load fisheriris

Construya un clasificador de análisis discriminante para los datos de ejemplo.

fullobj = fitcdiscr(meas,species);

Construya un clasificador de análisis discriminante compacto y compare su tamaño con el del clasificador completo.

cobj = compact(fullobj); b = whos('fullobj'); % b.bytes = size of fullobj c = whos('cobj'); % c.bytes = size of cobj [b.bytes c.bytes] % shows cobj uses 60% of the memory
ans = 1×2

       18631       11994

El clasificador compacto es más pequeño que el clasificador completo.

Construya un clasificador de análisis discriminante compacto a partir de los medios y las covarianzas de los datos de iris de Fisher.

load fisheriris mu(1,:) = mean(meas(1:50,:)); mu(2,:) = mean(meas(51:100,:)); mu(3,:) = mean(meas(101:150,:));  mm1 = repmat(mu(1,:),50,1); mm2 = repmat(mu(2,:),50,1); mm3 = repmat(mu(3,:),50,1); cc = meas; cc(1:50,:) = cc(1:50,:) - mm1; cc(51:100,:) = cc(51:100,:) - mm2; cc(101:150,:) = cc(101:150,:) - mm3; sigstar = cc' * cc / 147; cpct = makecdiscr(mu,sigstar,...     'ClassNames',{'setosa','versicolor','virginica'});

Más acerca de

expandir todo

Capacidades ampliadas

Introducido en R2011b