#include <vpdfl_kernel_pdf_builder.h>
Inheritance diagram for vpdfl_kernel_pdf_builder:

Contains algorithms for selecting kernel widths.
Simplest is to use equal widths (set_use_equal_width()).
A fixed width can be supplied (set_use_fixed_width(w))
The widths can be estimated from the proximity of neighbours set_use_width_from_separation()
More interesting is an adaptive kernel estimate (set_use_adaptive()). This tends to get results comparable with the equal width method for simple cases, but can match to more complex distributions more easily. In particular, it tends to approximate the tails more accurately.
See book on Density Estimation by B.W.Silverman (Pub. Chapman and Hall, 1986) for details.
Definition at line 36 of file vpdfl_kernel_pdf_builder.h.
Public Types | |
| enum | build_type { fixed_width, select_equal, width_from_sep, adaptive } |
Public Member Functions | |
| vpdfl_kernel_pdf_builder () | |
| Dflt ctor. | |
| virtual | ~vpdfl_kernel_pdf_builder () |
| Destructor. | |
| 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 (vpdfl_pdf_base &model, const vnl_vector< double > &mean) const |
| Build default model with given mean. | |
| virtual void | build (vpdfl_pdf_base &model, mbl_data_wrapper< vnl_vector< double > > &data) const |
| Build model from data. | |
| void | build_from_array (vpdfl_pdf_base &model, const vnl_vector< double > *data, int n) const |
| Build kernel_pdf from n elements in data[i]. | |
| virtual void | weighted_build (vpdfl_pdf_base &model, mbl_data_wrapper< vnl_vector< double > > &data, const vcl_vector< double > &wts) const |
| Build model from weighted data. | |
| void | build_fixed_width (vpdfl_kernel_pdf &kpdf, const vnl_vector< double > *data, int n, double width) const |
| Build from n elements in data[i]. Fixed kernel width. | |
| void | build_select_equal_width (vpdfl_kernel_pdf &kpdf, const vnl_vector< double > *data, int n) const |
| Build from n elements in data[i]. Chooses width. | |
| void | build_width_from_separation (vpdfl_kernel_pdf &kpdf, const vnl_vector< double > *data, int n) const |
| Kernel width proportional to distance to nearby samples. | |
| void | build_adaptive (vpdfl_kernel_pdf &kpdf, const vnl_vector< double > *data, int n) const |
| Build adaptive kernel estimate. | |
| 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 void | print_summary (vcl_ostream &os) const |
| Print class to os. | |
| 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. | |
| virtual void | config_from_stream (vcl_istream &is) |
| Read initialisation settings from a stream. | |
| virtual vpdfl_pdf_base * | new_model () const =0 |
| Create empty model. | |
| virtual vpdfl_builder_base * | clone () const =0 |
| Create a copy on the heap and return base class pointer. | |
Static Public Member Functions | |
| static vcl_auto_ptr< vpdfl_builder_base > | new_builder_from_stream (vcl_istream &is) |
| Create a vpdfl_builder_base object given a config steram. | |
| static vcl_auto_ptr< vpdfl_builder_base > | new_pdf_builder_from_stream (vcl_istream &) |
| Create a vpdfl_builder_base object given a config stream (recursive style). | |
Private Member Functions | |
| vpdfl_kernel_pdf & | kernel_pdf (vpdfl_pdf_base &model) const |
Private Attributes | |
| double | min_var_ |
| Minimum variance of whole model. | |
| build_type | build_type_ |
| Type of building to be performed. | |
| double | fixed_width_ |
| Width set if fixed_width option on build used. | |
|
|
Definition at line 39 of file vpdfl_kernel_pdf_builder.h. |
|
|
Dflt ctor.
Definition at line 37 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Destructor.
Definition at line 46 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Load class from binary file stream.
Implements vpdfl_builder_base. Definition at line 337 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Save class to binary file stream.
Implements vpdfl_builder_base. Definition at line 327 of file vpdfl_kernel_pdf_builder.cxx. |
|
||||||||||||
|
Build model from data.
Implements vpdfl_builder_base. Definition at line 140 of file vpdfl_kernel_pdf_builder.cxx. |
|
||||||||||||
|
Build default model with given mean.
Implements vpdfl_builder_base. Definition at line 98 of file vpdfl_kernel_pdf_builder.cxx. |
|
||||||||||||||||
|
Build adaptive kernel estimate. Use equal widths to create a pilot estimate, then use the prob at each data point to modify the widths Definition at line 260 of file vpdfl_kernel_pdf_builder.cxx. |
|
||||||||||||||||||||
|
Build from n elements in data[i]. Fixed kernel width.
Definition at line 181 of file vpdfl_kernel_pdf_builder.cxx. |
|
||||||||||||||||
|
Build kernel_pdf from n elements in data[i].
Definition at line 109 of file vpdfl_kernel_pdf_builder.cxx. |
|
||||||||||||||||
|
Build from n elements in data[i]. Chooses width.
Same width selected for all points, using Definition at line 191 of file vpdfl_kernel_pdf_builder.cxx. |
|
||||||||||||||||
|
Kernel width proportional to distance to nearby samples. Width to nearest neighbour, allowing for repeats. Definition at line 210 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Create a copy on the heap and return base class pointer.
Implemented in vpdfl_axis_gaussian_builder, vpdfl_gaussian_builder, vpdfl_gaussian_kernel_pdf_builder, vpdfl_mixture_builder, and vpdfl_pc_gaussian_builder. |
|
|
Read initialisation settings from a stream. Parameters: {
min_var: 1.0e-6
// kernel_widths can be fixed_width,select_equal,width_from_sep,adaptive
kernel_widths: fixed_width
// Width to be used when it is fixed_width
fixed_width: 1.0
}
Reimplemented from vpdfl_builder_base. Definition at line 368 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Name of the class.
Reimplemented from vpdfl_builder_base. Reimplemented in vpdfl_gaussian_kernel_pdf_builder. Definition at line 291 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Does the name of the class match the argument?.
Reimplemented from vpdfl_builder_base. Reimplemented in vpdfl_gaussian_kernel_pdf_builder. Definition at line 300 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Definition at line 52 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Get lower threshold on variance for built models.
Implements vpdfl_builder_base. Definition at line 93 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Create a vpdfl_builder_base object given a config steram.
Definition at line 55 of file vpdfl_builder_base.cxx. |
|
|
Create empty model.
Implemented in vpdfl_axis_gaussian_builder, vpdfl_gaussian_builder, vpdfl_gaussian_kernel_pdf_builder, vpdfl_mixture_builder, and vpdfl_pc_gaussian_builder. |
|
|
Create a vpdfl_builder_base object given a config stream (recursive style). Creates object, then uses config_from_stream(is) to set up internals
Definition at line 145 of file vpdfl_builder_base.cxx. |
|
|
Print class to os.
Implements vpdfl_builder_base. Definition at line 318 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Define lower threshold on variance for built models.
Implements vpdfl_builder_base. Definition at line 86 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Build adaptive kernel estimate.
Definition at line 79 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Use equal width kernels of width depending on number of samples.
Definition at line 67 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Use fixed width kernels of given width when building.
Definition at line 60 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Kernel width proportional to distance to nearby samples.
Definition at line 73 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Version number for I/O.
Reimplemented from vpdfl_builder_base. Definition at line 309 of file vpdfl_kernel_pdf_builder.cxx. |
|
||||||||||||||||
|
Build model from weighted data.
Implements vpdfl_builder_base. Definition at line 172 of file vpdfl_kernel_pdf_builder.cxx. |
|
|
Type of building to be performed.
Definition at line 45 of file vpdfl_kernel_pdf_builder.h. |
|
|
Width set if fixed_width option on build used.
Definition at line 48 of file vpdfl_kernel_pdf_builder.h. |
|
|
Minimum variance of whole model.
Definition at line 42 of file vpdfl_kernel_pdf_builder.h. |
1.4.4