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

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

Namespaces

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

Estructuras de datos

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

Varios tipos de constructores

Crean una objeto Pds::PWC

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

Evaluación del PWC

Indican o establecen el estado de una matriz.

double Pds::PWC::Predict (const Pds::Vector &x, double h=0.1) const
 Evalua el objeto de tipo Pds::PWC. Más...
 
Pds::Vector Pds::PWC::Predict (const Pds::Matrix &X, double h=0.1) const
 Evalua el objeto de tipo Pds::PWC. Más...
 

Export en file

Exporta el arbol en un archivo

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

Estado del PWC

Indican o establecen el estado de una matriz.

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

Métodos variados en Pds::PWC

Herramientas genéricas

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

Descripción detallada

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

#include <Pds/PWC>

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

Documentación de las funciones

◆ PWC() [1/5]

Pds::PWC::PWC ( void  )

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

◆ PWC() [2/5]

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

Carga un vector de pesos desde un archivo de texto.

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

◆ PWC() [3/5]

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

Carga un vector de pesos desde un archivo de texto.

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

◆ PWC() [4/5]

Pds::PWC::PWC ( const Pds::PWC B)

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

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

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

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

◆ PWC() [5/5]

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

Crea un objeto de tipo Pds::PWC 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 reconition" [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::PWC::Predict ( const Pds::Vector &  x,
double  h = 0.1 
) const

Evalua el objeto de tipo Pds::PWC.

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

◆ Predict() [2/2]

Pds::Vector Pds::PWC::Predict ( const Pds::Matrix &  X,
double  h = 0.1 
) const

Evalua el objeto de tipo Pds::PWC.

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

◆ ExportFile()

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

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

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.
Ejemplos
example_pwc_2d.cpp.

◆ IsEmpty()

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

Verifica si el PWC está vazio.

Devuelve
Retorna true si es nula e false si no.

◆ IsNotEmpty()

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

Verifica si el PWC NO está vazio.

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

◆ operator=()

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

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

Cuando NO acontece:

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

◆ Copy()

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

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

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

◆ GetN()

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

Retorna el tamanho de la variable de entrada.

Devuelve
Retorna el tamanho de la variable de entrada.

◆ GetM()

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

Retorna el número de clases.

Devuelve
Retorna el número de clases.

◆ GetSinv()

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

Retorna las inversas de las matrices de covarianza.

Devuelve
Retorna las inversas de las matrices de covarianza.

◆ GetC()

std::vector<Pds::Matrix> Pds::PWC::GetC ( void  ) const

Retorna los valores medios.

Devuelve
Retorna los valores medios

◆ GetDet()

std::vector<double> Pds::PWC::GetDet ( void  ) const

Retorna un std::vector de constantes.

Devuelve
Retorna un std::vector de constantes

◆ GetLabel()

std::vector<int> Pds::PWC::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_pwc_2d.cpp.

◆ Print()

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

Imprime en pantalla el contenido del PWC.

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

◆ ~PWC()

Pds::PWC::~PWC ( )

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed