File: test_classif_dcSVM.R

package info (click to toggle)
r-cran-mlr 2.19.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 8,392 kB
  • sloc: ansic: 65; sh: 13; makefile: 5
file content (42 lines) | stat: -rwxr-xr-x 1,836 bytes parent folder | download | duplicates (2)
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

test_that("classif_dcSVM", {
  requirePackagesOrSkip("SwarmSVM", default.method = "load")

  # Early Prediction
  model = suppressMessages(SwarmSVM::dcSVM(
    x = data.matrix(binaryclass.train[, -61]), y = binaryclass.train[, 61],
    m = 100, k = 10, max.levels = 1, early = 1, seed = 0))
  p = predict(model, data.matrix(binaryclass.test[, -61]))
  p = factor(p, labels = levels(binaryclass.train[, 61]))

  testSimple("classif.dcSVM", binaryclass.df, binaryclass.target, binaryclass.train.inds, p,
    parset = list(m = 100, k = 10, max.levels = 1, early = 1, seed = 0))

  # Exact Prediction
  # suppressed Warning: "max.levels reduced"
  model = suppressMessages(suppressWarnings(SwarmSVM::dcSVM(
    x = data.matrix(binaryclass.train[, -61]),
    y = binaryclass.train[, 61], m = 100, k = 2, max.levels = 3, early = 0, seed = 0)))
  p = predict(model, data.matrix(binaryclass.test[, -61]))
  p = factor(p, labels = levels(binaryclass.train[, 61]))

  # suppressed Warning: "max.levels reduced"
  suppressWarnings(
    testSimple("classif.dcSVM", binaryclass.df, binaryclass.target, binaryclass.train.inds, p,
      parset = list(m = 100, k = 2, max.levels = 3, early = 0, seed = 0))
  )

  # Prediction result containing only one class
  data = data.frame(a = c(1, 2, 1, 2), b = c(1, 1, 2, 2), c = c("a", "b", "a", "b"))
  traintask = makeClassifTask("train", data, "c")
  testtask = makeClusterTask("test", data.frame(a = c(1, 1), b = c(1, 1)))
  x = train(makeLearner("classif.dcSVM", seed = 0), traintask)
  result = predict(x, testtask)$data$response
  expect_equal(as.character(result), c("a", "a"))
})

test_that("classif_dcSVM works correctly when e1071 is used (#733)", {
  requirePackagesOrSkip("SwarmSVM", default.method = "load")

  expect_silent(train(makeLearner("classif.dcSVM", kernel = 1), binaryclass.task))
})