Home | Develop | Download | Contact
Namespaces | Estructuras de datos

Métodos de la clase Pds::NBGMM, un classificador multivariado Naive Bayes. Más...

Namespaces

namespace  Pds
 Nombre de espacio para Pds (Procesamiento Digital de Senales)
 

Estructuras de datos

class  Pds::NBGMM
 La clase tipo Pds::NBGMM . Esta clase genera una matriz de Nlin lineas y 1 columna. Para usar incluir Pds/NBGMM. Más...
 

Varios tipos de constructores

Crean una objeto Pds::NBGMM

 Pds::NBGMM::NBGMM (void)
 Crea un objeto vazio de tipo Pds::NBGMM. El método IsEmpty() retorna true. Más...
 
 Pds::NBGMM::NBGMM (const char filename[])
 Carga un vector de pesos desde un archivo de texto. Más...
 
 Pds::NBGMM::NBGMM (const std::string &filename)
 Carga un vector de pesos desde un archivo de texto. Más...
 
 Pds::NBGMM::NBGMM (const Pds::NBGMM &B)
 Crea un objeto de tipo Pds::NBGMM copiando datos desde otra NBGMM. Este es un Copy assignment constructor. Más...
 
 Pds::NBGMM::NBGMM (const Pds::IterationConf &Conf, const Pds::Matrix &X, const Pds::Vector &Y, const std::vector< unsigned int > &K, double Sigma=0.5)
 Crea un objeto de tipo Pds::NBGMM calculando desde los vectores de entrada en X. Más...
 
 Pds::NBGMM::~NBGMM ()
 

Evaluación del NBGMM

Indican o establecen el estado de una matriz.

double Pds::NBGMM::Predict (const Pds::Vector &x) const
 Evalua el objeto de tipo Pds::NBGMM. Más...
 
Pds::Vector Pds::NBGMM::Predict (const Pds::Matrix &X) const
 Evalua el objeto de tipo Pds::NBGMM. Más...
 

Export en file

Exporta el arbol en un archivo

bool Pds::NBGMM::ExportFile (const std::string &filename) const
 Salva en formato .txt el objeto de tipo Pds::NBGMM. Más...
 

Estado del NBGMM

Indican o establecen el estado de una matriz.

bool Pds::NBGMM::IsEmpty (void) const
 Verifica si el NBGMM está vazio. Más...
 
bool Pds::NBGMM::IsNotEmpty (void) const
 Verifica si el NBGMM NO está vazio. Más...
 

Métodos variados en Pds::NBGMM

Herramientas genéricas

Pds::NBGMMPds::NBGMM::operator= (const Pds::NBGMM &B)
 Copia en si mismo (A), un NBGMM B. Este operador es similar al método Copy(). No importa el tamaño de A, sus datos son liberados y un nuevo arreglo de datos es reservado. Más...
 
bool Pds::NBGMM::Copy (const Pds::NBGMM &B)
 Copia en si mismo (A), el contenido de un NBGMM B. Este método es similar a usar el operador = . No importa el tamaño de A, sus datos son liberados y un nuevo arreglo de datos es reservado. Más...
 

Métodos variados

Herramientas genéricas

void Pds::NBGMM::MakeEmpty (void)
 Convierte el PCS a vazio, es decir limpia todos los datos internos. Más...
 
unsigned int Pds::NBGMM::GetN (void) const
 Retorna el tamanho de la variable de entrada. Más...
 
unsigned int Pds::NBGMM::GetM (void) const
 Retorna el número de clases. Más...
 
std::vector< Pds::DataGMMPds::NBGMM::GetDat (void) const
 Retorna los datos GMM. Más...
 
std::vector< double > Pds::NBGMM::GetPi (void) const
 Retorna un std::vector de valores que representan la probabilidad a priori de cada clase. Más...
 
std::vector< int > Pds::NBGMM::GetLabel (void) const
 Retorna un std::vector de valores que representan las etiquetas para cada ID. Más...
 
void Pds::NBGMM::Print (std::string str="") const
 Imprime en pantalla el contenido del NBGMM. Más...
 

Descripción detallada

Métodos de la clase Pds::NBGMM, un classificador multivariado Naive Bayes.

#include <Pds/NBGMM>

Este es bloque o maquina evalua y calcula el NBGMM. Informacion adicional puede ser encontrada en el articulo "A Novel Gaussian Mixture Model for Classification" [4]

Documentación de las funciones

◆ NBGMM() [1/5]

Pds::NBGMM::NBGMM ( void  )

Crea un objeto vazio de tipo Pds::NBGMM. El método IsEmpty() retorna true.

◆ NBGMM() [2/5]

Pds::NBGMM::NBGMM ( const char  filename[])

Carga un vector de pesos desde un archivo de texto.

Pds::NBGMM A("file_with_w.txt");
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
La clase tipo Pds::NBGMM . Esta clase genera una matriz de Nlin lineas y 1 columna....
Definition: NBGMM.hpp:65
Parámetros
[in]filenameArchivo donde se encuentran los datos NBGMM.

