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.

ClassificationNaiveBayes clase

Superclases: CompactClassificationNaiveBayes

La clasificación de Naive Bayes

Descripción

es un clasificador para el aprendizaje multiclase.ClassificationNaiveBayesingenuo Bayes Utilice y los datos de entrenamiento para entrenar a un clasificador.fitcnbClassificationNaiveBayes

Los clasificadores entrenados almacenan los datos de entrenamiento, los valores de parámetros, la distribución de datos y las probabilidades previas.ClassificationNaiveBayes Puede utilizar estos clasificadores para:

  • Estimar las predicciones de reenvío. Para obtener más información, consulte resubPredict.

  • Predecir etiquetas o probabilidades posteriores de nuevos datos. Para obtener más información, consulte predict.

Construcción

Cree un objeto mediante.ClassificationNaiveBayesfitcnb

Propiedades

expandir todo

Í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 ().[]

Tipos de datos: single | double

Niveles multinomiales multivariados, especificados como vector de celdas de vectores numéricos. tiene una longitud igual al número de predictores ().CategoricalLevelssize(X,2)

Las celdas corresponden a los predictores que especificó como (es decir, que tienen una distribución multinomial multivariada) durante el entrenamiento.CategoricalLevels'mvmn' Las celdas que no corresponden a una distribución multinomial multivariada están vacías ().[]

Si el predictor es multinomial multivariado, entonces es una lista de todos los valores distintos de predictor en la muestra (s quitada de).jCategoricalLevels{j}jNaNunique(X(:,j))

Tipos de datos: cell

Nombres de clase distintos, especificados como una matriz categórica o de caracteres, un vector lógico o numérico o un vector de celda de vectores de caracteres.

es el mismo tipo de datos que, y tiene elementos o filas para matrices de caracteres.ClassNamesYK (The software treats string arrays as cell arrays of character vectors.)

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

Costo de clasificación errónea, especificado como matriz a-por-cuadrado.KK

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

El valor de no influye en el entrenamiento.Costo Puede restablecer después del entrenamiento utilizando la notación de puntos, por ejemplo,.CostoMdlMdl.Cost = [0 0.5; 1 0];

Tipos de datos: double | single

Las distribuciones predictoras utilizan para modelar los predictores, especificados como un vector de caracteres o una matriz de vectores de caracteres.fitcnb

Esta tabla resume las distribuciones disponibles.

ValorDescripción
'kernel'Estimación de densidad de suavizado del kernel.
'mn'Multinomial.modelo de bolsa de tokens Indica que todos los predictores tienen esta distribución.
'mvmn'Distribución multinomial multivariado.
'normal'Distribución normal (gaussiana).

Si es una matriz de vectores de caracteres de 1 por celda, la característica de modelos de software utiliza la distribución en el elemento de la matriz de celdas.DistributionPjj

Tipos de datos: char | cell

Estimaciones de parámetros de distribución, especificadas como una matriz de celdas. es una matriz de celdas, donde Cell (,) contiene las estimaciones de los parámetros de distribución para las instancias de predictor en clase.DistributionParametersKDkddk El orden de las filas corresponde al orden de las clases de la propiedad y el orden de los predictores corresponde al orden de las columnas de.ClassNamesX

Si la clase k no tiene observaciones para el predictor jEntonces Distribution{k,j} está vacía ().[]

Los elementos de depende de las distribuciones de los predictores.DistributionParameters En esta tabla se describen los valores de DistributionParameters{k,j}.

Distribución de predictorjValor
kernelUn modelo.KernelDistribution Mostrar propiedades mediante indexación de celdas y notación de puntos. Por ejemplo, para mostrar el ancho de banda estimado de la densidad del kernel para el predictor 2 en la tercera clase, use.Mdl.DistributionParameters{3,2}.BandWidth
mnUn escalar que representa la probabilidad de que el token aparezca en la clase.jk Para obtener más información, consulte.Algoritmos
mvmnUn vector numérico que contiene las probabilidades para cada nivel posible de predictor en clase.jk El software ordena las probabilidades por el orden ordenado de todos los niveles únicos de predictor (almacenados en la propiedad).jCategoricalLevels Para obtener más información, consulte.Algoritmos
NormalUn vector numérico de 2 por 1. El primer elemento es la media de la muestra y el segundo elemento es la desviación estándar de la muestra.

