Я попытался настроить SVM с помощью пакета Rmosek, и у меня возникла проблема с
с использованием Rmosek.
## SET UP THE "negative semidefinite matrix"
## K is the kernel
## m=nrow(X)
qy1=t(matrix(Y,m,m))
qy2=matrix(Y,m,m)
Q=qy1*qy2*K*-1
На этом этапе я уже проверил, что Q отрицательно
полуопределенная матрица.
## qobj i
funi=function(a,m){
op=a:m
return(op)
}
mi=mapply(funi, a=1:m,m=m)
i=as.numeric(unlist(mi[1:m]))
j=rep(1:m,m:1)
library(MCMCpack)
v=vech(Q)
ql$qobj=list(i=i,
j=j,
v=v)
r =mosek(ql,list( soldetail = 1 ))
Однако, «иногда» я все равно получаю ошибку: ** «Матрица квадратичных коэффициентов
в объективе нет отрицательного полуопределенного "**
Optimizer started.
Quadratic to conic reformulation started.
MOSEK error 1296: The quadratic coefficient matrix in the objective is not negative semidefinite as expected for a maximization problem.
Quadratic to conic reformulation terminated. Time: 0.00
Optimizer terminated. Time: 0.00
Optimization interrupted.
ERROR: MSK_RES_ERR_OBJ_Q_NOT_NSD: The quadratic coefficient matrix in the objective is not NSD.
Я не знаю, какую часть я пропускаю или делаю неправильно.
(Я уже проверял это так много раз, и я все еще не знаю.)