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

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

Namespaces

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

Estructuras de datos

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

Varios tipos de constructores

Crean una objeto Pds::LDA

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

Evaluación del LDA

Indican o establecen el estado de una matriz.

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

Export en file

Exporta el arbol en un archivo

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

Estado del LDA

Indican o establecen el estado de una matriz.

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

Métodos variados en Pds::LDA

Herramientas genéricas

Pds::LDAPds::LDA::operator= (const Pds::LDA &B)
 Copia en si mismo (A), un LDA 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::LDA::Copy (const Pds::LDA &B)
 Copia en si mismo (A), el contenido de un LDA 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::LDA::MakeEmpty (void)
 Convierte el PCS a vazio, es decir limpia todos los datos internos. Más...
 
unsigned int Pds::LDA::GetN (void) const
 Retorna el tamaño del vector de entrada. Más...
 
unsigned int Pds::LDA::GetM (void) const
 Retorna el número de clases. Más...
 
Pds::Vector Pds::LDA::GetLambda (void) const
 Retorna el vector de valores propios en orden ascendente. Más...
 
Pds::Matrix Pds::LDA::GetV (void) const
 Retorna la matriz de vectores própios en las columnas. Más...
 
std::vector< Pds::Vector > Pds::LDA::GetW (void) const
 Retorna un std::vector de vectores que representan los clasificadores. Más...
 
std::vector< int > Pds::LDA::GetLabel (void) const
 Retorna un std::vector de vectores que representan las etiquetas para cada ID. Más...
 
void Pds::LDA::Print (std::string str="") const
 Imprime en pantalla el contenido del LDA. Más...
 

Descripción detallada

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

#include <Pds/LDA>

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

Documentación de las funciones

◆ LDA() [1/5]

Pds::LDA::LDA ( void  )

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

◆ LDA() [2/5]

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

Carga un vector de pesos desde un archivo de texto.

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

◆ LDA() [3/5]

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

Carga un vector de pesos desde un archivo de texto.

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

◆ LDA() [4/5]

Pds::LDA::LDA ( const Pds::LDA B)

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

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

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

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

◆ LDA() [5/5]

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

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

Dado el siguiente conjunto de datos.

\[ \mathbf{X}=\mathbf{X}_1, \mathbf{X}_2, \dots, \mathbf{X}_M \qquad \mathbf{y}=\mathbf{y}_1, \mathbf{y}_2, \dots, \mathbf{y}_M \qquad \mathbf{label}= l_1, l_2, \dots, l_M \]

Calculamos.

\[ \mathbf{W} \equiv \begin{bmatrix} \mathbf{w}_1 & \mathbf{w}_2 & \dots & \mathbf{w}_M \end{bmatrix} \qquad \boldsymbol{\lambda} \equiv \begin{bmatrix} \lambda_1\\ \lambda_1\\ \vdots\\ \lambda_m\\ \vdots\\ \lambda_M \end{bmatrix} \qquad \mathbf{V} \equiv \begin{bmatrix} \mathbf{v}_1 & \mathbf{v}_2 & \dots & \mathbf{v}_m & \dots & \mathbf{v}_M \end{bmatrix} \]

donde

\[ L_m\leftarrow length(\mathbf{y}_m) \qquad L\leftarrow length(\mathbf{y}) \]

\[ [\mathbf{S}_m \quad \boldsymbol{\mu}_m]\leftarrow CovarianceMatrix\{\mathbf{X}_m\} \qquad p_m=\frac{L_m}{L} \qquad \mathbf{\bar{u}} \leftarrow \sum_m^M p_m\boldsymbol{\mu}_m \]

\[ \mathbf{S}_b \leftarrow \sum_m^M L_m\left(\boldsymbol{\mu}_m - \mathbf{\bar{u}}\right)\left(\boldsymbol{\mu}_m- \mathbf{\bar{u}}\right)^{T} \qquad \mathbf{S}_w \leftarrow \sum_m^M (L_m-1)\mathbf{S}_m \]

\[ [\mathbf{V}\quad \boldsymbol{\lambda}]\leftarrow eig\left(\mathbf{S}_w^{-1}\mathbf{S}_b \right) \]

\[ \mathbf{w}_m\leftarrow \begin{bmatrix} -0.5 \boldsymbol{\mu}_m^{T} \mathbf{V}\mathbf{V}^{T} \boldsymbol{\mu}_m+log(p_m)\\ \mathbf{V}\mathbf{V}^{T} \boldsymbol{\mu}_m \end{bmatrix} \]

De acuerdo al libro "Pattern classification" [2] página 121.

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

Evalua el objeto de tipo Pds::LDA.

\[ \mathbf{g}^{T}= \begin{bmatrix} 1 & \mathbf{x}^{T} \end{bmatrix} \begin{bmatrix} \mathbf{w}_1 & \mathbf{w}_2 & \dots & \mathbf{w}_M \end{bmatrix} \]

\[ id = arg_{id}max\{\mathbf{g}\} \]

\[ y\leftarrow Label[id] \]

Parámetros
[in]xVector de entradas $\mathbf{x}$.
Devuelve
el valor evaluado $y$.
Ejemplos
example_lda.cpp y example_lda_2d.cpp.

◆ Predict() [2/2]

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

Evalua el objeto de tipo Pds::LDA.

\[ \mathbf{X}= \begin{bmatrix} \mathbf{x}_1^{T}\\ \mathbf{x}_2^{T}\\ \vdots\\ \mathbf{x}_L^{T}\\ \end{bmatrix} \]

Entonces

\[ \mathbf{G} \equiv \begin{bmatrix} \mathbf{g}_1^{T}\\ \mathbf{g}_2^{T}\\ \vdots\\ \mathbf{g}_l^{T}\\ \vdots\\ \mathbf{g}_L^{T}\\ \end{bmatrix} \leftarrow \begin{bmatrix} 1 & \mathbf{x}_1^{T}\\ 1 & \mathbf{x}_2^{T}\\ \vdots & \vdots\\ 1 & \mathbf{x}_l^{T}\\ \vdots & \vdots\\ 1 & \mathbf{x}_L^{T}\\ \end{bmatrix} \begin{bmatrix} \mathbf{w}_1 & \mathbf{w}_2 & \dots & \mathbf{w}_M \end{bmatrix} \]

\[ \mathbf{ID} \equiv \begin{bmatrix} id_1\\ id_2\\ \vdots\\ id_l\\ \vdots\\ id_L\\ \end{bmatrix} \leftarrow \begin{bmatrix} arg_{id}max\{\mathbf{g}_1\}\\ arg_{id}max\{\mathbf{g}_2\}\\ \vdots\\ arg_{id}max\{\mathbf{g}_l\}\\ \vdots\\ arg_{id}max\{\mathbf{g}_L\}\\ \end{bmatrix} \]

\[ \mathbf{y} \equiv \begin{bmatrix} y_1\\ y_2\\ \vdots\\ y_l\\ \vdots\\ y_L\\ \end{bmatrix} \leftarrow \begin{bmatrix} Label[id_1]\\ Label[id_2]\\ \vdots\\ Label[id_l]\\ \vdots\\ Label[id_L]\\ \end{bmatrix} \]

Parámetros
[in]XMatriz con entradas x en las lineas $\mathbf{X}$.
Devuelve
La matriz evaluada $\mathbf{y}$.

◆ ExportFile()

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

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

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

Verifica si el LDA está vazio.

Devuelve
Retorna true si es nula e false si no.

◆ IsNotEmpty()

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

Verifica si el LDA NO está vazio.

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

◆ operator=()

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

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

Cuando NO acontece:

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

◆ Copy()

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

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

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

◆ GetN()

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

Retorna el tamaño del vector de entrada.

Devuelve
Retorna el tamaño del vector de entrada.

◆ GetM()

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

Retorna el número de clases.

Devuelve
Retorna el número de clases.

◆ GetLambda()

Pds::Vector Pds::LDA::GetLambda ( void  ) const

Retorna el vector de valores propios en orden ascendente.

Devuelve
Retorna el vector de valores propios en orden ascendente.

◆ GetV()

Pds::Matrix Pds::LDA::GetV ( void  ) const

Retorna la matriz de vectores própios en las columnas.

Devuelve
Retorna la matriz de vectores própios en las columnas.

◆ GetW()

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

Retorna un std::vector de vectores que representan los clasificadores.

Devuelve
Retorna un std::vector de vectores.
Ejemplos
example_lda_2d.cpp.

◆ GetLabel()

std::vector<int> Pds::LDA::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_lda.cpp.

◆ Print()

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

Imprime en pantalla el contenido del LDA.

Parámetros
strTexto a mostrar antes de imprimir.
Ejemplos
example_lda.cpp y example_lda_2d.cpp.

◆ ~LDA()

Pds::LDA::~LDA ( )

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed