STK++ 0.9.13
STK_DiagGaussianParameters.cpp
Go to the documentation of this file.
1/*--------------------------------------------------------------------*/
2/* Copyright (C) 2004-2016 Serge Iovleff
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as
6 published by the Free Software Foundation; either version 2 of the
7 License, or (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with this program; if not, write to the
16 Free Software Foundation, Inc.,
17 59 Temple Place,
18 Suite 330,
19 Boston, MA 02111-1307
20 USA
21
22 Contact : S..._DOT_I..._AT_stkpp.org (see copyright for ...)
23*/
24
25/*
26 * Project: stkpp::Clustering
27 * created on: Oct 24, 2013
28 * Author: Serge Iovleff
29 **/
30
37
38namespace STK
39{
40/* default constructor
41 * @param nbCluster the number of class of the mixture
42 **/
44 : mean_(nbCluster), sigma_(nbCluster)
45 , stat_mean_(nbCluster), stat_sigma_(nbCluster)
46{}
47/* copy constructor.
48 * @param param the parameters to copy.
49 **/
51 : mean_(param.mean_), sigma_(param.sigma_)
52 , stat_mean_(param.stat_mean_), stat_sigma_(param.stat_sigma_)
53{}
54/* destructor */
56/* copy operator.
57 * @param param the parameters to copy.
58 **/
60{
61 mean_ = param.mean_;
62 sigma_ = param.sigma_;
63 stat_mean_ = param.stat_mean_;
64 stat_sigma_ = param.stat_sigma_;
65 return *this;
66}
67
68/* resize the set of parameter */
70{
71 for (int k = mean_.begin(); k< mean_.end(); ++k)
72 {
73 mean_[k].resize(range) = 0.;
74 sigma_[k].resize(range) = 1.;
75 stat_mean_[k].resize(range);
76 stat_sigma_[k].resize(range);
77 }
78}
79
80/* update statistics of the parameters. */
82{
83 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
84 {
85 stat_mean_[k].update(mean_[k]);
86 stat_sigma_[k].update(sigma_[k]);
87 }
88}
89/* Set the computed statistics */
91{
92 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
93 {
94 mean_[k] = stat_mean_[k].mean();
95 sigma_[k] = stat_sigma_[k].mean();
96 stat_mean_[k].release();
97 stat_sigma_[k].release();
98 }
99}
100/* Release the computed statistics */
102{
103 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
104 {
105 stat_mean_[k].release();
106 stat_sigma_[k].release();
107 }
108}
109
110/* default constructor
111 * @param nbCluster the number of class of the mixture
112 **/
114 : mean_(nbCluster), sigma_(nbCluster)
115 , stat_mean_(nbCluster), stat_sigma_(nbCluster)
116{}
117/* copy constructor.
118 * @param param the parameters to copy.
119 **/
121 : mean_(param.mean_), sigma_(param.sigma_)
122 , stat_mean_(param.stat_mean_), stat_sigma_(param.stat_sigma_)
123{}
124/* destructor */
126/* copy operator.
127 * @param param the parameters to copy.
128 **/
130{
131 mean_ = param.mean_;
132 sigma_ = param.sigma_;
133 stat_mean_ = param.stat_mean_;
134 stat_sigma_ = param.stat_sigma_;
135 return *this;
136}
137/* resize the set of parameter */
139{
140 for (int k = mean_.begin(); k< mean_.end(); ++k)
141 {
142 mean_[k].resize(range) = 0;
143 stat_mean_[k].resize(range);
144 }
145 sigma_.resize(range) = 1.;
146 stat_sigma_.resize(range);
147}
148/* update statistics of the parameters. */
150{
151 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
152 {
153 stat_mean_[k].update(mean_[k]);
154 }
155 stat_sigma_.update(sigma_);
156}
157/* Set the computed statistics */
159{
160 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
161 {
162 mean_[k] = stat_mean_[k].mean();
163 stat_mean_[k].release();
164 }
165 sigma_ = stat_sigma_.mean();
166 stat_sigma_.release();
167}
168/* Release the computed statistics */
170{
171 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
172 {
173 stat_mean_[k].release();
174 }
175 stat_sigma_.release();
176}
177/* default constructor
178 * @param nbCluster the number of class of the mixture
179 **/
181 : mean_(nbCluster), sigma_(nbCluster)
182 , stat_mean_(nbCluster), stat_sigma_(nbCluster)
183{}
184/* copy constructor.
185 * @param param the parameters to copy.
186 **/
188 : mean_(param.mean_), sigma_(param.sigma_)
189 , stat_mean_(param.stat_mean_), stat_sigma_(param.stat_sigma_)
190{}
191/* destructor */
193/* copy operator.
194 * @param param the parameters to copy.
195 **/
197{
198 mean_ = param.mean_;
199 sigma_ = param.sigma_;
200 stat_mean_ = param.stat_mean_;
201 stat_sigma_ = param.stat_sigma_;
202 return *this;
203}
204/* resize the set of parameter */
206{
207 for (int k = mean_.begin(); k< mean_.end(); ++k)
208 {
209 mean_[k].resize(range) =0;
210 sigma_[k] = 1.;
211 stat_mean_[k].resize(range);
212 stat_sigma_[k].release();
213 }
214}
215/* update statistics of the parameters. */
217{
218 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
219 {
220 stat_mean_[k].update(mean_[k]);
221 stat_sigma_[k].update(sigma_[k]);
222 }
223}
224/* Set the computed statistics */
226{
227 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
228 {
229 mean_[k] = stat_mean_[k].mean();
230 sigma_[k] = stat_sigma_[k].mean();
231 stat_mean_[k].release();
232 stat_sigma_[k].release();
233 }
234}
235/* Release the computed statistics */
237{
238 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
239 {
240 stat_mean_[k].release();
241 stat_sigma_[k].release();
242 }
243}
244/* default constructor
245 * @param nbCluster the number of class of the mixture
246 **/
248 : mean_(nbCluster), sigma_(1.)
249 , stat_mean_(nbCluster), stat_sigma_()
250{}
251/* copy constructor.
252 * @param param the parameters to copy.
253 **/
255 : mean_(param.mean_), sigma_(param.sigma_)
256 , stat_mean_(param.stat_mean_), stat_sigma_(param.stat_sigma_)
257{}
258/* destructor */
260/* copy operator.
261 * @param param the parameters to copy.
262 **/
264{
265 mean_ = param.mean_;
266 sigma_ = param.sigma_;
267 stat_mean_ = param.stat_mean_;
268 stat_sigma_ = param.stat_sigma_;
269 return *this;
270}
271/* resize the set of parameter */
273{
274 for (int k = mean_.begin(); k< mean_.end(); ++k)
275 {
276 mean_[k].resize(range) = 0;
277 stat_mean_[k].resize(range);
278 }
279 sigma_ = 1.;
280 stat_sigma_.release();
281}
282/* update statistics of the parameters. */
284{
285 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
286 {
287 stat_mean_[k].update(mean_[k]);
288 }
289 stat_sigma_.update(sigma_);
290}
291/* Set the computed statistics */
293{
294 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
295 {
296 mean_[k] = stat_mean_[k].mean();
297 stat_mean_[k].release();
298 }
299 sigma_ = stat_sigma_.mean();
300 stat_sigma_.release();
301}
302/* Release the computed statistics */
304{
305 for(int k=stat_mean_.begin(); k<stat_mean_.end(); ++k)
306 { stat_mean_[k].release();}
307 stat_sigma_.release();
308}
309
310} // namespace STK
311
In this file we define the Parameters classes for Diagonal Gaussian mixture models.
The MultidimRegression class allows to regress a multidimensional output variable among a multivariat...
Index sub-vector region: Specialization when the size is unknown.
Definition STK_Range.h:265
The namespace STK is the main domain space of the Statistical ToolKit project.
struct storing the parameters of the mixture.