R/getInner.itrfit.dif.R

Defines functions getInner.itrfit.dif

getInner.itrfit.dif=function(obj, newdata=NULL) {
 level=obj$level
 k=length(level)
 var=colnames(obj$x)
 id=rownames(obj$x)
 A=obj$coef
 K=obj$kernel
 if (!is.null(newdata)) {
  x=obj$x
  newx=as.matrix(newdata)
  if (any(colnames(newx)!=var)) stop('testing set must have the same structure as the training set!')
  id=rownames(newdata)
  kernel=attr(K, 'type')
  if (kernel=='linear') {
   K=newx%*%t(x)
  } else if (kernel=='gaussian') {
   epsilon=attr(K, 'epsilon')
   K=exp(-epsilon*as.matrix(pdist(newx, x))^2)
  } else if (kernel=='polynomial') {
   d=attr(K, 'degree')
   K=(1+newx%*%t(x))^d
  }
 }
 inner=cbind(1, K)%*%A%*%W.gen(k)
 colnames(inner)=level
 rownames(inner)=id
 return(inner)
}
menghaomiao/itrrnr documentation built on June 21, 2020, 2:22 a.m.