knn3
From caret v4.51
by Max Kuhn
k-Nearest Neighbour Classification
$k$-nearest neighbour classification that can return class votes for all classes.
- Keywords
- multivariate
Usage
## 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)
Arguments
- formula
- a formula of the form
lhs ~ rhs
wherelhs
is the response variable andrhs
a set of predictors. - data
- optional data frame containing the variables in the model formula.
- subset
- optional vector specifying a subset of observations to be used.
- na.action
- function which indicates what should happen when
the data contain
NA
s. - k
- number of neighbours considered.
- x
- a matrix of training set predictors
- y
- a factor vector of training set classes
- ...
- additional parameters to pass to
knn3Train
. However, passingprob = FALSE
will be over--ridden. - 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
- l
- minimum vote for definite decision, otherwise
doubt
. (More precisely, less thank-l
dissenting votes are allowed, even ifk
is increased by ties.) - prob
- If this is true, the proportion of the votes for each 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 thek
th is chosen to use exactlyk
neighbours.
Details
knn3
is essentially the same code as ipredknn
and 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).
Value
- An object of class
knn3
. Seepredict.knn3
.
Examples
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)
Community examples
Looks like there are no examples yet.