Home | Develop | Download | Contact
example_funcgmm_probability.cpp
1 
62 #include <iostream>
63 #include <Pds/Ra>
64 #include <Pds/Ml>
65 
66 int main(void)
67 {
68  Pds::Octave::XLabel="x1";
69  Pds::Octave::YLabel="x2";
70  Pds::Octave::DAspect=true;
71 
72  Pds::IterationConf Conf; Conf.Show=true; Conf.SetMinError(1.0e-6);
73  unsigned int L=1000;
74  Pds::Matrix X;
75  Pds::Vector Y;
76  Pds::Vector P;
77 
78  // Generating data X=[x1 x2]
80 
81  Pds::Octave::MarkerSize=3;
82  Pds::Octave::Plot::PointsX2D(X,"testando.m","example_funcgmm_probability_data.png");
83  Pds::Octave::MarkerSize=12;
84 
85  // Mu, Sigma estimation
86  Pds::DataGMM Dat=Pds::Clustering::GMM(Conf,X,3,1.0);
87  Dat.Print("Dat:\n");
88  /*
89  Dat.ExportFile("Dat.txt");
90  Pds::DataGMM Dat2("Dat.txt");
91  Dat2.Print("\nDat2:\n");
92  std::ofstream myfile;
93  myfile.open("Dat2.txt");
94  Dat2.SaveInStream(myfile);
95  myfile.close();
96  Pds::DataGMM Dat3;
97  std::ifstream myinfile("Dat2.txt", std::ifstream::in);
98  Dat3.LoadFromStream(myinfile);
99  myinfile.close();
100  Dat3.Print("\nDat3:\n");
101  */
102 
103  // Gaussian Mixture Model density
104  P=Pds::Probability::GMMDensity(X,Dat.Pi,Dat.Mu,Dat.Sinv);
105  Pds::Octave::Plot::ScatterX2DY(X,P,"testando.m","example_funcgmm_probability_prob.png");
106 
107  P=Pds::Probability::GMMDensity(X,Dat.Pi,Dat.Mu,Dat.Sinv,Dat.Det);
108  Pds::Octave::Plot::ScatterX2DY(X,P,"testando.m","example_funcgmm_probability_prob2.png");
109 
111  Pds::Octave::Plot::ScatterX2DY(X,P,"testando.m","example_funcgmm_probability_prob3.png");
112 
113  // Gaussian Mixture Model partial density
114  Pds::Matrix A;
115  Pds::Vector ID;
116 
117  A=Pds::Probability::GMMPartial(X,Dat.Pi,Dat.Mu,Dat.Sinv);
118  ID=A.OperateRows(Pds::ArgMax);
119  Pds::Octave::Plot::ScatterX2DY(X,ID,"testando.m","example_funcgmm_probability_clusters.png");
120 
121  A=Pds::Probability::GMMPartial(X,Dat.Pi,Dat.Mu,Dat.Sinv,Dat.Det);
122  ID=A.OperateRows(Pds::ArgMax);
123  Pds::Octave::Plot::ScatterX2DY(X,ID,"testando.m","example_funcgmm_probability_clusters2.png");
124 
126  ID=A.OperateRows(Pds::ArgMax);
127  Pds::Octave::Plot::ScatterX2DY(X,ID,"testando.m","example_funcgmm_probability_clusters3.png");
128 
129  return 0;
130 }
La clase tipo Pds::DataGMM . Esta clase genera un bloque de datos para analizar curvas de aprendisaje...
Definition: DataGMM.hpp:60
std::vector< double > Det
Definition: DataGMM.hpp:73
std::vector< Pds::Vector > Mu
Definition: DataGMM.hpp:67
std::vector< Pds::Matrix > Sinv
Definition: DataGMM.hpp:70
std::vector< double > Pi
Definition: DataGMM.hpp:64
La clase tipo Pds::IterationConf . Esta clase genera una matriz de Nlin lineas y 1 columna....
void Print(const std::string &str) const
Imprime los datos del Pds::DataGMM.
bool SetMinError(double MinError)
Coloca el valor MinError.
Pds::DataGMM GMM(Pds::IterationConf &Conf, const Pds::Matrix &X, const Pds::DataGMM &In)
Itera un Gaussian Mixture Model (GMM) (pp. 13). Tenemos como conocimiento de estrada,...
void LoadKGaussian(unsigned int L, unsigned int K, Pds::Matrix &X, Pds::Vector &Y, double factor=0.70711)
Clasificación múltiple de datos.
Pds::Matrix GMMPartial(const Pds::Matrix &X, const std::vector< double > &Pi, const std::vector< Pds::Vector > &Mu, const std::vector< Pds::Matrix > &Sinv)
Retorna una Matriz . Con este fin, evalua la "Gaussian mixture model partial probability density func...
Pds::Vector GMMDensity(const Pds::Matrix &X, const std::vector< double > &Pi, const std::vector< Pds::Vector > &Mu, const std::vector< Pds::Matrix > &Sinv)
Retorna el vector . Con este fin, evalua la "Gaussian mixture probability density function" usando ,...

Enlaces de interés

HomePage Bazaar Download Bug report Ayuda Developer Feed