knn: k-Nearest Neighbour Classification

Description Usage Arguments Value Author(s) References See Also Examples

View source: R/KNNCR.R

Description

k-nearest neighbour classification for test set from training set. For each row of the test set, the k nearest (in Euclidean distance) training set vectors are found, and the classification is decided by majority vote, with ties broken at random. If there are ties for the kth nearest vector, all candidates are included in the vote.

Usage

1
  knn(train, test, cl, k = 1, prob = FALSE, algorithm=c("kd_tree", "cover_tree", "brute"))

Arguments

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.

k

number of neighbours considered.

prob

if this is true, the proportion of the votes for the winning class are returned as attribute prob.

algorithm

nearest neighbor search algorithm.

Value

factor of classifications of test set. doubt will be returned as NA.

Author(s)

Shengqiao Li. To report any bugs or suggestions please email: [email protected]

References

B.D. Ripley (1996). Pattern Recognition and Neural Networks. Cambridge.

M.N. Venables and B.D. Ripley (2002). Modern Applied Statistics with S. Fourth edition. Springer.

See Also

ownn, knn.cv and knn in class.

Examples

1
2
3
4
5
6
    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)))
    knn(train, test, cl, k = 3, prob=TRUE)
    attributes(.Last.value)

Example output

 [1] s s s s s s s s s s s s s s s s s s s s s s s s s c c v c c c c c v c c c c
[39] c c c c c c c c c c c c v c c v v v v v c v v v v c v v v v v v v v v v v
attr(,"prob")
 [1] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
 [8] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[15] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[22] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.6666667
[29] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.6666667 1.0000000
[36] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[43] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[50] 1.0000000 1.0000000 0.6666667 0.6666667 1.0000000 1.0000000 1.0000000
[57] 1.0000000 1.0000000 0.6666667 1.0000000 1.0000000 1.0000000 1.0000000
[64] 0.6666667 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[71] 1.0000000 0.6666667 1.0000000 1.0000000 0.6666667
attr(,"nn.index")
      [,1] [,2] [,3]
 [1,]   10    2   13
 [2,]   24    8   18
 [3,]    1   18    8
 [4,]    1   18    8
 [5,]    4   12   10
 [6,]   10    4   13
 [7,]   21   18   11
 [8,]   20   11   17
 [9,]   16   17   15
[10,]   10    2   13
[11,]    2    3   10
[12,]   11    1   21
[13,]    5    1    8
[14,]    9   14    4
[15,]    8    1   18
[16,]   18    1    5
[17,]    9   14   13
[18,]    4    3    7
[19,]   24   22   18
[20,]    6   22   20
[21,]    2   13    3
[22,]   20   22    5
[23,]    4    3    7
[24,]   11   20   22
[25,]    8    1   18
[26,]   41   34   50
[27,]   34   28   30
[28,]   28   61   74
[29,]   39   37   31
[30,]   45   40   43
[31,]   45   29   35
[32,]   45   29   43
[33,]   43   45   47
[34,]   52   74   48
[35,]   42   31   37
[36,]   32   46   27
[37,]   28   41   34
[38,]   44   48   38
[39,]   37   42   31
[40,]   29   45   35
[41,]   31   43   29
[42,]   39   49   27
[43,]   43   45   47
[44,]   33   36   35
[45,]   31   43   45
[46,]   37   31   43
[47,]   37   31   43
[48,]   50   47   37
[49,]   33   36   40
[50,]   43   37   31
[51,]   53   58   71
[52,]   74   39   48
[53,]   46   74   32
[54,]   55   54   62
[55,]   53   58   63
[56,]   58   53   56
[57,]   68   56   60
[58,]   55   54   62
[59,]   48   74   39
[60,]   54   62   67
[61,]   56   53   58
[62,]   66   51   75
[63,]   67   54   62
[64,]   46   74   39
[65,]   63   71   75
[66,]   71   63   55
[67,]   63   61   66
[68,]   52   64   72
[69,]   71   75   55
[70,]   71   75   55
[71,]   63   66   61
[72,]   74   62   48
[73,]   61   62   67
[74,]   66   61   75
[75,]   52   46   72
attr(,"nn.dist")
           [,1]      [,2]      [,3]
 [1,] 0.2000000 0.2236068 0.3000000
 [2,] 0.2000000 0.2236068 0.2645751
 [3,] 0.1414214 0.1732051 0.2236068
 [4,] 0.1414214 0.1732051 0.2236068
 [5,] 0.1732051 0.2236068 0.2645751
 [6,] 0.1732051 0.2236068 0.2449490
 [7,] 0.2828427 0.3464102 0.3605551
 [8,] 0.3741657 0.4582576 0.4582576
 [9,] 0.3605551 0.3872983 0.4123106
[10,] 0.1000000 0.1414214 0.2000000
[11,] 0.3000000 0.3162278 0.3464102
[12,] 0.3000000 0.4123106 0.4242641
[13,] 0.1414214 0.2449490 0.2645751
[14,] 0.1414214 0.2449490 0.3000000
[15,] 0.1000000 0.1414214 0.1732051
[16,] 0.1414214 0.1732051 0.1732051
[17,] 0.6244998 0.7810250 0.7937254
[18,] 0.3000000 0.3000000 0.3162278
[19,] 0.2645751 0.3162278 0.3741657
[20,] 0.3741657 0.4123106 0.4123106
[21,] 0.1414214 0.2000000 0.2645751
[22,] 0.1414214 0.2449490 0.3000000
[23,] 0.1414214 0.1414214 0.2236068
[24,] 0.1000000 0.2449490 0.2828427
[25,] 0.1414214 0.2236068 0.2449490
[26,] 0.1414214 0.2449490 0.2645751
[27,] 0.3162278 0.3464102 0.3741657
[28,] 0.3162278 0.4242641 0.5196152
[29,] 0.2449490 0.3316625 0.3741657
[30,] 0.4358899 0.4472136 0.6164414
[31,] 0.1732051 0.3000000 0.5291503
[32,] 0.2645751 0.4358899 0.5830952
[33,] 0.2828427 0.3000000 0.3464102
[34,] 0.3605551 0.4123106 0.4242641
[35,] 0.2000000 0.4123106 0.5830952
[36,] 0.3741657 0.4242641 0.4582576
[37,] 0.2828427 0.3162278 0.3162278
[38,] 0.2645751 0.5744563 0.5916080
[39,] 0.3741657 0.4472136 0.4582576
[40,] 0.2000000 0.2449490 0.3872983
[41,] 0.3162278 0.4795832 0.5099020
[42,] 0.1414214 0.3000000 0.3872983
[43,] 0.2449490 0.2645751 0.3741657
[44,] 0.1414214 0.3605551 0.8485281
[45,] 0.3316625 0.3741657 0.4123106
[46,] 0.3605551 0.3741657 0.3872983
[47,] 0.3000000 0.3162278 0.3872983
[48,] 0.2000000 0.3316625 0.3872983
[49,] 0.3872983 0.7211103 0.9000000
[50,] 0.3316625 0.3605551 0.4000000
[51,] 0.3872983 0.4358899 0.6557439
[52,] 0.1732051 0.4358899 0.4472136
[53,] 0.3000000 0.3605551 0.4582576
[54,] 0.3162278 0.3316625 0.3741657
[55,] 0.5196152 0.5567764 0.7071068
[56,] 0.2645751 0.4582576 0.6082763
[57,] 0.4123106 0.8831761 0.9327379
[58,] 0.3000000 0.4242641 0.4358899
[59,] 0.3605551 0.3741657 0.4690416
[60,] 0.5385165 0.6633250 0.7000000
[61,] 0.5477226 0.6633250 0.6782330
[62,] 0.3872983 0.4242641 0.5196152
[63,] 0.1414214 0.2449490 0.4582576
[64,] 0.2236068 0.4358899 0.4358899
[65,] 0.1732051 0.3741657 0.4123106
[66,] 0.2645751 0.3464102 0.3605551
[67,] 0.4690416 0.5099020 0.5477226
[68,] 0.0000000 0.2645751 0.3162278
[69,] 0.2236068 0.3162278 0.3872983
[70,] 0.3000000 0.4000000 0.4795832
[71,] 0.3741657 0.3741657 0.4242641
[72,] 0.2449490 0.3741657 0.4123106
[73,] 0.2236068 0.3464102 0.3605551
[74,] 0.3000000 0.5567764 0.6244998
[75,] 0.3316625 0.3605551 0.4582576
Levels: c s v
$levels
[1] "c" "s" "v"

