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

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

Namespaces

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

Estructuras de datos

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

Varios tipos de constructores

Crean una objeto Pds::LDC

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

Evaluación del LDC

Indican o establecen el estado de una matriz.

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

Export en file

Exporta el arbol en un archivo

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

Estado del LDC

Indican o establecen el estado de una matriz.

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

Métodos variados en Pds::LDC

Herramientas genéricas

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

Descripción detallada

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

#include <Pds/LDC>

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

Documentación de las funciones

◆ LDC() [1/5]

Pds::LDC::LDC ( void  )

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

◆ LDC() [2/5]

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

Carga un vector de pesos desde un archivo de texto.

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

◆ LDC() [3/5]

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

Carga un vector de pesos desde un archivo de texto.

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

◆ LDC() [4/5]

Pds::LDC::LDC ( const Pds::LDC B)

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

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

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

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

◆ LDC() [5/5]

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

Crea un objeto de tipo Pds::LDC 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$; por otro lado, todas tienen la misma matriz de covarianza $\mathbf{S}$, 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}}^{-1}({\mathbf{x} }-{\mathbf{\mu}_m})\right)}{\sqrt {(2\pi )^{M}| \mathbf{S} |}} \]

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}}^{-1}({\mathbf{x} }-{\mathbf{\mu}_m}) - ln(\sqrt{(2\pi )^{M}| \mathbf{S} |}) + ln(P(y=m)) - ln(P(\mathbf{x}))\\ ~ & ~ & ~\\ ~ & = & \overbrace{ \mathbf{u}_m^{T} \mathbf{S}^{-1}\mathbf{x} - \frac{1}{2} \mathbf{u}_m^{T} \mathbf{S}^{-1}\mathbf{u}_m + ln(P(y=m)) }^{g_m(\mathbf{x})} + \overbrace{ - \frac{1}{2} \mathbf{x}^{T} \mathbf{S}^{-1}\mathbf{x} - ln(\sqrt{(2\pi )^{M}| \mathbf{S} |}) - ln(P(\mathbf{x})) }^{g(\mathbf{x})} \end{array} \]

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

\[ \begin{matrix} g_m(\mathbf{x})&= &\mathbf{u}_m^{T} \mathbf{S}^{-1}\mathbf{x} - \frac{1}{2} \mathbf{u}_m^{T} \mathbf{S}^{-1}\mathbf{u}_m + ln(P(y=m))\\ ~ & ~ & ~ \\ ~ &=& \left[1 \quad \mathbf{x}^{T}\right] \begin{bmatrix} - \frac{1}{2} \mathbf{u}_m^{T} \mathbf{S}^{-1}\mathbf{u}_m + ln(P(y=m))\\ \mathbf{S}^{-1} \mathbf{u}_m \end{bmatrix}\\ ~ & ~ & ~ \\ ~ &=& \left[1 \quad \mathbf{x}^{T}\right] \mathbf{w}_m \end{matrix} \]

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::LDC::Predict ( const Pds::Vector &  x) const

Evalua el objeto de tipo Pds::LDC.

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

◆ Predict() [2/2]

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

Evalua el objeto de tipo Pds::LDC.

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

◆ ExportFile()

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

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

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_ldc_2d.cpp.

◆ IsEmpty()

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

Verifica si el LDC está vazio.

Devuelve
Retorna true si es nula e false si no.

◆ IsNotEmpty()

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

Verifica si el LDC NO está vazio.

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

◆ operator=()

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

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

Cuando NO acontece:

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

◆ Copy()

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

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

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

◆ GetN()

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

Retorna el tamanho de la variable de entrada.

Devuelve
Retorna el tamanho de la variable de entrada.

◆ GetM()

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

Retorna el número de clases.

Devuelve
Retorna el número de clases.

◆ GetSinv()

Pds::Matrix Pds::LDC::GetSinv ( void  ) const

Retorna las inversa de la matrice de covarianza.

Devuelve
Retorna las inversa de la matrice de covarianza.

◆ GetMu()

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

Retorna los valores medios.

Devuelve
Retorna los valores medios

◆ GetW()

std::vector<Pds::Vector> Pds::LDC::GetW ( void  ) const

Retorna los valores W.

Devuelve
Retorna los valores W

◆ GetC()

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

Retorna un std::vector de constantes.

Devuelve
Retorna un std::vector de constantes

◆ GetLabel()

std::vector<int> Pds::LDC::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_ldc.cpp y example_ldc_2d.cpp.

◆ Print()

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

Imprime en pantalla el contenido del LDC.

Parámetros
strTexto a mostrar antes de imprimir.
Ejemplos
example_ldc.cpp y example_ldc_2d.cpp.

◆ ~LDC()

Pds::LDC::~LDC ( )

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed