Kennardstone

From Eigenvector Research Documentation Wiki
Revision as of 16:24, 27 March 2013 by imported>Donal (Created page with "===Purpose=== Select a subset of samples by the Kennard-Stone algorithm. ===Synopsis=== :sel = kennardstone(x, k) ===Description=== Kennard-Stone tries to select a subset of...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Purpose

Select a subset of samples by the Kennard-Stone algorithm.

Synopsis

sel = kennardstone(x, k)

Description

Kennard-Stone tries to select a subset of samples from a dataset which provide uniform coverage over the dataset and include samples on the boundary of the data set. The method begins by finding the two samples which are farthest apart using geometric distance. To add another sample to the selection set the algorithm selects from the remaining samples that one which has the greatest separation distance from the selected samples. The separation distance of a candidate sample from the selected set is the distance from the candidate to its closest selected sample. This most separated sample is then added to the selection set and the process is repeated until the required number of samples have been added to the selection set. In practice this produces a very uniformly distributed network of selected points over the dataset and includes samples along the boundary of the dataset. The method is efficient because it calculates the inter-sample distances matrix only once.

The method is implemented as described in R. W. Kennard & L. A. Stone (1969): Computer Aided Design of Experiments, Technometrics, 11:1, 137-148.

Inputs

  • x = array, or dataset, containing data to select k samples from,
  • k = number of samples to select.

Outputs

  • sel = logical vector of length nsamples, indicating samples which are selected, true = is selected. If input x was a dataset then sel has size (1, nincluded) and sel indicates which included samples are selected.

Example

>> load arch;
>> sel = kennardstone(arch, 10);
>> arch_subset = arch(sel,:);

See Also

distslct, reducennsamples, doptimal, stdsslct