Multiedit for k-NN classifier

multiedit(x, class, k = 1, V = 3, I = 5, trace = TRUE)

Arguments

x

matrix of training set.

class

vector of classification of training set.

k

number of neighbours used in k-NN.

V

divide training set into V parts.

I

number of null passes before quitting.

trace

logical for statistics at each pass.

Value

Index vector of cases to be retained.

References

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.

See also

Examples

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