- Timestamp:
- 04/09/09 14:33:08 (15 years ago)
- Location:
- bdm/estim
- Files:
-
- 2 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 {