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.

templateNaiveBayes

Plantilla clasificador Naive Bayes

Descripción

ejemplo

t = templateNaiveBayes() Devuelve una plantilla adecuada para entrenar modelos multiclase de código de salida de corrección de errores (ECOC).ingenuo Bayes

Si especifica una plantilla predeterminada, el software utiliza los valores predeterminados para todos los argumentos de entrada durante el entrenamiento.

Especifique como alumno en.tfitcecoc

ejemplo

t = templateNaiveBayes(Name,Value) Devuelve una plantilla con opciones adicionales especificadas por uno o más argumentos de par nombre-valor. Todas las propiedades de están vacías, excepto las que especifique mediante argumentos de par.tName,Value

Por ejemplo, puede especificar distribuciones para los predictores.

Si se muestra en la ventana de comandos, todas las opciones aparecerán vacías (), excepto las que especifique mediante los argumentos de par nombre-valor.t[] Durante el entrenamiento, el software utiliza valores predeterminados para las opciones vacías.

Ejemplos

contraer todo

Se usa para especificar una plantilla Bayes ingenua predeterminada.templateNaiveBayes

t = templateNaiveBayes()
t =  Fit template for classification NaiveBayes.      DistributionNames: [1x0 double]                Kernel: []               Support: []                 Width: []               Version: 1                Method: 'NaiveBayes'                  Type: 'classification'  

Todas las propiedades del objeto de plantilla están vacías excepto y.MethodType Al pasar a la función de entrenamiento, el software rellena las propiedades vacías con sus respectivos valores predeterminados.t Por ejemplo, el software rellena la propiedad con una matriz de vectores de caracteres de 1 por celda en cada celda, donde es el número de predictores.DistributionNamesD'normal'D Para obtener más información sobre otros valores predeterminados, consulte.fitcnb

es un plan para un aprendiz Bayes ingenuo y no se produce ningún cálculo cuando se especifica.t Puede pasar a especificar los estudiantes binarios de Bayes ingenuos para el aprendizaje multiclase de ECOC.tfitcecoc

Cree una plantilla Bayes ingenua no predeterminada para usarla.fitcecoc

Cargue el conjunto de datos de iris de Fisher.

load fisheriris

Cree una plantilla para los clasificadores binarios de Bayes ingenuos y especifique distribuciones de kernel para todos los predictores.

t = templateNaiveBayes('DistributionNames','kernel')
t =  Fit template for classification NaiveBayes.      DistributionNames: 'kernel'                Kernel: []               Support: []                 Width: []               Version: 1                Method: 'NaiveBayes'                  Type: 'classification'  

Todas las propiedades del objeto de plantilla están vacías excepto, y.DistributionNamesMethodType Al pasar a la función de entrenamiento, el software rellena las propiedades vacías con sus respectivos valores predeterminados.t

Especifique como un aprendizaje binario para un modelo multiclase ECOC.t

Mdl = fitcecoc(meas,species,'Learners',t);

De forma predeterminada, el software se entrena utilizando el diseño de codificación uno contra uno.Mdl

Muestra el error de clasificación errónea en la muestra (reenvío).

L = resubLoss(Mdl,'LossFun','classiferror')
L = 0.0333 

Argumentos de entrada

contraer todo

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: especifica para tratar todos los predictores como recuentos de tokens para un modelo multinomial.'DistributionNames','mn'

Las distribuciones de datos se utilizan para modelar los datos, especificados como el par separado por comas que consta de un vector de caracteres o un escalar de cadena, una matriz de cadenas o una matriz de vectores de caracteres con valores de esta tabla.fitcnb'DistributionNames'

ValorDescripción
'kernel'Estimación de densidad de suavizado del kernel.
'mn'Distribución multinomial. Si se especifica, todas las entidades son componentes de una distribución multinomial.mn Por lo tanto, no se puede incluir como un elemento de una matriz de cadenas o una matriz de vectores de caracteres.'mn' Para obtener más información, consulte.Algoritmos
'mvmn'Distribución multinomial multivariado. Para obtener más información, consulte.Algoritmos
'normal'Distribución normal (gaussiana).

Si especifica un vector de caracteres o un escalar de cadena, el software modela todas las entidades que utilizan esa distribución. Si especifica una matriz de 1 por cadena o una matriz de vectores de caracteres, la característica de modelos de software utiliza la distribución en el elemento de la matriz.Pjj

De forma predeterminada, el software establece todos los predictores especificados como predictores categóricos (utilizando el argumento de par nombre-valor).CategoricalPredictors'mvmn' De lo contrario, la distribución predeterminada es.'normal'

Debe especificar que al menos un predictor tenga distribución para especificar Adicionalmente, o.'kernel'NúcleoSupportWidth

Ejemplo: 'DistributionNames','mn'

Ejemplo: 'DistributionNames',{'kernel','normal','kernel'}

Kernel tipo más suave, especificado como el par separado por comas que consta de un vector de caracteres o un escalar de cadena, una matriz de cadenas o una matriz de celdas de vectores de caracteres.'Kernel'

En esta tabla se resumen las opciones disponibles para establecer la región de densidad de suavizado del kernel. 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 especifica una matriz de 1 por cadena o matriz de celdas, con cada elemento de la matriz que contiene cualquier valor en la tabla, el software entrena el clasificador utilizando el tipo de elemento más suave del kernel para la característica.PjjX El software ignora elementos que no corresponden a un predictor cuya distribución es.Núcleo'kernel'

Debe especificar que al menos un predictor tenga distribución para especificar Adicionalmente, o.'kernel'NúcleoSupportWidth

Ejemplo: 'Kernel',{'epanechnikov','normal'}

Compatibilidad con la densidad de suavizado del kernel, especificada como el par separado por comas que consta de y, una matriz de cadenas, una matriz de celdas o un vector de fila numérico.'Support''positive''unbounded' El software aplica la densidad de suavizado del kernel a la región especificada.

En esta tabla se resumen las opciones disponibles para establecer la región de densidad de suavizado del kernel.

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 especifica una matriz de 1 por cadena o matriz de celdas, con cada elemento de la matriz de cadenas que contiene cualquier valor de texto en la tabla y cada elemento de la matriz de celdas que contiene cualquier valor en la tabla, el software entrena el clasificador utilizando el soporte del kernel en el elemento para la característica en.PjjX El software ignora elementos que no corresponden a un predictor cuya distribución es.Núcleo'kernel'

Debe especificar que al menos un predictor tenga distribución para especificar Adicionalmente, o.'kernel'NúcleoSupportWidth

Ejemplo: 'KSSupport',{[-10,20],'unbounded'}

Tipos de datos: char | string | cell | double

Ancho de ventana de suavizado del kernel, especificado como el par separado por comas que consta de una matriz de valores numéricos, un vector de columna numérico, un vector de fila numérico o un escalar.'Width'

Supongamos que hay niveles de clase y predictores.KP Esta tabla resume las opciones disponibles para establecer el ancho de la ventana de suavizado del kernel.

ValorDescripción
-por-matriz de valores numéricosKPElement () especifica el ancho para el predictor en la clase.k,jjk
-por-1 vector de columna numéricaKElement especifica el ancho de todos los predictores en la clase.kk
Vector de fila 1 por numéricoPElement especifica el ancho en todos los niveles de clase para el predictor.jj
EscalarEspecifica el ancho de banda de todas las entidades en todas las clases.

De forma predeterminada, el software selecciona automáticamente un ancho predeterminado para cada combinación de predictor y clase utilizando un valor que es óptimo para una distribución gaussiana. Si especifica y contiene s, el software seleccionará anchuras para los elementos que contengan s.WidthNaNNaN

Debe especificar que al menos un predictor tenga distribución para especificar Adicionalmente, o.'kernel'NúcleoSupportWidth

Ejemplo: 'Width',[NaN NaN]

Tipos de datos: double | struct

Argumentos de salida

contraer todo

Plantilla de clasificación Bayes Naive adecuada para el entrenamiento de modelos multiclase de código de salida de corrección de errores (ECOC), devuelta como un objeto de plantilla. Pase a para especificar cómo crear el clasificador Bayes Ingenuo para el modelo ECOC.tfitcecoc

Si se visualiza en la ventana de comandos, todas las opciones no especificadas aparecerán vacías ().t[] Sin embargo, el software reemplaza las opciones vacías con sus valores predeterminados correspondientes durante el entrenamiento.

Más acerca de

contraer todo

Naive Bayes

es un algoritmo de clasificación que aplica la estimación de densidad a los datos.Naive Bayes

El algoritmo aprovecha el teorema de Bayes y (naively) asume que los predictores son condicionalmente independientes, dada la clase. Aunque la suposición generalmente se viola en la práctica, los clasificadores Bayes ingenuos tienden a producir distribuciones posteriores que son robustas a las estimaciones de densidad de clase sesgadas, particularmente cuando la posterior es 0,5 (el límite de decisión).[1]

Los clasificadores Naive Bayes asignan observaciones a la clase más probable (en otras palabras, la regla de decisión).máximo a posteriori Explícitamente, el algoritmo:

  1. Estima las densidades de los predictores dentro de cada clase.

  2. Modelos de probabilidades posteriores según la regla de Bayes. Es decir, para todos = 1,...,,kK

    P^(Y=k|X1,..,XP)=π(Y=k)j=1PP(Xj|Y=k)k=1Kπ(Y=k)j=1PP(Xj|Y=k),

    Dónde:

    • es la variable aleatoria correspondiente al índice de clase de una observación.Y

    • X1,...,XP son los predictores aleatorios de una observación.

    • π(Y=k) es la probabilidad previa de que un índice de clase es.k

  3. Clasifica una observación mediante la estimación de la probabilidad posterior para cada clase y, a continuación, asigna la observación a la clase que produce la máxima probabilidad posterior.

Si los predictores componen una distribución multinomial, entonces la probabilidad posteriorP^(Y=k|X1,..,XP)π(Y=k)Pmn(X1,...,XP|Y=k), Dónde Pmn(X1,...,XP|Y=k) es la función de masa de probabilidad de una distribución multinomial.

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.

Introducido en R2014b