Commit | Line | Data |
---|---|---|
a961f8a1 BA |
1 | #' @include b_Algorithm.R |
2 | ||
3 | #' @title SVM Algorithm | |
4 | #' | |
5 | #' @description SVM classifier. | |
6 | #' Inherits \code{\link{Algorithm}} | |
7 | #' | |
8 | #' @field kernel TODO | |
9 | #' @field someParam TODO | |
10 | #' | |
11 | SVMclassif = setRefClass( | |
12 | Class = "SVMclassif", | |
13 | ||
14 | fields = c( | |
15 | kernel = "numeric", | |
16 | someParam = "logical" | |
17 | ), | |
18 | ||
19 | contains = "Algorithm", | |
20 | ||
21 | methods = list( | |
22 | initialize = function(...) | |
23 | { | |
24 | callSuper(...) | |
25 | #TODO | |
26 | }, | |
27 | predict_noNA = function(XY, x) | |
28 | { | |
29 | if (nrow(XY) <= 5) | |
30 | return (10) #TODO | |
31 | ||
32 | require(kernlab, quietly=TRUE) | |
33 | XY[,"alert"] = XY[,"Measure"] > 30 | |
34 | alertsIndices = XY[,"alert"] | |
35 | XY[alertsIndices,"alert"] = "alert" | |
36 | XY[!alertsIndices,"alert"] = "noalert" | |
37 | XY[,"alert"] = as.factor(XY[,"alert"]) | |
38 | XY[,"Measure"] = NULL | |
39 | ||
40 | ks = ksvm(alert ~ ., data=XY) | |
41 | pred = as.character(predict(ks, as.data.frame(x))) | |
42 | pred[pred == "alert"] = 70 | |
43 | pred[pred == "noalert"] = 10 | |
44 | return (as.numeric(pred)) | |
45 | } | |
46 | ) | |
47 | ) |