Tipos de datos: cell

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

Si el modelo utiliza codificación para variables categóricas, incluye los nombres que describen las variables expandidas.ExpandedPredictorNames De lo contrario, es el mismo que.ExpandedPredictorNamesPredictorNames

Tipos de datos: cell

Descripción de la optimización de validación cruzada de los hiperparámetros, especificada como un objeto o una tabla de hiperparámetros y valores asociados.BayesianOptimization Esta propiedad no está vacía si el argumento de par nombre-valor no está vacío al crear el modelo.'OptimizeHyperparameters' El valor de depende de la configuración del campo en la estructura cuando se crea el modelo, como se describe en esta tabla.HyperparameterOptimizationResultsOptimizerHyperparameterOptimizationOptions

Valor de campoOptimizerValor deHyperparameterOptimizationResults
predeterminado'bayesopt'Objeto de claseBayesianOptimization
O'gridsearch''randomsearch'Tabla de hiperparámetros utilizados, valores de función objetiva observados (pérdida de validación cruzada) y rango de observaciones de menor (mejor) a mayor (peor)

Tipos de kernel más suaves, especificados como vector de caracteres o matriz de vectores de caracteres. tiene una longitud igual al número de predictores (). corresponde al predictor y contiene un vector de caracteres que describe el tipo de kernel más suave.Núcleosize(X,2)Kernel{j}j Esta tabla describe los tipos más suaves del kernel soportado. Let {} denota la función del indicador.Iu

ValorNúcleoFórmula
'box'Caja (uniforme)

f(x)=0.5I{|x|1}

'epanechnikov'Epanechnikov

f(x)=0.75(1x2)I{|x|1}

'normal'Gaussiano

f(x)=12πexp(0.5x2)

'triangle'Triangular

f(x)=(1|x|)I{|x|1}

Si una celda está vacía (), entonces el software no encajaba en una distribución del kernel al predictor correspondiente.[]

Tipos de datos: char | cell

Valores de parámetro utilizados para entrenar el clasificador (como los valores de argumento de par nombre-valor), especificados como un objeto. Esta tabla resume las propiedades de.ModelParameters Las propiedades corresponden a los valores de argumento de par nombre-valor establecidos para entrenar el clasificador.

PropiedadPropósito
DistributionNamesDistribución de datos o distribuciones. Este es el mismo valor que la propiedad.DistributionNames
NúcleoTipo de kernel más suave. Esto es lo mismo que la propiedad.Núcleo
MethodMétodo de entrenamiento. Para Bayes ingenua, el valor es.'NaiveBayes'
SupportSoporte de densidad de suavizado de kernel. Esto es lo mismo que la propiedad.Support
TypeTipo de aprendizaje. Para la clasificación, el valor es.'classification'
WidthAncho de ventana de suavizado del kernel. Esto es lo mismo que la propiedad.Width

Campos de acceso de uso de notación de puntos.ModelParameters Por ejemplo, acceda al soporte del kernel utilizando.Mdl.ModelParameters.Support

Número de observaciones de formación, especificadas como un escalar numérico.

Si o contiene valores faltantes, entonces podría ser menor que la longitud de.XYNumObservationsY

Tipos de datos: double

Nombres de predictor, especificados como una matriz de celdas de vectores de caracteres. El orden de los elementos en corresponde a la orden en.PredictorNamesX

Tipos de datos: cell

Probabilidades previas de clase, especificadas como un vector de fila numérico. es un 1 por Vector, y el orden de sus elementos corresponden a los elementos de.PriorKClassNames

Normaliza las probabilidades previas que se establecen utilizando el parámetro de par nombre-valor para que =.fitcnb'Prior'sum(Prior)1

El valor de no cambia el modelo de mejor ajuste.Prior Por lo tanto, puede restablecer después del entrenamiento utilizando la notación de puntos, por ejemplo,.PriorMdlMdl.Prior = [0.2 0.8];

