지원할 계획이 없습니다. 당신은 아주 쉽게 이것을 지원하기 위해 커스텀 학습자를 정의 할 수 있습니다. classif.ksvm
에는 두 가지 변경 사항이 있습니다 (테스트되지 않음). 그런 다음
makeDiscreteLearnerParam(id = "kernel", default = "rbfdot",
values = c("vanilladot", "polydot", "rbfdot", "tanhdot", "laplacedot", "besseldot", "anovadot", "splinedot", "matrix"))
, 계정에 새로운 커널을 취할 수있는 기차 기능을 변경 :
첫째, 커널 매개 변수의 새 매개 변수 값이 허용
trainLearner.classif.ksvm = function(.learner, .task, .subset, .weights = NULL, degree, offset, scale, sigma, order, length, lambda, normalized, ...) {
kpar = learnerArgsToControl(list, degree, offset, scale, sigma, order, length, lambda, normalized)
f = getTaskFormula(.task)
pm = .learner$predict.type == "prob"
parlist = list(...)
if (base::length(kpar) > 0L)
kernlab::ksvm(f, data = getTaskData(.task, .subset), kpar = kpar, prob.model = pm, ...)
else if (parlist$kernel == "matrix")
kernlab::ksvm(kernlab::as.kernelMatrix(getTaskData(.task, .subset)), data = getTaskData(.task, .subset), prob.model = pm, ...)
else
kernlab::ksvm(f, data = getTaskData(.task, .subset), prob.model = pm, ...)
}
이 데이터를 가정한다 당신은 작업을 통과하고 있습니다. 약간의 kludgy 인 사용자 정의 커널을 정의합니다 ...
비슷한 경우 mlr에는'configureMlr (on.par.out.of.bounds = "quiet")'이 있습니다. 그러나이 경우'kernel = "matrix"라는 인자는 @Lars Kotthoff와 같이 학습자를 변경해야하는 방식으로 행동을 변경합니다. –