Description Usage Arguments Value Examples
Train SVR
1 2 |
xtrain |
Data matrix (numeric) containing the input values (predictors) used to train the model. |
ytrain |
Response vector (numeric) used to train the model. |
hypparameter |
Hyper-parameters of the model. |
ErrorFunc |
Error function to be minimized. |
PercentValid |
Percentage of the data reserved for validation. Default is |
kfold |
if a integer value k>1 is specified, a k-fold cross validation on the training data is performed. Default is |
SplitRandom |
Option whether to split the train set randomly. Default is |
kernel |
Kernel function to be used. Default is |
hypparameter |
Hyper-parameter of the best trained model. |
forecast |
A vector of predicted values generated by the best trained model. |
svmf |
An object of class "svm" containing the fitted model. |
ffTrain |
Error value of the training based on |
ffValid |
Error value of the validation based on |
stepvars |
Variables selected by the prescreening methods when they are used. |
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 55 56 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (xtrain, ytrain, hypparameter, ErrorFunc, PercentValid = 20,
kfold = 1, SplitRandom = FALSE, kernel = "radial")
{
if (kfold > 1) {
n.cases = nrow(xtrain)
index.block <- xval.buffer(n.cases, kfold)
pred.valid <- rep(Inf, n.cases)
for (nb in 1:kfold) {
svr.try <- try(svm(xtrain[index.block[[nb]]$train,
, drop = FALSE], ytrain[index.block[[nb]]$train,
, drop = FALSE], kernel = kernel, gamma = hypparameter[1],
epsilon = hypparameter[2], cost = hypparameter[3]),
silent = TRUE)
if (class(svr.try) != "try-error") {
pred.valid[index.block[[nb]]$valid] = predict(svr.try,
xtrain[index.block[[nb]]$valid, , drop = FALSE])
}
else {
return(list(error.svm = TRUE))
}
}
return(list(error.svm = FALSE, fitted = pred.valid, ffValid = ErrorFunc(ytrain,
pred.valid)))
}
else {
nTrain = nrow(xtrain)
indValid <- nTrain - round((nTrain * (PercentValid/100)))
if (SplitRandom) {
cases <- sample(nTrain)
x.fit <- x.train[cases, , drop = FALSE]
y.fit <- y.train[cases]
}
x.fit.train <- xtrain[1:indValid, , drop = FALSE]
x.fit.valid <- xtrain[(indValid + 1):nTrain, , drop = FALSE]
y.fit.train <- ytrain[1:indValid]
y.fit.valid <- ytrain[(indValid + 1):nTrain]
svr.try <- try(svm(x.fit.train, y.fit.train, kernel = "radial",
gamma = hypparameter[1], epsilon = hypparameter[2],
cost = hypparameter[3]), silent = TRUE)
if (class(svr.try) != "try-error") {
sv <- svr.try
return(list(error.svm = FALSE, fitted.train = sv$fitted,
fitted.valid = predict(sv, x.fit.valid), ffValid = ErrorFunc(y.fit.valid,
predict(sv, x.fit.valid)), ffTrain = ErrorFunc(y.fit.train,
sv$fitted)))
}
else {
return(list(error.svm = TRUE))
}
}
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.