multiedit.RdMultiedit for k-NN classifier
multiedit(x, class, k = 1, V = 3, I = 5, trace = TRUE)Index vector of cases to be retained.
P. A. Devijver and J. Kittler (1982) Pattern Recognition. A Statistical Approach. Prentice-Hall, p. 115.
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.
tr <- sample(1:50, 25)
train <- rbind(iris3[tr,,1], iris3[tr,,2], iris3[tr,,3])
test <- rbind(iris3[-tr,,1], iris3[-tr,,2], iris3[-tr,,3])
cl <- factor(c(rep(1,25),rep(2,25), rep(3,25)), labels=c("s", "c", "v"))
table(cl, knn(train, test, cl, 3))
#>
#> cl s c v
#> s 25 0 0
#> c 0 23 2
#> v 0 1 24
ind1 <- multiedit(train, cl, 3)
#> pass 1 size 66
#> pass 2 size 60
#> pass 3 size 60
#> pass 4 size 60
#> pass 5 size 60
#> pass 6 size 60
length(ind1)
#> [1] 60
table(cl, knn(train[ind1, , drop=FALSE], test, cl[ind1], 1))
#>
#> cl s c v
#> s 25 0 0
#> c 0 22 3
#> v 0 4 21
ntrain <- train[ind1,]; ncl <- cl[ind1]
ind2 <- condense(ntrain, ncl)
#> [1] 50
#> [1] 9 50
#> [1] 9 39 50
length(ind2)
#> [1] 3
table(cl, knn(ntrain[ind2, , drop=FALSE], test, ncl[ind2], 1))
#>
#> cl s c v
#> s 25 0 0
#> c 0 18 7
#> v 0 1 24