$class
[1] "factor"

$prob
 [1] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
 [8] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[15] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[22] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.6666667
[29] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 0.6666667 1.0000000
[36] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[43] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[50] 1.0000000 1.0000000 0.6666667 0.6666667 1.0000000 1.0000000 1.0000000
[57] 1.0000000 1.0000000 0.6666667 1.0000000 1.0000000 1.0000000 1.0000000
[64] 0.6666667 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[71] 1.0000000 0.6666667 1.0000000 1.0000000 0.6666667

$nn.index
      [,1] [,2] [,3]
 [1,]   10    2   13
 [2,]   24    8   18
 [3,]    1   18    8
 [4,]    1   18    8
 [5,]    4   12   10
 [6,]   10    4   13
 [7,]   21   18   11
 [8,]   20   11   17
 [9,]   16   17   15
[10,]   10    2   13
[11,]    2    3   10
[12,]   11    1   21
[13,]    5    1    8
[14,]    9   14    4
[15,]    8    1   18
[16,]   18    1    5
[17,]    9   14   13
[18,]    4    3    7
[19,]   24   22   18
[20,]    6   22   20
[21,]    2   13    3
[22,]   20   22    5
[23,]    4    3    7
[24,]   11   20   22
[25,]    8    1   18
[26,]   41   34   50
[27,]   34   28   30
[28,]   28   61   74
[29,]   39   37   31
[30,]   45   40   43
[31,]   45   29   35
[32,]   45   29   43
[33,]   43   45   47
[34,]   52   74   48
[35,]   42   31   37
[36,]   32   46   27
[37,]   28   41   34
[38,]   44   48   38
[39,]   37   42   31
[40,]   29   45   35
[41,]   31   43   29
[42,]   39   49   27
[43,]   43   45   47
[44,]   33   36   35
[45,]   31   43   45
[46,]   37   31   43
[47,]   37   31   43
[48,]   50   47   37
[49,]   33   36   40
[50,]   43   37   31
[51,]   53   58   71
[52,]   74   39   48
[53,]   46   74   32
[54,]   55   54   62
[55,]   53   58   63
[56,]   58   53   56
[57,]   68   56   60
[58,]   55   54   62
[59,]   48   74   39
[60,]   54   62   67
[61,]   56   53   58
[62,]   66   51   75
[63,]   67   54   62
[64,]   46   74   39
[65,]   63   71   75
[66,]   71   63   55
[67,]   63   61   66
[68,]   52   64   72
[69,]   71   75   55
[70,]   71   75   55
[71,]   63   66   61
[72,]   74   62   48
[73,]   61   62   67
[74,]   66   61   75
[75,]   52   46   72

$nn.dist
           [,1]      [,2]      [,3]
 [1,] 0.2000000 0.2236068 0.3000000
 [2,] 0.2000000 0.2236068 0.2645751
 [3,] 0.1414214 0.1732051 0.2236068
 [4,] 0.1414214 0.1732051 0.2236068
 [5,] 0.1732051 0.2236068 0.2645751
 [6,] 0.1732051 0.2236068 0.2449490
 [7,] 0.2828427 0.3464102 0.3605551
 [8,] 0.3741657 0.4582576 0.4582576
 [9,] 0.3605551 0.3872983 0.4123106
