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.

`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 class version 7.2-23 Index]