Tipos de datos: double | single

Nombre de la respuesta, especificado como vector de caracteres.

Tipos de datos: char

Función de transformación de puntuación de clasificación, especificada como un controlador de función o vector de caracteres.

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 (las puntuaciones originales) y devolver una matriz del mismo tamaño (las puntuaciones transformadas).

Tipos de datos: char | function_handle

Soporte de densidad más suave del kernel, especificado como vector de celda. tiene una longitud igual al número de predictores ().Supportsize(X,2) Las celdas representan las regiones para aplicar la densidad del kernel.

En esta tabla se describen las opciones admitidas.

ValorDescripción
Vector de fila numérico 1 por 2Por ejemplo,, donde y son los límites inferior y superior finitos, respectivamente, para el soporte de densidad.[L,U]LU
'positive'El soporte de densidad es todos los valores reales positivos.
'unbounded'El soporte de densidad es todos los valores reales.

Si una celda está vacía (), entonces el software no encajaba en una distribución del kernel al predictor correspondiente.[]

Ponderaciones de observación, especificadas como un vector numérico.

La longitud de es.WNumObservations

Normaliza el valor que se establece para el parámetro de par nombre-valor de modo que los pesos dentro de una clase determinada suman a la probabilidad anterior para esa clase.fitcnb'Weights'

Tipos de datos: double

Ancho de ventana más suave del kernel, especificado como una matriz numérica. es un-por-matriz, donde es el número de clases en los datos, y es el número de predictores ().WidthKPKPsize(X,2)

Width(k,j) es el ancho de ventana más suave del kernel para la densidad de suavizado del kernel del predictor j dentro de la clase k. s en la columnaNaN j indican que el software no encajaba en el predictor j utilizando una densidad de kernel.

Datos predictores no estandarizados, especificados como una matriz numérica. tiene filas y columnas.XNumObservationsP

Cada fila de corresponde a una observación, y cada columna corresponde a una variable.X

El software excluye las filas eliminadas debido a los valores faltantes de.X

Tipos de datos: double

Etiquetas de clase observadas, especificadas como una matriz categórica o de caracteres, Vector lógico o numérico, o matriz de celdas de vectores de caracteres. es el mismo tipo de datos que el argumento de entrada de.YYfitcnb (The software treats string arrays as cell arrays of character vectors.)

Cada fila de representa la clasificación observada de la fila correspondiente de.YX

El software excluye los elementos eliminados debido a los valores faltantes.Y

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

Métodos

compactClasificador Bayes Ingenuo compacto
crossvalClasificador Bayes ingenuo de validación cruzada
resubEdgeBorde de clasificación para clasificadores Bayes ingenuos mediante el reenvío
resubLossPérdida de clasificación para clasificadores Bayes ingenuos mediante la representación
resubMarginMárgenes de clasificación de los clasificadores Bayes ingenuos mediante la representación
resubPredictPredecir las etiquetas de reenvío del clasificador Bayes ingenuo

Métodos heredados

edgeBorde de clasificación para clasificadores Bayes ingenuos
logPRegistre la densidad de probabilidad incondicional para el clasificador Bayes ingenuo
lossError de clasificación para el clasificador Bayes ingenuo
marginLos márgenes de clasificación de los clasificadores Bayes ingenuos
predictPredecir etiquetas utilizando el modelo de clasificación Bayes ingenuo

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

Construya un clasificador Bayes Ingenuo para los datos de iris de Fisher. Además, especifique las probabilidades previas después del entrenamiento.

Cargue los datos de iris de Fisher.

load fisheriris X = meas; Y = species;

es una matriz numérica que contiene cuatro mediciones de pétalo para 150 iris. es una matriz celular de vectores de caracteres que contiene las especies de iris correspondientes.XY

Entrena a un ingenuo clasificador Bayes.

Mdl = fitcnb(X,Y)
Mdl =    ClassificationNaiveBayes               ResponseName: 'Y'      CategoricalPredictors: []                 ClassNames: {'setosa'  'versicolor'  'virginica'}             ScoreTransform: 'none'            NumObservations: 150          DistributionNames: {'normal'  'normal'  'normal'  'normal'}     DistributionParameters: {3x4 cell}     Properties, Methods  