◆ NBGMM() [3/5]

Pds::NBGMM::NBGMM ( const std::string &  filename)

Carga un vector de pesos desde un archivo de texto.

Pds::NBGMM A("file_with_w.txt");
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
Parámetros
[in]filenameArchivo donde se encuentran los datos de NBGMM.

◆ NBGMM() [4/5]

Pds::NBGMM::NBGMM ( const Pds::NBGMM B)

Crea un objeto de tipo Pds::NBGMM copiando datos desde otra NBGMM. Este es un Copy assignment constructor.

\[ \mathbf{A} \leftarrow \mathbf{B} \]

Para crear un NBGMM A con copia de datos de un NBGMM B:

// Pds::NBGMM B(...);
if(A.IsEmpty()) std::cout<<"Yes,possible memory allocation problem\n";
else std::cout<<"No,all fine\n";
Parámetros
[in]BNBGMM a copiar.

◆ NBGMM() [5/5]

Pds::NBGMM::NBGMM ( const Pds::IterationConf Conf,
const Pds::Matrix &  X,
const Pds::Vector &  Y,
const std::vector< unsigned int > &  K,
double  Sigma = 0.5 
)

Crea un objeto de tipo Pds::NBGMM calculando desde los vectores de entrada en X.

Separamos los datos $\mathbf{X}$, $\mathbf{y}$ en $M$ grupos, donde $M$ es el número de clases en el vector $\mathbf{y}$.

\[ \mathbf{X}=\mathbf{X}^{(1)}, ...,\mathbf{X}^{(m)},..., \mathbf{X}^{(M)}; \qquad \mathbf{y}=\mathbf{y}^{(1)}, ...,\mathbf{y}^{(m)},..., \mathbf{y}^{(M)}; \qquad \]

\[ \mathbf{label}=label^{(1)}, ...,label^{(m)},..., label^{(M)}; \qquad \boldsymbol{\alpha}=\alpha^{(1)}, ...,\alpha^{(m)},..., \alpha^{(M)}; \]

Donde $\mathbf{X}^{(m)}$ es un vector con las muestras de la clase $m$ con etiqueta $label^{(m)}$, $\mathbf{y}$ es su correspondiente vector de etiquetas y $\alpha^{(m)}$ es la probabilidad a priori de la clase $m$.
Con todos estos datos calculamos:

\[ \mathbf{Dat}^{(m)} \leftarrow Pds::Clustering::GMM(\mathbf{X}^{(m)},k^{(m)}) \]

\[ \mathbf{Dat}^{(m)} \equiv \{\pi_1,...,\pi_{k^{(m)}}; \quad \boldsymbol{\mu}_1,...,\boldsymbol{\mu}_{k^{(m)}}; \quad \boldsymbol{\Sigma}_{1}^{-1},...,\boldsymbol{\Sigma}_{k^{(m)}}^{-1}; \quad |\boldsymbol{\Sigma}_1|,...,|\boldsymbol{\Sigma}_{k^{(m)}}|\}^{(m)} \]

Así, la función de probabilidad $p\left(\mathbf{x};\mathbf{Dat}^{(m)}\right)$ de que una muestra $\mathbf{x}$ pertenezca a la clase $m$ es:

\[ p\left(\mathbf{x};\mathbf{Dat}^{(m)}\right)=\sum\limits_{j}^{k^{(m)}}\pi_j^{(m)}~ N(\mathbf{x};\mathbf{\mu}_j^{(m)},\mathbf{\Sigma}_j^{(m)})\\ \]

\[ N(\mathbf{x};\mathbf{\mu},\mathbf{\Sigma})= \frac{ \exp \left( -\frac {1}{2}({\mathbf{x}}-{\boldsymbol{\mu}})^{\mathrm {T}}{\boldsymbol{\Sigma}}^{-1}({\mathbf {x} }-{\boldsymbol{\mu}}) \right) }{\sqrt {(2\pi )^{N}|{\boldsymbol{\Sigma}}|}} \]

Las variable internas obtenidas són: $\mathbf{Dat}^{(m)}$, $\alpha^{(m)}$ y $label^{(m)}$ para cada valor $m\in\{1,2,...,M\}$.

Informacion adicional puede ser encontrada en el articulo "A Novel Gaussian Mixture Model for Classification" [4]

Parámetros
[in]ConfConfiguration block.
[in]XMatriz con entradas en las lineas.
[in]YVector categórias.
[in]KVector de GMM clusters por clase. $\mathbf{k}=k^{(1)}, ...,k^{(m)},..., k^{(M)}$ El vector debe tener el mismo tamaño que número de clases.
[in]SigmaSigma inicial para el cáculo de todos los GMM.

◆ Predict() [1/2]

double Pds::NBGMM::Predict ( const Pds::Vector &  x) const

