Main Content

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

Clasificación Naive Bayes

Descripción

es un clasificador para el aprendizaje multiclase.ClassificationNaiveBayesbayes ingenuos Usar y los datos de entrenamiento para entrenar un clasificador.fitcnbClassificationNaiveBayes

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

  • Estimar predicciones de sustitución. Para obtener más información, consulte resubPredict.

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

Construcción

Cree un objeto mediante .ClassificationNaiveBayesfitcnb

Propiedades

expandir todo

Los índices predictores categóricos, especificados como un vector de enteros positivos. contiene valores de índice correspondientes a las columnas de los datos predictores que contienen predictores categóricos.CategoricalPredictors Si ninguno de los predictores es categórico, esta propiedad está vacía ( ).[]

Tipos de datos: single | double

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

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

Si predictor es multivariante multivariante, entonces es una lista de todos los valores distintos del predictor en la muestra ( s eliminado 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

Coste de clasificación incorrecta, especificado como una matriz cuadrada por.KK

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

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

Tipos de datos: double | single

Distribuciones predictores se utiliza para modelar los predictores, especificados como un vector de caracteres o matriz de celdas de vectores de caracteres.fitcnb

Esta tabla resume las distribuciones disponibles.

ValorDescripción
'kernel'Estimación de la densidad de suavizado del núcleo.
'mn'Multinomial.modelo de bolsa de tokens Indica que todos los predictores tienen esta distribución.
'mvmn'Distribución multivariante multivariante.
'normal'Distribución normal (gausiana).

Si es una matriz de vectores de caracteres de 1 por celda, los modelos de software se caracterizan por utilizar 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 -por- celda, donde cell ( , ) contiene las estimaciones de parámetros de distribución para instancias de predictor en la 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ío ( ).[]

Los elementos de depende de las distribuciones de los predictores.DistributionParameters Esta tabla describe los valores en DistributionParameters{k,j}.

Distribución del PredictorjValor
kernelUn modelo.KernelDistribution Mostrar propiedades mediante la indexación de celdas y la notación de puntos. Por ejemplo, para mostrar el ancho de banda estimado de la densidad del núcleo para el predictor 2 en la tercera clase, utilice .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
mvmnVector numérico que contiene las probabilidades para cada nivel posible de predictor en la clase .jk El software ordena las probabilidades por el orden ordenado de todos los niveles únicos del predictor (almacenados en la propiedad).jCategoricalLevels Para obtener más información, consulte .Algoritmos
normalUn vector numérico 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 expandidos, almacenados como una matriz de celdas de vectores de caracteres.

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

Tipos de datos: cell

Descripción de la optimización de validación cruzada de 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 al crear el modelo, como se describe en esta tabla.HyperparameterOptimizationResultsOptimizerHyperparameterOptimizationOptions

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

Tipos más suaves del núcleo, especificados como un vector de caracteres o una matriz de celdas 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 núcleo más suave.Kernelsize(X,2)Kernel{j}j En esta tabla se describen los tipos más suaves del kernel admitidos. Denotar 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 ( ), el software no encajaba una distribución del núcleo en el 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 o distribución de datos. Este es el mismo valor que la propiedad .DistributionNames
KernelTipo más suave del núcleo. Esto es lo mismo que la propiedad .Kernel
MethodMétodo de entrenamiento. Para Bayes ingenuos, el valor es .'NaiveBayes'
SupportSoporte de densidad de suavizado del núcleo. Esto es lo mismo que la propiedad .Support
TypeTipo de aprendizaje. Para la clasificación, el valor es .'classification'
WidthAncho de la ventana de suavizado del núcleo. Esto es lo mismo que la propiedad .Width

Acceda a los campos de uso de la notación de puntos.ModelParameters Por ejemplo, acceda al soporte del kernel mediante .Mdl.ModelParameters.Support

Número de observaciones de entrenamiento, especificadas como escalares numéricos.

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

Tipos de datos: double

Nombres predictores, 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 anteriores de clase, especificadas como un vector de fila numérico. es un vector 1 por, y el orden de sus elementos corresponde a los elementos de .PriorKClassNames

normaliza las probabilidades anteriores que se establecen mediante el parámetro de par nombre-valor para que .fitcnb'Prior'sum(Prior)1

El valor de no cambia el modelo que mejor se ajusta.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 respuesta, especificado como vector de caracteres.

Tipos de datos: char

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

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

  • Para una función integrada, introduzca 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 alta en , y establece las puntuaciones de todas las demás clases en10
    'logit'1/(1 +ex)
    O'none''identity'(sin transformación)x
    'sign'–1 para <0 0 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 alta en , y establece las puntuaciones de todas las demás clases en1–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 núcleo, 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 núcleo.

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 finito, respectivamente, para el soporte de densidad.[L,U]LU
'positive'El soporte de densidad es todos valores reales positivos.
'unbounded'El soporte de densidad es todos valores reales.

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

Pesos de observación, especificados como un vector numérico.

La longitud de es .WNumObservations

normaliza el valor establecido para el parámetro de par nombre-valor para que las ponderaciones dentro de una clase determinada sume la probabilidad anterior para esa clase.fitcnb'Weights'

Tipos de datos: double

Ancho de ventana más suave del núcleo, especificado como una matriz numérica. es una matriz -por-, donde está 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 núcleo para la densidad de suavizado del núcleo del predictor j dentro de la clase k. s en la columnaNaN j indicar que el software no encajaba en 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 la falta de valores de .X

Tipos de datos: double

Etiquetas de clase observadas, especificadas como una matriz categórica o de caracteres, un vector lógico o numérico o una 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 la falta de valores de .Y

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

Métodos

Métodos heredados

Copiar semántica

Valor. Para obtener información sobre cómo afectan las clases de valor a las operaciones de copia, consulte .Copia de objetos

Ejemplos

contraer todo

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

Cargue los datos del iris de Fisher.

load fisheriris X = meas; Y = species;

es una matriz numérica que contiene cuatro medidas de pétalos para 150 iris. es una matriz de células de vectores de caracteres que contiene las especies de iris correspondientes.XY

Entrena a un clasificador Bayes ingenuo.

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 anteriores de la clase, que se pueden establecer mediante el argumento de par nombre-valor en .Mdl.Prior'Prior'fitcnb El orden de las probabilidades anteriores 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 en los datos.

También puede restablecer las probabilidades anteriores 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 a, por ejemplo, para etiquetar nuevas mediciones o para validar el clasificador.Mdlpredictcrossval

Más acerca de

expandir todo

Algoritmos

  • Si especifica al entrenar utilizando , el software se ajusta a una distribución multinomial mediante el archivo .'DistributionNames','mn'Mdlfitcnbmodelo de bolsa de tokens El software almacena la probabilidad de que el token j aparece en clase k en la propiedad DistributionParameters{k,j}. Mediante el suavizado aditivo, 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 clase.k

    • wi es el peso para la observación.i El software normaliza las ponderaciones dentro de una clase de modo que sume a la probabilidad anterior para esa clase.

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

  • Si especifica al entrenar utilizando , 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 una ubicación.CategoricalLevels Cada combinación predictor/clase es una variable aleatoria multinomial independiente e independiente.

    2. Para predictor j en 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 clase k, tiene nivel en la propiedadL DistributionParameters{k,j}, para todos los niveles de CategoricalLevels{j}. Mediante el suavizado aditivo, 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 predictor es igual en clase .jLk

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

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

      • wi es el peso para la observación.i El software normaliza las ponderaciones dentro de una clase de modo que sume a 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 la 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