[10,] 0.1000000 0.1414214 0.2000000
[11,] 0.3000000 0.3162278 0.3464102
[12,] 0.3000000 0.4123106 0.4242641
[13,] 0.1414214 0.2449490 0.2645751
[14,] 0.1414214 0.2449490 0.3000000
[15,] 0.1000000 0.1414214 0.1732051
[16,] 0.1414214 0.1732051 0.1732051
[17,] 0.6244998 0.7810250 0.7937254
[18,] 0.3000000 0.3000000 0.3162278
[19,] 0.2645751 0.3162278 0.3741657
[20,] 0.3741657 0.4123106 0.4123106
[21,] 0.1414214 0.2000000 0.2645751
[22,] 0.1414214 0.2449490 0.3000000
[23,] 0.1414214 0.1414214 0.2236068
[24,] 0.1000000 0.2449490 0.2828427
[25,] 0.1414214 0.2236068 0.2449490
[26,] 0.1414214 0.2449490 0.2645751
[27,] 0.3162278 0.3464102 0.3741657
[28,] 0.3162278 0.4242641 0.5196152
[29,] 0.2449490 0.3316625 0.3741657
[30,] 0.4358899 0.4472136 0.6164414
[31,] 0.1732051 0.3000000 0.5291503
[32,] 0.2645751 0.4358899 0.5830952
[33,] 0.2828427 0.3000000 0.3464102
[34,] 0.3605551 0.4123106 0.4242641
[35,] 0.2000000 0.4123106 0.5830952
[36,] 0.3741657 0.4242641 0.4582576
[37,] 0.2828427 0.3162278 0.3162278
[38,] 0.2645751 0.5744563 0.5916080
[39,] 0.3741657 0.4472136 0.4582576
[40,] 0.2000000 0.2449490 0.3872983
[41,] 0.3162278 0.4795832 0.5099020
[42,] 0.1414214 0.3000000 0.3872983
[43,] 0.2449490 0.2645751 0.3741657
[44,] 0.1414214 0.3605551 0.8485281
[45,] 0.3316625 0.3741657 0.4123106
[46,] 0.3605551 0.3741657 0.3872983
[47,] 0.3000000 0.3162278 0.3872983
[48,] 0.2000000 0.3316625 0.3872983
[49,] 0.3872983 0.7211103 0.9000000
[50,] 0.3316625 0.3605551 0.4000000
[51,] 0.3872983 0.4358899 0.6557439
[52,] 0.1732051 0.4358899 0.4472136
[53,] 0.3000000 0.3605551 0.4582576
[54,] 0.3162278 0.3316625 0.3741657
[55,] 0.5196152 0.5567764 0.7071068
[56,] 0.2645751 0.4582576 0.6082763
[57,] 0.4123106 0.8831761 0.9327379
[58,] 0.3000000 0.4242641 0.4358899
[59,] 0.3605551 0.3741657 0.4690416
[60,] 0.5385165 0.6633250 0.7000000
[61,] 0.5477226 0.6633250 0.6782330
[62,] 0.3872983 0.4242641 0.5196152
[63,] 0.1414214 0.2449490 0.4582576
[64,] 0.2236068 0.4358899 0.4358899
[65,] 0.1732051 0.3741657 0.4123106
[66,] 0.2645751 0.3464102 0.3605551
[67,] 0.4690416 0.5099020 0.5477226
[68,] 0.0000000 0.2645751 0.3162278
[69,] 0.2236068 0.3162278 0.3872983
[70,] 0.3000000 0.4000000 0.4795832
[71,] 0.3741657 0.3741657 0.4242641
[72,] 0.2449490 0.3741657 0.4123106
[73,] 0.2236068 0.3464102 0.3605551
[74,] 0.3000000 0.5567764 0.6244998
[75,] 0.3316625 0.3605551 0.4582576

FNN documentation built on May 29, 2017, 9:41 a.m.

Related to knn in FNN...