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: :descmean lower values are better:ascmean 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)