es un clasificador entrenado, y algunas de sus propiedades se muestran en la ventana de comandos.MdlClassificationNaiveBayes De forma predeterminada, el software trata cada predictor como independiente y se ajusta a ellos mediante distribuciones normales.

Para acceder a las propiedades de, utilice la notación de puntos.Mdl

Mdl.ClassNames
ans = 3x1 cell array
    {'setosa'    }
    {'versicolor'}
    {'virginica' }

Mdl.Prior
ans = 1×3

    0.3333    0.3333    0.3333

contiene las probabilidades previas de la clase, que se pueden poder usar con el argumento de par nombre-valor en.Mdl.Prior'Prior'fitcnb El orden de las probabilidades previas de la clase corresponde al orden de las clases en.Mdl.ClassNames De forma predeterminada, las probabilidades anteriores son las respectivas frecuencias relativas de las clases de los datos.

También puede restablecer las probabilidades previas después del entrenamiento. Por ejemplo, establezca las probabilidades anteriores en 0,5, 0,2 y 0,3 respectivamente.

Mdl.Prior = [0.5 0.2 0.3];

Puede pasar, p. ej., para etiquetar nuevas mediciones o para cruzar la validación del clasificador.MdlPredecircrossval

Más acerca de

expandir todo

Algoritmos

  • Si especifica cuándo se utiliza el entrenamiento, el software se ajusta a una distribución multinomial utilizando el.'DistributionNames','mn'Mdlfitcnbmodelo de bolsa de tokens El software almacena la probabilidad de que el token j aparece en la clase k en la propiedad DistributionParameters{k,j}. Con el suavizado de aditivos, la probabilidad estimada es[2]

    P(token j|class k)=1+cj|kP+ck,

    Dónde:

    • cj|k=nki:yiclass kxijwii:yiclass kwi; que es el número ponderado de apariciones de token en la clase.jk

    • Nk es el número de observaciones en la clase.k

    • wi es el peso de la observación.i El software normaliza los pesos dentro de una clase de tal forma que suman la probabilidad anterior para esa clase.

    • ck=j=1Pcj|k; que es el número ponderado total de ocurrencias de todos los tokens en la clase.k

  • Si especifica cuándo se utiliza el entrenamiento, entonces:'DistributionNames','mvmn'Mdlfitcnb

    1. Para cada predictor, el software recopila una lista de los niveles únicos, almacena la lista ordenada en, y considera cada nivel un bin.CategoricalLevels Cada combinación de predictor/clase es una variable aleatoria independiente multinomial independiente.

    2. Para el predictor j en la clase, el software cuenta las instancias de cada nivel categórico utilizando la lista almacenada enk CategoricalLevels{j}.

    3. El software almacena la probabilidad de que el predictor j, en la clase k, tiene nivel en la propiedadL DistributionParameters{k,j}, para todos los niveles en CategoricalLevels{j}. Con el suavizado de aditivos, la probabilidad estimada es[2]

      P(predictor j=L|class k)=1+mj|k(L)mj+mk,

      Dónde:

      • mj|k(L)=nki:yi class kI{xij=L}wii:yi class kwi; que es el número ponderado de observaciones para las que el predictor equivale a la clase.jLk

      • Nk es el número de observaciones en la clase.k

      • I{xij=L}=1 Si Xij =, 0 en caso contrario.L

      • wi es el peso de la observación.i El software normaliza los pesos dentro de una clase de tal forma que suman la probabilidad anterior para esa clase.

      • Mj es el número de niveles distintos en el predictor.j

      • Mk es el número ponderado de observaciones en clase.k

Referencias

[1] Hastie, T., R. Tibshirani, and J. Friedman. The Elements of Statistical Learning, Second Edition. NY: Springer, 2008.

[2] Manning, C. D., P. Raghavan, and M. Schütze. Introduction to Information Retrieval, NY: Cambridge University Press, 2008.

Capacidades ampliadas