$k$-nearest neighbour classification that can return class votes for all classes.
knn3(x, ...)# S3 method for formula
knn3(formula, data, subset, na.action, k = 5, ...)
# S3 method for data.frame
knn3(x, y, k = 5, ...)
# S3 method for matrix
knn3(x, y, k = 5, ...)
# S3 method for knn3
print(x, ...)
knn3Train(train, test, cl, k = 1, l = 0, prob = TRUE, use.all = TRUE)
An object of class knn3
. See predict.knn3
.
a matrix of training set predictors
additional parameters to pass to knn3Train
. However,
passing prob = FALSE
will be over-ridden.
a formula of the form lhs ~ rhs
where lhs
is
the response variable and rhs
a 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 NA
s.
number of neighbours considered.
a factor vector of training set classes
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-l
dissenting votes are allowed, even if
k
is increased by ties.)
If this is true, the proportion of the votes for each class are
returned as attribute prob
.
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.
knn3
is essentially the same code as ipredknn
and knn3Train
is a copy of knn
. The underlying C
code from the class
package has been modified to return the vote
percentages for each class (previously the percentage for the winning class
was returned).
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)
Run the code above in your browser using DataLab