knn {class} | R Documentation

## k-Nearest Neighbour Classification

### Description

k-nearest neighbour classification for test set from training set. For each row of the test set, the `k` nearest (in Euclidean distance) training set vectors are found, and the classification is decided by majority vote, with ties broken at random. If there are ties for the `k`th nearest vector, all candidates are included in the vote.

### Usage

    knn(train, test, cl, k = 1, l = 0, prob = FALSE, use.all = TRUE)

### Arguments

`train` | matrix or data frame of training set cases.
`test` | matrix or data frame of test set cases. A vector will be interpreted as a row vector for a single case.
`cl` | factor of true classifications of training set
`k` | number of neighbours considered.
`l` | minimum vote for definite decision, otherwise `doubt`. (More precisely, less than `k-l` dissenting votes are allowed, even if `k` is increased by ties.)
`prob` | If this is true, the proportion of the votes for the winning class are returned as attribute `prob`.
`use.all` | controls handling of ties. If true, all distances equal to the `k`th largest are included. If false, a random selection of distances equal to the `k`th is chosen to use exactly `k` neighbours.

### Value

factor of classifications of test set. `doubt` will be returned as `NA`.

### References

Ripley, B. D. (1996) Pattern Recognition and Neural Networks. Cambridge.

Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.

### See Also

`knn1`, `knn.cv`

### Examples

    data(iris3)
    train <- rbind(iris3[1:25,,1], iris3[1:25,,2], iris3[1:25,,3])
    test <- rbind(iris3[26:50,,1], iris3[26:50,,2], iris3[26:50,,3])
    cl <- factor(c(rep("s",25), rep("c",25), rep("v",25)))
    knn(train, test, cl, k = 3, prob=TRUE)
    attributes(.Last.value)

[Package Contents]