Public Types | Public Member Functions | Private Member Functions
pdf1d_gaussian_kernel_pdf_builder Class Reference

Build gaussian kernel pdf objects. More...

#include <pdf1d_gaussian_kernel_pdf_builder.h>

Inheritance diagram for pdf1d_gaussian_kernel_pdf_builder:
Inheritance graph
[legend]

List of all members.

Public Types

enum  build_type { fixed_width, select_equal, width_from_sep, adaptive }

Public Member Functions

 pdf1d_gaussian_kernel_pdf_builder ()
 Dflt ctor.
virtual ~pdf1d_gaussian_kernel_pdf_builder ()
 Destructor.
virtual pdf1d_pdfnew_model () const
 Create empty model.
virtual vcl_string new_model_type () const
 Name of the model class returned by new_model().
short version_no () const
 Version number for I/O.
virtual vcl_string is_a () const
 Name of the class.
virtual bool is_class (vcl_string const &s) const
 Does the name of the class match the argument?.
virtual pdf1d_builderclone () const
 Create a copy on the heap and return base class pointer.
virtual void print_summary (vcl_ostream &os) const
 Print class to os.
void set_use_fixed_width (double width)
 Use fixed width kernels of given width when building.
void set_use_equal_width ()
 Use equal width kernels of width depending on number of samples.
void set_use_width_from_separation ()
 Kernel width proportional to distance to nearby samples.
void set_use_adaptive ()
 Build adaptive kernel estimate.
virtual void set_min_var (double min_var)
 Define lower threshold on variance for built models.
virtual double min_var () const
 Get lower threshold on variance for built models.
virtual void build_from_array (pdf1d_pdf &model, const double *data, int n) const
 Build from n elements in data[i].
virtual void build (pdf1d_pdf &model, double mean) const
 Build default model with given mean.
virtual void build (pdf1d_pdf &model, mbl_data_wrapper< double > &data) const
 Build model from data.
virtual void weighted_build (pdf1d_pdf &model, mbl_data_wrapper< double > &data, const vcl_vector< double > &wts) const
 Build model from weighted data.
void build_fixed_width (pdf1d_kernel_pdf &kpdf, const double *data, int n, double width) const
 Build from n elements in data[i]. Fixed kernel width.
void build_select_equal_width (pdf1d_kernel_pdf &kpdf, const double *data, int n) const
 Build from n elements in data[i]. Chooses width.
void build_width_from_separation (pdf1d_kernel_pdf &kpdf, const double *data, int n) const
 Kernel width proportional to distance to nearby samples.
void build_adaptive (pdf1d_kernel_pdf &kpdf, const double *data, int n) const
 Build adaptive kernel estimate.
virtual void b_write (vsl_b_ostream &bfs) const
 Save class to binary file stream.
virtual void b_read (vsl_b_istream &bfs)
 Load class from binary file stream.

Private Member Functions

pdf1d_gaussian_kernel_pdfgkpdf (pdf1d_pdf &model) const

Detailed Description

Build gaussian kernel pdf objects.

Build functions are implemented in the pdf1d_kernel_pdf_builder parent

Definition at line 19 of file pdf1d_gaussian_kernel_pdf_builder.h.


Member Enumeration Documentation

Enumerator:
fixed_width 
select_equal 
width_from_sep 
adaptive 

Definition at line 32 of file pdf1d_kernel_pdf_builder.h.


Constructor & Destructor Documentation

pdf1d_gaussian_kernel_pdf_builder::pdf1d_gaussian_kernel_pdf_builder ( )

Dflt ctor.

Definition at line 13 of file pdf1d_gaussian_kernel_pdf_builder.cxx.

pdf1d_gaussian_kernel_pdf_builder::~pdf1d_gaussian_kernel_pdf_builder ( ) [virtual]

Destructor.

Definition at line 21 of file pdf1d_gaussian_kernel_pdf_builder.cxx.


Member Function Documentation

void pdf1d_kernel_pdf_builder::b_read ( vsl_b_istream bfs) [virtual, inherited]

Load class from binary file stream.

Implements pdf1d_builder.

Definition at line 308 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::b_write ( vsl_b_ostream bfs) const [virtual, inherited]

Save class to binary file stream.

Implements pdf1d_builder.

Definition at line 300 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::build ( pdf1d_pdf model,
double  mean 
) const [virtual, inherited]

Build default model with given mean.

Implements pdf1d_builder.

Definition at line 80 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::build ( pdf1d_pdf model,
mbl_data_wrapper< double > &  data 
) const [virtual, inherited]

Build model from data.

The kernel centres in the pdf will have same value and order as the training data

Implements pdf1d_builder.

Definition at line 126 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::build_adaptive ( pdf1d_kernel_pdf kpdf,
const double *  data,
int  n 
) const [inherited]

Build adaptive kernel estimate.

Use equal widths to create a pilot estimate, then use the prob at each data point to modify the widths. Uses Silverman's equation 5.8 with alpha = 0.5 as suggested, and based on a pilot estimate as calculated by build_select_equal_width(). The kernel centres in the pdf will have same value and order as the training data.

