k-Nearest Neighbour Classification
$k$-nearest neighbour classification that can return class votes for all classes.
## S3 method for class 'formula': knn3(formula, data, subset, na.action, k = 5, ...)
## S3 method for class 'matrix': knn3(x, y, k = 5, ...)
knn3Train(train, test, cl, k=1, l=0, prob = TRUE, use.all=TRUE)
- a formula of the form
lhs ~ rhswhere
lhsis the response variable and
rhsa set of predictors.
- optional data frame containing the variables in the model formula.
- optional vector specifying a subset of observations to be used.
- function which indicates what should happen when
the data contain
- number of neighbours considered.
- a matrix of training set predictors
- a factor vector of training set classes
- additional parameters to pass to
knn3Train. However, passing
prob = FALSEwill be over--ridden.
- matrix or data frame of training set cases.
- matrix or data frame of test set cases. A vector will be interpreted as a row vector for a single case.
- factor of true classifications of training set
- minimum vote for definite decision, otherwise
doubt. (More precisely, less than
k-ldissenting votes are allowed, even if
kis increased by ties.)
- If this is true, the proportion of the votes for each class
are returned as attribute
- controls handling of ties. If true, all distances equal to the
kth largest are included. If false, a random selection of distances equal to the
kth is chosen to use exactly
knn3 is essentially the same code as
knn3Train is a copy of
knn. The underlying
C code from the
class pacakge has been modifed to return the vote
percentages for each class (previously the percentage for the winning
class was returned).
- An object of class
irisFit1 <- knn3(Species ~ ., iris) irisFit2 <- knn3(as.matrix(iris[, -5]), iris[,5]) 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))) knn3Train(train, test, cl, k = 5, prob = TRUE)