Svm отрицательная (положительная) полуопределенная матрица в rmosek

Я попытался настроить 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.

Я не знаю, какую часть мне не хватает или я делаю неправильно. (Я уже столько раз проверял, и до сих пор не знаю.)

Я бы свалил проблему в файл opf и проверил, действительно ли квадратичные члены соответствуют вашим ожиданиям (инструкции на веб-сайте Mosek). А затем посмотрите, возможно ли, что ваша матрица все-таки имеет положительное или почти положительное собственное значение. Особенно, если это случается лишь иногда.

Michal Adamaszek 14.09.2018 13:59
1
1
85
0

Другие вопросы по теме