This method gives a significantly higher density near the edges of the distribution than suggested by the cumulative histogram of the training data, pushing the cdf estimate closer to 0.5 at the edges. If you want to approximate the cumulative histogram more closely, then build_select_equal_width() may be more effective.

Use equal widths to create a pilot estimate, then use the prob at each data point to modify the widths

Definition at line 244 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::build_fixed_width ( pdf1d_kernel_pdf kpdf,
const double *  data,
int  n,
double  width 
) const [inherited]

Build from n elements in data[i]. Fixed kernel width.

Build from n elements in data[i].

The kernel centres in the pdf will have same value and order as the training data

Definition at line 167 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::build_from_array ( pdf1d_pdf model,
const double *  data,
int  n 
) const [virtual, inherited]

Build from n elements in data[i].

Build kernel_pdf from n elements in data[i].

Reimplemented from pdf1d_builder.

Definition at line 90 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::build_select_equal_width ( pdf1d_kernel_pdf kpdf,
const double *  data,
int  n 
) const [inherited]

Build from n elements in data[i]. Chooses width.

Same width selected for all points, using $w=(3n/4)^{-0.2}\sigma$, as suggested by Silverman

The kernel centres in the pdf will have same value and order as the training data

Same width selected for all points, using $w=(3n/4)^{-0.2}\sigma$, as suggested by Silverman

Definition at line 177 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::build_width_from_separation ( pdf1d_kernel_pdf kpdf,
const double *  data,
int  n 
) const [inherited]

Kernel width proportional to distance to nearby samples.

The kernel centres in the pdf will have same value and order as the training data

Definition at line 220 of file pdf1d_kernel_pdf_builder.cxx.

pdf1d_builder * pdf1d_gaussian_kernel_pdf_builder::clone ( ) const [virtual]

Create a copy on the heap and return base class pointer.

Implements pdf1d_builder.

Definition at line 76 of file pdf1d_gaussian_kernel_pdf_builder.cxx.

pdf1d_gaussian_kernel_pdf & pdf1d_gaussian_kernel_pdf_builder::gkpdf ( pdf1d_pdf model) const [private]

Definition at line 27 of file pdf1d_gaussian_kernel_pdf_builder.cxx.

vcl_string pdf1d_gaussian_kernel_pdf_builder::is_a ( ) const [virtual]

Name of the class.

Reimplemented from pdf1d_kernel_pdf_builder.

Definition at line 49 of file pdf1d_gaussian_kernel_pdf_builder.cxx.

bool pdf1d_gaussian_kernel_pdf_builder::is_class ( vcl_string const &  s) const [virtual]

Does the name of the class match the argument?.

Reimplemented from pdf1d_kernel_pdf_builder.

Definition at line 58 of file pdf1d_gaussian_kernel_pdf_builder.cxx.

double pdf1d_kernel_pdf_builder::min_var ( ) const [virtual, inherited]

Get lower threshold on variance for built models.

Implements pdf1d_builder.

Definition at line 75 of file pdf1d_kernel_pdf_builder.cxx.

pdf1d_pdf * pdf1d_gaussian_kernel_pdf_builder::new_model ( ) const [virtual]

Create empty model.

Implements pdf1d_builder.

Definition at line 34 of file pdf1d_gaussian_kernel_pdf_builder.cxx.

vcl_string pdf1d_gaussian_kernel_pdf_builder::new_model_type ( ) const [virtual]

Name of the model class returned by new_model().

Implements pdf1d_builder.

Definition at line 40 of file pdf1d_gaussian_kernel_pdf_builder.cxx.

void pdf1d_gaussian_kernel_pdf_builder::print_summary ( vcl_ostream &  os) const [virtual]

Print class to os.

Reimplemented from pdf1d_kernel_pdf_builder.

Definition at line 85 of file pdf1d_gaussian_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::set_min_var ( double  min_var) [virtual, inherited]

Define lower threshold on variance for built models.

Implements pdf1d_builder.

Definition at line 68 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::set_use_adaptive ( ) [inherited]

Build adaptive kernel estimate.

Definition at line 61 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::set_use_equal_width ( ) [inherited]

Use equal width kernels of width depending on number of samples.

This method appears to give a lower density near the tails

Definition at line 49 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::set_use_fixed_width ( double  width) [inherited]

Use fixed width kernels of given width when building.

Definition at line 42 of file pdf1d_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::set_use_width_from_separation ( ) [inherited]

Kernel width proportional to distance to nearby samples.

Definition at line 55 of file pdf1d_kernel_pdf_builder.cxx.

short pdf1d_gaussian_kernel_pdf_builder::version_no ( ) const

Version number for I/O.

Reimplemented from pdf1d_kernel_pdf_builder.

Definition at line 67 of file pdf1d_gaussian_kernel_pdf_builder.cxx.

void pdf1d_kernel_pdf_builder::weighted_build ( pdf1d_pdf model,
mbl_data_wrapper< double > &  data,
const vcl_vector< double > &  wts 
) const [virtual, inherited]

Build model from weighted data.

Implements pdf1d_builder.

Definition at line 158 of file pdf1d_kernel_pdf_builder.cxx.


The documentation for this class was generated from the following files: