Documentation Center

  • Trial Software
  • Product Updates

ClassificationKNN.template

Class: ClassificationKNN

k-nearest neighbor classifier template for ensemble (to be removed)

ClassificationKNN.template will be removed in a future release. Use templateKNN instead.

Syntax

t = ClassificationKNN.template()
t = ClassificationKNN.template(Name,Value)

Description

t = ClassificationKNN.template() returns a learner template suitable to use in the fitensemble function.

t = ClassificationKNN.template(Name,Value) creates a template with additional options specified by one or more Name,Value pair arguments.

Input Arguments

expand all

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

'BreakTies' — Tie-breaking algorithm'smallest' (default) | 'nearest' | 'random'

Tie-breaking algorithm used by the predict method if multiple classes have the same smallest cost, specified as the comma-separated pair consisting of 'BreakTies' and one of the following:

  • 'smallest' — Use the smallest index among tied groups.

  • 'nearest' — Use the class with the nearest neighbor among tied groups.

  • 'random' — Use a random tiebreaker among tied groups.

By default, ties occur when multiple classes have the same number of nearest points among the K nearest neighbors.

Example: 'BreakTies','nearest'

'BucketSize' — Maximum data points in node50 (default) | positive integer value

Maximum number of data points in the leaf node of the kd-tree, specified as the comma-separated pair consisting of 'BucketSize' and a positive integer value. This argument is meaningful only when NSMethod is 'kdtree'.

Example: 'BucketSize',40

Data Types: single | double

'Cov' — Covariance matrixnancov(X) (default) | positive definite matrix of scalar values

Covariance matrix, specified as the comma-separated pair consisting of 'Cov' and a positive definite matrix of scalar values representing the covariance matrix when computing the Mahalanobis distance. This argument is only valid when 'Distance' is 'mahalanobis'.

Data Types: single | double

'Distance' — Distance metricvalid distance metric string | function handle

Distance metric, specified as the comma-separated pair consisting of 'Distance' and a valid distance metric string or function handle. The allowable strings depend on the NSMethod parameter, which you set in fitcknn, and which exists as a field in ModelParameters. If you specify CategoricalPredictors as 'all', then the default distance metric is 'hamming'. Otherwise, the default distance metric is 'euclidean'.

NSMethodDistance Metric Names
exhaustiveAny distance metric of ExhaustiveSearcher
kdtree'cityblock', 'chebychev', 'euclidean', or 'minkowski'

For definitions, see Distance Metrics.

This table includes valid distance metrics of ExhaustiveSearcher.

ValueDescription
'cityblock'City block distance.
'chebychev'Chebychev distance (maximum coordinate difference).
'correlation'One minus the sample linear correlation between observations (treated as sequences of values).
'cosine'One minus the cosine of the included angle between observations (treated as vectors).
'euclidean'Euclidean distance.
'hamming'Hamming distance, percentage of coordinates that differ.
'jaccard'One minus the Jaccard coefficient, the percentage of nonzero coordinates that differ.
'mahalanobis'Mahalanobis distance, computed using a positive definite covariance matrix C. The default value of C is the sample covariance matrix of x, as computed by nancov(x). To specify a different value for C, use the 'Cov' name-value pair argument.
'minkowski'Minkowski distance. The default exponent is 2. To specify a different exponent, use the 'P' name-value pair argument.
'seuclidean'Standardized Euclidean distance. Each coordinate difference between x and a query point is scaled, meaning divided by a scale value S. The default value of S is the standard deviation computed from x, S = nanstd(X). To specify another value for S, use the Scale name-value pair argument.
'spearman'One minus the sample Spearman's rank correlation between observations (treated as sequences of values).
@distfunDistance function handle. distfun has the form
function D2 = DISTFUN(ZI,ZJ)
% calculation of  distance
...
where
  • ZI is a 1-by-N vector containing one row of x or y.

  • ZJ is an M2-by-N matrix containing multiple rows of x or y.

  • D2 is an M2-by-1 vector of distances, and D2(k) is the distance between observations ZI and ZJ(J,:).

Example: 'Distance','minkowski'

Data Types: function_handle

'DistanceWeight' — Distance weighting function'equal' (default) | 'inverse' | 'squaredinverse' | function handle

Distance weighting function, specified as the comma-separated pair consisting of 'DistanceWeight' and either a function handle or one of the following strings specifying the distance weighting function.

DistanceWeightMeaning
'equal'No weighting
'inverse'Weight is 1/distance
'squaredinverse'Weight is 1/distance2
@fcnfcn is a function that accepts a matrix of nonnegative distances, and returns a matrix the same size containing nonnegative distance weights. For example, 'squaredinverse' is equivalent to @(d)d.^(-2).

Example: 'DistanceWeight','inverse'

Data Types: function_handle

'Exponent' — Minkowski distance exponent2 (default) | positive scalar value

Minkowski distance exponent, specified as the comma-separated pair consisting of 'Exponent' and a positive scalar value. This argument is only valid when 'Distance' is 'minkowski'.

Example: 'Exponent',3

Data Types: single | double

'IncludeTies' — Tie inclusion flagfalse (default) | true

Tie inclusion flag, specified as the comma-separated pair consisting of 'IncludeTies' and a logical value indicating whether predict includes all the neighbors whose distance values are equal to the Kth smallest distance. If IncludeTies is true, predict includes all these neighbors. Otherwise, predict uses exactly K neighbors.

Example: 'IncludeTies',true

Data Types: logical

'NSMethod' — Nearest neighbor search method'kdtree' | 'exhaustive'

Nearest neighbor search method, specified as the comma-separated pair consisting of 'NSMethod' and either 'kdtree' or 'exhaustive'.

  • 'kdtree' — Create and use a kd-tree to find nearest neighbors. 'kdtree' is valid when the distance metric is one of the following:

    • 'euclidean'

    • 'cityblock'

    • 'minkowski'

    • 'chebyshev'

  • 'exhaustive' — Use the exhaustive search algorithm. The distance values from all points in x to each point in y are computed to find nearest neighbors.

The default is 'kdtree' when x has 10 or fewer columns, x is not sparse, and the distance metric is a 'kdtree' type; otherwise, 'exhaustive'.

Example: 'NSMethod','exhaustive'

'NumNeighbors' — Number of nearest neighbors to find1 (default) | positive integer value

Number of nearest neighbors in x to find for classifying each point when predicting, specified as the comma-separated pair consisting of 'NumNeighbors' and a positive integer value.

Example: 'NumNeighbors',3

Data Types: single | double

'Scale' — Distance scalenanstd(x) (default) | vector of nonnegative scalar values

Distance scale, specified as the comma-separated pair consisting of 'Scale' and a vector containing nonnegative scalar values with length equal to the number of columns in x. Each coordinate difference between x and a query point is scaled by the corresponding element of Scale. This argument is only valid when 'Distance' is 'seuclidean'.

Data Types: single | double

Output Arguments

expand all

t — Classification templateclassification template object

K-nearest neighbor classification template suitable to use in the fitensemble function. In an ensemble, t specifies how to create the KNN classifier.

Examples

expand all

KNN template for nondefault options

Create a nondefault k-nearest neighbor template for use in fitensemble.

Create a template for 5-nearest neighbor search.

t = ClassificationKNN.template('NumNeighbors',5)
t = 

Fit template for classification KNN.

      NumNeighbors: 5
          NSMethod: ''
          Distance: ''
        BucketSize: []
       IncludeTies: ''
    DistanceWeight: []
         BreakTies: []
          Exponent: []
               Cov: []
             Scale: []
            Method: 'KNN'
              Type: 'classification'

You can use t for ensemble learning.

See Also

|

Was this topic helpful?