- Timestamp:
- 04/09/09 14:33:08 (15 years ago)
- Location:
- bdm
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
bdm/estim/merger.cpp
r301 r310 88 88 89 89 // This will be active only later in iterations!!! 90 if ( ( !fix_smp ) & ( 1./sum_sqr ( w ) < 0.9*Ns ) )90 if ( ( !fix_smp ) & ( 1./sum_sqr ( w ) <effss_coef*Ns ) ) 91 91 { 92 92 // Generate new samples … … 98 98 set_col_part ( Smp_ex,i,Smp ( i ) ); 99 99 //Importance of the mixture 100 lw_mix ( i ) =Mix.logpred (Smp_ex.get_col(i) ); 100 //lw_mix ( i ) =Mix.logpred (Smp_ex.get_col(i) ); 101 lw_mix ( i ) = Mpred->evallog(Smp(i)); 101 102 } 102 103 if ( 1 ) 103 104 { 104 105 cout<<"Resampling =" << 1./sum_sqr ( w ) << endl; 106 cout << Mix._e()->mean() <<endl; 105 107 cout << sum ( Smp_ex,2 ) /Ns <<endl; 106 108 cout << Smp_ex*Smp_ex.T() /Ns << endl; … … 111 113 sprintf ( str,"Mpred_mean%d",niter ); 112 114 *dbg << Name ( str ) << Mpred->mean(); 115 sprintf ( str,"Mpred_var%d",niter ); 116 *dbg << Name ( str ) << Mpred->variance(); 113 117 114 118 … … 216 220 // ==== stopping rule === 217 221 niter++; 218 converged = ( niter> 20 );222 converged = ( niter>40 ); 219 223 } 220 224 delete Mpred; -
bdm/estim/merger.h
r299 r310 47 47 //! Projection to empirical density 48 48 eEmp eSmp; 49 //! coefficient of resampling 50 double effss_coef; 49 51 50 52 //! debug or not debug … … 88 90 void debug_file ( const string fname ) { if ( DBG ) delete dbg; dbg = new it_file ( fname ); if ( dbg ) DBG=true;} 89 91 //! Set internal parameters used in approximation 90 void set_parameters ( double beta0, int Ns0, int Nc0 ) {beta=beta0;Ns=Ns0;Nc=Nc0;eSmp.set_parameters ( Ns0,false );} 92 void set_parameters ( double beta0, int Ns0, int Nc0, double effss_coef0=0.5 ) {beta=beta0; 93 Ns=Ns0; 94 Nc=Nc0; 95 effss_coef=effss_coef0; 96 eSmp.set_parameters ( Ns0,false ); 97 } 91 98 void set_grid ( Array<vec> &XYZ ) 92 99 { -
bdm/stat/emix.h
r286 r310 112 112 //non-central moment 113 113 vec mom2 = zeros ( dim ); 114 for ( int i = 0;i < w.length();i++ ) {mom2 += w ( i ) * pow ( Coms ( i )->mean(),2); }114 for ( int i = 0;i < w.length();i++ ) {mom2 += w ( i ) * (Coms(i)->variance() + pow ( Coms ( i )->mean(),2 )); } 115 115 //central moment 116 116 return mom2-pow ( mean(),2 ); -
bdm/stat/libEF.h
r299 r310 230 230 //!sufficient statistics 231 231 vec beta; 232 //!speedup variable233 double gamma;234 232 public: 235 233 //!\name Constructors … … 243 241 beta= beta0; 244 242 dim = beta.length(); 245 gamma = sum ( beta );246 243 } 247 244 //!@} 248 245 249 246 vec sample() const {it_error ( "Not implemented" );return vec_1 ( 0.0 );}; 250 vec mean() const {return beta/ gamma;};251 vec variance() const { return elem_mult ( beta, ( beta+1 ) ) / ( gamma* ( gamma+1 ) );}247 vec mean() const {return beta/sum(beta);}; 248 vec variance() const {double gamma =sum(beta); return elem_mult ( beta, ( beta+1 ) ) / ( gamma* ( gamma+1 ) );} 252 249 //! In this instance, val is ... 253 250 double evallog_nn ( const vec &val ) const