heuristicC.RdheuristicC implements a heuristics proposed by Thorsten Joachims in
order to make fast estimates of a convenient value for the C constant used by
support vector machines. This implementation only works for linear support
vector machines.
heuristicC(data)A value for the C constant is returned, computed as follows:
\(\frac{1}{\frac{1}{n}\sum_{i=1}^{n}\sqrt{G[i,i]}}\)
where
\(G=\code{data}\%*\%t(\code{data})\)
Classification models usually perform better if each dimension of the data is first centered and scaled. If data are scaled, it is better to compute the heuristics on the scaled data as well.
T. Joachims
SVM light (2002)
http://svmlight.joachims.org
data(iris)
x=iris[,1:4]
y=factor(iris[,5])
train=sample(1:dim(iris)[1],100)
xTrain=x[train,]
xTest=x[-train,]
yTrain=y[train]
yTest=y[-train]
# Center and scale data
s=scale(xTrain,center=TRUE,scale=TRUE)
# Sparse Logistic Regression
t=6
co=heuristicC(s)
m=LiblineaR(data=s,labels=yTrain,type=t,cost=co,bias=TRUE,verbose=FALSE)
#> Warning: Argument 'labels' is deprecated and was renamed to 'target'.