File: test_mnLogLoss.R

package info (click to toggle)
r-cran-caret 7.0-1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 4,036 kB
  • sloc: ansic: 210; sh: 10; makefile: 2
file content (54 lines) | stat: -rw-r--r-- 1,757 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
context('mnLogLoss')

classes <- LETTERS[1:3]

test_dat1 <- data.frame(obs  = c("A", "A", "A", "B", "B", "C"),
                        pred = c("A", "A", "A", "B", "B", "C"),
                        A = c(1, .80, .51, .1, .2, .3),
                        B = c(0, .05, .29, .8, .6, .3),
                        C = c(0, .15, .20, .1, .2, .4),
                        stringsAsFactors = TRUE)

test_that("Multiclass logloss returns expected values", {
  result1 <- mnLogLoss(test_dat1, classes)

  test_dat2 <- test_dat1
  test_dat2$A[1] <- NA
  result2 <- mnLogLoss(test_dat2, classes)

  test_dat3 <- test_dat1
  test_dat3 <- test_dat3[, rev(1:5)]
  result3 <- mnLogLoss(test_dat3, classes)

  expect_equal(result1, c(logLoss = 0.424458), tolerance = .000001)
  expect_equal(result2, c(logLoss = 0.5093496), tolerance = .000001)
  expect_equal(result3, c(logLoss = 0.424458), tolerance = .000001)

})

# Issue #637

classes.b <- c("A", "B")

test_dat1.b <- data.frame(obs  = c("A", "A", "A", "B", "B"),
                          pred = c("A", "A", "A", "B", "B"),
                          A = c(1, .80, .51, .1, .2),
                          B = c(0, .20, .49, .9, .8),
                          stringsAsFactors = TRUE)

test_that("Twoclass logloss returns expected values", {
  result1 <- mnLogLoss(test_dat1.b, classes.b)

  test_dat2.b <- test_dat1.b
  test_dat2.b$A[1] <- NA
  result2 <- mnLogLoss(test_dat2.b, classes.b)

  test_dat3.b <- test_dat1.b
  test_dat3.b <- test_dat3.b[, rev(1:4)]
  result3 <- mnLogLoss(test_dat3.b, classes.b)

  expect_equal(result1, c(logLoss = 0.244998), tolerance = .000001)
  expect_equal(result2, c(logLoss = 0.306248), tolerance = .000001)
  expect_equal(result3, c(logLoss = 0.244998), tolerance = .000001)

})