Low-level functions in Resampling and Viewpoint selection¶
These are some low-level functions in the resampling
package, which are called by the idyom:idyom
function. You shouldn't need to use them unless you are developing the code.
resampling:idyom-resample
¶
idyom:idyom
uses resampling:idyom-resample
to compute the note-by-note IC values, and can be used to obtain these a list. The function takes a subset of the top-level arguments (see above):
- Required: dataset-id, target-viewpoints, source-viewpoints (no viewpoint selection)
- Model: models, ltmo, stmo
- Training: pretraining-ids, k, resampling-indices
resampling:output-information-content
¶
Takes the output of resampling:idyom-resample
and returns the average information content. It takes the following arguments:
- predictions: the output of
resampling:idyom-resample
- detail: an integer which determines how the information content is averaged (these are returned as multiple values):
- 1: averaged over the entire dataset
- 2: and also averaged over each composition
- 3: and also for each event in each composition
resampling:format-information-content
¶
resampling:format-information-content
takes the output of resampling:idyom-resample
and writes it to file. It takes the following arguments:
- predictions: the output of
resampling:idyom-resample
- file: a string denoting a file
- dataset-id: an integer reflecting the dataset-id
- detail: an integer which determines how the information content is averaged (these are returned as multiple values):
- 1: averaged over the entire dataset
- 2: and also averaged over each composition
- 3: and also for each event in each composition
Viewpoint Selection¶
The top-level idyom:idyom
function supports viewpoint selection (see above), i.e. searching a space of viewpoints. This uses two functions: run-hill-climber
and run-best-first
, which take 4 arguments:
- a list of viewpoints: the algorithm searches through the space of combinations of these viewpoints
- a start state (usually nil, the empty viewpoint system)
- an evaluation function returning a numeric performance metric: e.g., the mean information content of the dataset returned by
dataset-prediction
- a symbol describing which way to optimise the metric:
:desc
mean lower values are better:asc
mean greater values are better
Here is an example:
CL-USER> (viewpoint-selection:run-hill-climber '(:cpitch :cpintfref :cpint :contour) nil #'(lambda (viewpoints) (utils:round-to-nearest-decimal-place (resampling:output-information-content (resampling:dataset-prediction 0 '(cpitch) viewpoints :k 10 :models :both+) 1) 2)) :desc) ============================================================================= System Score ----------------------------------------------------------------------------- NIL NIL (CPITCH) 2.52 (CPINT CPITCH) 2.43 (CPINTFREF CPINT CPITCH) 2.38 ============================================================================= #S(VIEWPOINT-SELECTION::RECORD :STATE (:CPINTFREF :CPINT :CPITCH) :WEIGHT 2.38)
Since this can be quite a time consuming process, there are also functions for caching the results.
(initialise-vs-cache) (load-vs-cache filename package) (store-vs-cache filename package)