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.

ClassificationLinear clase

Modelo lineal para la clasificación binaria de datos de alta cota

Descripción

es un objeto de modelo lineal entrenado para la clasificación binaria; el modelo lineal es una máquina de vectores de soporte (SVM) o un modelo de regresión logística. se ajusta a un modelo minimizando la función objetiva utilizando técnicas que reducen el tiempo de cálculo para conjuntos de datos de alta dimensionalidad (p. ej., descenso de gradiente estocástico).ClassificationLinearfitclinearClassificationLinear La pérdida de clasificación más el término de regularización componen la función objetiva.

A diferencia de otros modelos de clasificación, y para el uso de memoria económica, los objetos de modelo no almacenan los datos de entrenamiento.ClassificationLinear Sin embargo, almacenan, por ejemplo, los coeficientes de modelo lineal estimados, las probabilidades de clase anterior y la fuerza de regularización.

Puede utilizar modelos entrenados para predecir etiquetas o puntuaciones de clasificación para nuevos datos.ClassificationLinear Para obtener más información, consulte predict.

Construcción

Cree un objeto mediante.ClassificationLinearfitclinear

Propiedades

expandir todo

Propiedades de clasificación lineal

Fuerza del término de regularización, especificada como un escalar o un vector no negativo de valores no negativos.

Tipos de datos: double | single

Tipo de modelo de clasificación lineal, especificado como o.'logistic''svm'

En esta tabla, f(x)=xβ+b.

  • es un vector de coeficientes.βp

  • es una observación de variables predictoras.xp

  • es el sesgo escalar.b

ValorAlgoritmoFunción de pérdidaValorFittedLoss
'logistic'La regresión logísticaDesviación (logística): [y,f(x)]=log{1+exp[yf(x)]}'logit'
'svm'Máquina de vectores de soporteBisagra: [y,f(x)]=max[0,1yf(x)]'hinge'

Estimaciones de coeficiente lineales, especificadas como un vector numérico con una longitud igual al número de predictores.

Tipos de datos: double

Término de sesgo Estimado o intersección de modelo, especificado como un escalar numérico.

Tipos de datos: double

Función de pérdida utilizada para ajustarse al modelo lineal, especificado como o.'hinge''logit'

ValorAlgoritmoFunción de pérdidaValorLearner
'hinge'Máquina de vectores de soporteBisagra: [y,f(x)]=max[0,1yf(x)]'svm'
'logit'La regresión logísticaDesviación (logística): [y,f(x)]=log{1+exp[yf(x)]}'logistic'

Tipo de penalización de complejidad, especificada como o.'lasso (L1)''ridge (L2)'

El software compone la función objetiva para la minimización de la suma de la función de pérdida promedio (ver) y un valor de regularización de esta tabla.FittedLoss

ValorDescripción
'lasso (L1)'LazoL1pena λj=1p|βj|
'ridge (L2)'RidgeL2pena λ2j=1pβj2

Especifica la intensidad del término de regularización (véase).λLambda

El software excluye el término de sesgo (β0) de la sanción por regularización.

Otras propiedades de clasificación

Índices de predictores categóricos, cuyo valor siempre está vacío () porque un[] ClassificationLinear modelo no admite predictores categóricos.

Etiquetas de clase únicas utilizadas en el entrenamiento, especificadas como una matriz categórica o de caracteres, Vector lógico o numérico, o matriz de celdas de vectores de caracteres. tiene el mismo tipo de datos que las etiquetas de clase.ClassNamesY (The software treats string arrays as cell arrays of character vectors.) también determina el orden de la clase.ClassNames

Tipos de datos: categorical | char | logical | single | double | cell

Esta propiedad es de solo lectura.

Costos de clasificación errónea, especificados como una matriz numérica cuadrada. tiene filas y columnas, donde está el número de clases.CostoKK

Cost(i,j) es el costo de clasificar un punto en la clase j Si su verdadera clase es i. El orden de las filas y columnas corresponde al orden de las clases en.CostoClassNames

Tipos de datos: double

Los parámetros utilizados para entrenar el ClassificationLinear modelo, especificado como una estructura.

Campos de acceso de uso de notación de puntos.ModelParameters Por ejemplo, acceda a la tolerancia relativa en los coeficientes lineales y el término de sesgo mediante el uso de.Mdl.ModelParameters.BetaTolerance

Tipos de datos: struct

Los nombres predictores en orden de su aparición en los Datos predictores, especificados como una matriz de celdas de vectores de caracteres.X La longitud de es igual al número de columnas en.PredictorNamesX

Tipos de datos: cell

Nombres de predictores ampliados, especificados como una matriz de vectores de caracteres de celda.

Porque un ClassificationLinear modelo no admite predictores categóricos y son iguales.ExpandedPredictorNamesPredictorNames

Tipos de datos: cell

Esta propiedad es de solo lectura.

Probabilidades de clase anteriores, especificadas como un vector numérico. tiene tantos elementos como clases, y el orden de los elementos corresponde a los elementos de.PriorClassNamesClassNames

Tipos de datos: double

Función de transformación de puntuación para aplicar a las puntuaciones previstas, especificadas como un nombre de función o un identificador de función.

Para los modelos de clasificación lineal y antes de la transformación, la puntuación de clasificación pronosticada para la observación (vector de fila) esx f(x) = xβ + b, dónde y corresponder y, respectivamente.βbMdl.BetaMdl.Bias

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

  • Para una función incorporada, ingrese este código y reemplace function con un valor en la tabla.

    Mdl.ScoreTransform = 'function';

    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 identificador de función.MATLAB®

    Mdl.ScoreTransform = @function;

    function debe aceptar una matriz de las puntuaciones originales para cada clase y, a continuación, devolver una matriz del mismo tamaño que representa las puntuaciones transformadas para cada clase.

Tipos de datos: char | function_handle

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

Tipos de datos: char

Métodos

edgeBorde de clasificación para modelos de clasificación lineal
lossPérdida de clasificación para modelos de clasificación lineal
marginLos márgenes de clasificación para modelos de clasificación lineal
predictPredecir etiquetas para modelos de clasificación lineal
selectModelsElija un subconjunto de modelos de clasificación lineal binaria regularizados

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

Entrenar un modelo de clasificación lineal binario utilizando máquinas de vectores de soporte, doble SGD y regularización de cresta.

Cargue el conjunto de datos NLP.

load nlpdata

es una matriz dispersa de Datos predictores y es un vector categórico de etiquetas de clase.XY Hay más de dos clases en los datos.

Identifique las etiquetas que corresponden a las páginas web de documentación de estadísticas y machine learning Toolbox™.

Ystats = Y == 'stats';

Entrenar un modelo de clasificación lineal binario que puede identificar si la palabra cuenta en una página web de documentación son de la documentación de estadísticas y machine learning Toolbox™. Entrenar el modelo utilizando todo el conjunto de datos. Determine qué tan bien el algoritmo de optimización ajusta el modelo a los datos mediante la extracción de un resumen de ajuste.

rng(1); % For reproducibility  [Mdl,FitInfo] = fitclinear(X,Ystats)
Mdl =    ClassificationLinear       ResponseName: 'Y'         ClassNames: [0 1]     ScoreTransform: 'none'               Beta: [34023x1 double]               Bias: -1.0059             Lambda: 3.1674e-05            Learner: 'svm'     Properties, Methods  
FitInfo = struct with fields:
                    Lambda: 3.1674e-05
                 Objective: 5.3783e-04
                 PassLimit: 10
                 NumPasses: 10
                BatchLimit: []
             NumIterations: 238561
              GradientNorm: NaN
         GradientTolerance: 0
      RelativeChangeInBeta: 0.0562
             BetaTolerance: 1.0000e-04
             DeltaGradient: 1.4582
    DeltaGradientTolerance: 1
           TerminationCode: 0
         TerminationStatus: {'Iteration limit exceeded.'}
                     Alpha: [31572x1 double]
                   History: []
                   FitTime: 0.2112
                    Solver: {'dual'}

es un modelo.MdlClassificationLinear Puede pasar y el entrenamiento o los nuevos datos para inspeccionar el error de clasificación en la muestra.Mdlloss O puede pasar y nuevos Datos predictores para predecir etiquetas de clase para nuevas observaciones.MdlPredecir

es una matriz de estructura que contiene, entre otras cosas, el estado de terminación () y el tiempo que el solucionador tomó para ajustarse al modelo a los datos ().FitInfoTerminationStatusFitTime Es una buena práctica utilizar para determinar si las mediciones de optimización-terminación son satisfactorias.FitInfo Dado que el tiempo de entrenamiento es pequeño, puede intentar reentrenar el modelo, pero aumentar el número de pasadas a través de los datos. Esto puede mejorar las medidas como.DeltaGradient

Cargue el conjunto de datos NLP.

load nlpdata n = size(X,1); % Number of observations

Identifique las etiquetas que corresponden a las páginas web de documentación de estadísticas y machine learning Toolbox™.

Ystats = Y == 'stats';

Mantenga el 5% de los datos.

rng(1); % For reproducibility cvp = cvpartition(n,'Holdout',0.05)
cvp =  Hold-out cross validation partition    NumObservations: 31572        NumTestSets: 1          TrainSize: 29994           TestSize: 1578 

es un objeto que define la partición aleatoria de datos en conjuntos de entrenamiento y pruebas.cvpCVPartitionn

Entrenar un modelo de clasificación lineal binario utilizando el conjunto de entrenamiento que puede identificar si la palabra cuenta en una página web de documentación son de la documentación de estadísticas y machine learning Toolbox™. Para un tiempo de entrenamiento más rápido, Oriente la matriz de Datos predictores para que las observaciones estén en columnas.

idxTrain = training(cvp); % Extract training set indices X = X'; Mdl = fitclinear(X(:,idxTrain),Ystats(idxTrain),'ObservationsIn','columns');

Predecir observaciones y error de clasificación para la muestra de espera.

idxTest = test(cvp); % Extract test set indices labels = predict(Mdl,X(:,idxTest),'ObservationsIn','columns'); L = loss(Mdl,X(:,idxTest),Ystats(idxTest),'ObservationsIn','columns')
L = 7.1753e-04 

clasifica erróneamente menos del 1% de las observaciones fuera de la muestra.Mdl

Capacidades ampliadas

Introducido en R2016a