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

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

Namespaces

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

Estructuras de datos

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

Varios tipos de constructores

Crean una objeto Pds::QDC

 Pds::QDC::QDC (void)
 Crea un objeto vazio de tipo Pds::QDC. El método IsEmpty() retorna true. Más...
 
 Pds::QDC::QDC (const char filename[])
 Carga un vector de pesos desde un archivo de texto. Más...
 
 Pds::QDC::QDC (const std::string &filename)
 Carga un vector de pesos desde un archivo de texto. Más...
 
 Pds::QDC::QDC (const Pds::QDC &B)
 Crea un objeto de tipo Pds::QDC copiando datos desde otra QDC. Este es un Copy assignment constructor. Más...
 
 Pds::QDC::QDC (const Pds::Matrix &X, const Pds::Vector &Y)
 Crea un objeto de tipo Pds::QDC calculando los vectores y valores própios desde los vectores de entrada X. Más...
 
 Pds::QDC::~QDC ()
 

Evaluación del QDC

Indican o establecen el estado de una matriz.

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

Export en file

Exporta el arbol en un archivo

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

Estado del QDC

Indican o establecen el estado de una matriz.

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

Métodos variados en Pds::QDC

Herramientas genéricas

Pds::QDCPds::QDC::operator= (const Pds::QDC &B)
 Copia en si mismo (A), un QDC 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::QDC::Copy (const Pds::QDC &B)
 Copia en si mismo (A), el contenido de un QDC 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::QDC::MakeEmpty (void)
 Convierte el PCS a vazio, es decir limpia todos los datos internos. Más...
 
unsigned int Pds::QDC::GetN (void) const
 Retorna el tamanho de la variable de entrada. Más...
 
unsigned int Pds::QDC::GetM (void) const
 Retorna el número de clases. Más...
 
std::vector< Pds::Matrix > Pds::QDC::GetSinv (void) const
 Retorna las inversas de las matrices de covarianza. Más...
 
std::vector< Pds::Vector > Pds::QDC::GetMu (void) const
 Retorna los valores medios. Más...
 
std::vector< double > Pds::QDC::GetC (void) const
 Retorna un std::vector de constantes. Más...
 
std::vector< int > Pds::QDC::GetLabel (void) const
 Retorna un std::vector de vectores que representan las etiquetas para cada ID. Más...
 
void Pds::QDC::Print (std::string str="") const
 Imprime en pantalla el contenido del QDC. Más...
 

Descripción detallada

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

#include <Pds/QDC>

Este es bloque o maquina evalua y calcula el QDC. Informacion adicional puede ser encontrada en [2]

Documentación de las funciones

◆ QDC() [1/5]

Pds::QDC::QDC ( void  )

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

◆ QDC() [2/5]

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

Carga un vector de pesos desde un archivo de texto.

Pds::QDC 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::QDC . Esta clase genera una matriz de Nlin lineas y 1 columna. Para usar incluir P...
Definition: QDC.hpp:63
Parámetros
[in]filenameArchivo donde se encuentran los datos QDC.

◆ QDC() [3/5]

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

Carga un vector de pesos desde un archivo de texto.

Pds::QDC 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 QDC.

◆ QDC() [4/5]

Pds::QDC::QDC ( const Pds::QDC B)

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

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

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

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

◆ QDC() [5/5]

Pds::QDC::QDC ( const Pds::Matrix &  X,
const Pds::Vector &  Y 
)

Crea un objeto de tipo Pds::QDC calculando los vectores y valores própios desde los vectores de entrada X.

\[ \mathbf{x} = (x_{0},\ldots ,x_{N-1}) \]

Se asume que cada una de las $M$ clases tienen su centro en $\mathbf{\mu}_m$ y una matriz de covarianza $\mathbf{S}_{m}$, de modo que su función de probabilidad está dada por $f_m(\mathbf {x})$.

\[ f_m(\mathbf {x}) = \frac{\exp \left(-{\frac{1}{2}}({\mathbf{x} }-{\mathbf{\mu}_m})^{\mathrm {T} }{\mathbf{S}_{m}}^{-1}({\mathbf{x} }-{\mathbf{\mu}_{m}})\right)}{\sqrt {(2\pi )^{M}| \mathbf{S}_{m} |}} \]