Evalua el objeto de tipo Pds::NBGMM.

Podemos usar Naive Bayes para clasificar las muestras; así, la clase $\hat{m}$ con etiqueta $label^{(\hat{m})}$ a la que pertenece la muestra $\mathbf{x}$ se calcula:

\[ \hat{m}=\underset{m}{\mathrm{arg\,max}}\left\{\alpha^{(m)} p\left(\mathbf{x};\mathbf{Dat}^{(m)}\right)\right\} \]

Informacion adicional puede ser encontrada en el articulo "A Novel Gaussian Mixture Model for Classification" [4]

Parámetros
[in]xVector de entradas.
Devuelve
el valor evaluado

◆ Predict() [2/2]

Pds::Vector Pds::NBGMM::Predict ( const Pds::Matrix &  X) const

Evalua el objeto de tipo Pds::NBGMM.

Podemos usar Naive Bayes para clasificar las muestras; así, la clase $\hat{m}$ con etiqueta $label^{(\hat{m})}$ a la que pertenece la muestra $\mathbf{x}$ se calcula:

\[ \hat{m}=\underset{m}{\mathrm{arg\,max}}\left\{\alpha^{(m)} p\left(\mathbf{x};\mathbf{Dat}^{(m)}\right)\right\} \]

Informacion adicional puede ser encontrada en el articulo "A Novel Gaussian Mixture Model for Classification" [4]

Parámetros
[in]XMatriz con entradas x en las lineas.
Devuelve
La matriz evaluada.

◆ ExportFile()

bool Pds::NBGMM::ExportFile ( const std::string &  filename) const

Salva en formato .txt el objeto de tipo Pds::NBGMM.

Parámetros
[in]filenameNombre de archivo donde se escribirá el arbol en formato .txt.
Devuelve
Retorna true si todo fue bien o false si no.

◆ IsEmpty()

bool Pds::NBGMM::IsEmpty ( void  ) const

Verifica si el NBGMM está vazio.

Devuelve
Retorna true si es nula e false si no.

◆ IsNotEmpty()

bool Pds::NBGMM::IsNotEmpty ( void  ) const

Verifica si el NBGMM NO está vazio.

Devuelve
Retorna true si NO es nula e false si lo es.

◆ operator=()

Pds::NBGMM& Pds::NBGMM::operator= ( const Pds::NBGMM B)

Copia en si mismo (A), un NBGMM B. Este operador es similar al método Copy(). No importa el tamaño de A, sus datos son liberados y un nuevo arreglo de datos es reservado.

\[ A \leftarrow B \]

Cuando acontece:

Pds::NBGMM B(X,2);
A=B;

Cuando NO acontece:

Parámetros
[in]BEl NBGMM a copiar
Devuelve
Retorna el operador de la izquierda (acumulador) con el resultado, o un NBGMM vacío (this->IsEmpty() igual a true) en caso de error.
Ver también
Copy

◆ Copy()

bool Pds::NBGMM::Copy ( const Pds::NBGMM B)

Copia en si mismo (A), el contenido de un NBGMM B. Este método es similar a usar el operador = . No importa el tamaño de A, sus datos son liberados y un nuevo arreglo de datos es reservado.

\[ A \leftarrow B \]

Parámetros
[in]BEl NBGMM a copiar
Devuelve
Retorna true si todo fue bien o false si no. Si se retorna false el receptor no altera su contenido.
Ver también
Copy

◆ MakeEmpty()

void Pds::NBGMM::MakeEmpty ( void  )

Convierte el PCS a vazio, es decir limpia todos los datos internos.

◆ GetN()

unsigned int Pds::NBGMM::GetN ( void  ) const

Retorna el tamanho de la variable de entrada.

Devuelve
Retorna el tamanho de la variable de entrada.

◆ GetM()

unsigned int Pds::NBGMM::GetM ( void  ) const

Retorna el número de clases.

Devuelve
Retorna el número de clases.

◆ GetDat()

std::vector<Pds::DataGMM> Pds::NBGMM::GetDat ( void  ) const

Retorna los datos GMM.

Devuelve
Retorna los datos GMM.

◆ GetPi()

std::vector<double> Pds::NBGMM::GetPi ( void  ) const

Retorna un std::vector de valores que representan la probabilidad a priori de cada clase.

Devuelve
Retorna un std::vector de etiquetas.

◆ GetLabel()

std::vector<int> Pds::NBGMM::GetLabel ( void  ) const

Retorna un std::vector de valores que representan las etiquetas para cada ID.

Devuelve
Retorna un std::vector de etiquetas.

◆ Print()

void Pds::NBGMM::Print ( std::string  str = "") const

Imprime en pantalla el contenido del NBGMM.

Parámetros
strTexto a mostrar antes de imprimir.
Ejemplos
example_nbgmm.cpp y example_nbgmm_2d.cpp.

◆ ~NBGMM()

Pds::NBGMM::~NBGMM ( )

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed