X-Git-Url: https://git.auder.net/images/pieces/Cwda/wl.svg?a=blobdiff_plain;f=pkg%2FR%2Fm_SVMclassif.R;fp=pkg%2FR%2Fm_SVMclassif.R;h=30e9a2b08485ca1c1a3a7182538de15c2606ea93;hb=ae507b4e6ed3ae1f50a24a7c43d77be9501d791c;hp=0000000000000000000000000000000000000000;hpb=57dbbab63a48b42f85e0a711640e1dd10b58f18a;p=aggexp.git diff --git a/pkg/R/m_SVMclassif.R b/pkg/R/m_SVMclassif.R new file mode 100644 index 0000000..30e9a2b --- /dev/null +++ b/pkg/R/m_SVMclassif.R @@ -0,0 +1,47 @@ +#' @include b_Algorithm.R + +#' @title SVM Algorithm +#' +#' @description SVM classifier. +#' Inherits \code{\link{Algorithm}} +#' +#' @field kernel TODO +#' @field someParam TODO +#' +SVMclassif = setRefClass( + Class = "SVMclassif", + + fields = c( + kernel = "numeric", + someParam = "logical" + ), + + contains = "Algorithm", + + methods = list( + initialize = function(...) + { + callSuper(...) + #TODO + }, + predict_noNA = function(XY, x) + { + if (nrow(XY) <= 5) + return (10) #TODO + + require(kernlab, quietly=TRUE) + XY[,"alert"] = XY[,"Measure"] > 30 + alertsIndices = XY[,"alert"] + XY[alertsIndices,"alert"] = "alert" + XY[!alertsIndices,"alert"] = "noalert" + XY[,"alert"] = as.factor(XY[,"alert"]) + XY[,"Measure"] = NULL + + ks = ksvm(alert ~ ., data=XY) + pred = as.character(predict(ks, as.data.frame(x))) + pred[pred == "alert"] = 70 + pred[pred == "noalert"] = 10 + return (as.numeric(pred)) + } + ) +)