Aplicado el teorema de bayes podemos calcular, $P(y=m|\mathbf{x})$, la probabilidad de pertenecer a la clase $m$ dada una muestra $\mathbf{x}$.

\[ P(y=m|\mathbf{x})=\frac{P(\mathbf{x}|y=m) P(y) }{P(\mathbf{x})} \]

\[ \begin{array}{lll} ln(P(y=m|\mathbf{x})) & = & ln(P(\mathbf{x}|y=m)) + ln(P(y=m)) -ln(P(\mathbf{x}))\\ ~ & ~ & ~\\ ~ & = & -{\frac{1}{2}}({\mathbf{x} }-{\mathbf{\mu}_m})^{\mathrm {T} }{\mathbf{S}_{m}}^{-1}({\mathbf{x} }-{\mathbf{\mu}_m}) - ln(\sqrt{(2\pi )^{M}| \mathbf{S}_{m} |}) + ln(P(y=m)) - ln(P(\mathbf{x}))\\ ~ & ~ & ~\\ ~ & = & \overbrace{ -{\frac{1}{2}}({\mathbf{x} }-{\mathbf{\mu}_m})^{\mathrm {T} }{\mathbf{S}_{m}}^{-1}({\mathbf{x} }-{\mathbf{\mu}_m}) +ln(P(y=m)) -\frac{1}{2}ln(| \mathbf{S}_{m} |) }^{g_m(\mathbf{x})} + \overbrace{ -ln(\sqrt{(2\pi )^{M}}) -ln(P(\mathbf{x})) }^{g(\mathbf{x})} \end{array} \]

Son usados como funciones de clasificación $g_m(\mathbf{x})$.

\[ g_m(\mathbf{x})= -{\frac{1}{2}}({\mathbf{x} }-{\mathbf{\mu}_m})^{\mathrm {T} }{\mathbf{S}_{m}}^{-1}({\mathbf{x} }-{\mathbf{\mu}_m}) +ln(P(y=m)) -\frac{1}{2}ln(| \mathbf{S}_{m} |) \]

De acuerdo al libro "Pattern classification" [2] la función de probabilidad $f_m(\mathbf {x})$ está indicada en la páginas 33, 625.

Parámetros
[in]XMatriz con entradas en las lineas.
[in]YVector categórias. este número debe ser diferente de 0.

◆ Predict() [1/2]

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

Evalua el objeto de tipo Pds::QDC.

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

◆ Predict() [2/2]

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

Evalua el objeto de tipo Pds::QDC.

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

◆ ExportFile()

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

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

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::QDC::IsEmpty ( void  ) const

Verifica si el QDC está vazio.

Devuelve
Retorna true si es nula e false si no.

◆ IsNotEmpty()

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

Verifica si el QDC NO está vazio.

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

◆ operator=()

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

Copia en si mismo (A), un QDC 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::QDC B(X,2);
A=B;

Cuando NO acontece:

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

◆ Copy()

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

Copia en si mismo (A), el contenido de un QDC 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 QDC 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::QDC::MakeEmpty ( void  )

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

◆ GetN()

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

Retorna el tamanho de la variable de entrada.

Devuelve
Retorna el tamanho de la variable de entrada.

◆ GetM()

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

Retorna el número de clases.

Devuelve
Retorna el número de clases.

◆ GetSinv()

std::vector<Pds::Matrix> Pds::QDC::GetSinv ( void  ) const

Retorna las inversas de las matrices de covarianza.

Devuelve
Retorna las inversas de las matrices de covarianza.

◆ GetMu()

std::vector<Pds::Vector> Pds::QDC::GetMu ( void  ) const

Retorna los valores medios.

Devuelve
Retorna los valores medios

◆ GetC()

std::vector<double> Pds::QDC::GetC ( void  ) const

Retorna un std::vector de constantes.

Devuelve
Retorna un std::vector de constantes

◆ GetLabel()

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

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

Devuelve
Retorna un std::vector de etiquetas.
Ejemplos
example_qdc_2d.cpp.

◆ Print()

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

Imprime en pantalla el contenido del QDC.

Parámetros
strTexto a mostrar antes de imprimir.
Ejemplos
example_qdc_2d.cpp.

◆ ~QDC()

Pds::QDC::~QDC ( )

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed