⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pls_5.r

📁 化学图形处理软件
💻 R
字号:
############################################## PLS fit/predict converter#############################################plsFitConverter <-function(obj,...) {    tmp <- .JNew('org.openscience.cdk.qsar.model.R.PLSRegressionModelFit',     obj$nobj, obj$nvar, obj$npred, obj$ncomp, obj$method)    tmp$setTrainingData(     obj$training$B, obj$training$Ypred, obj$training$RMS,     obj$training$Xscores, obj$training$Xload,     obj$training$Yscores, obj$training$Yload)    tmp$PLSRegressionModelSetTrain()    if ('validat' %in% names(obj)) {        # Add validation fields        tmp$setValidationData(         obj$valid$niter, obj$valid$nLV,         obj$valid$Ypred, obj$valid$RMS, obj$valid$RMS.sd, obj$valid$R2)    }    tmp}plsPredictConverter <- function(obj,...) {    class(obj) <- 'matrix'    .JNew('org.openscience.cdk.qsar.model.R.PLSRegressionModelPredict',ncol(obj),obj)}buildPLS <- function(modelname, params) {    library(pls.pcr)    paramlist <- hasmap.to.list(params)    attach(paramlist)        x <- matrix(unlist(x), nrow=length(x), byrow=TRUE)    y <- matrix(unlist(y), nrow=length(y), byrow=TRUE)    if (nrow(x) != nrow(y)) { stop('The number of observations in x & y dont match') }    if (!ncomp) {        ncomp <- 1:ncol(x)    } else {        ncomp <- unlist(ncomp)    }    if (!(method %in% c('PCR','SIMPLS','kernelPLS'))) {        stop('Invalid methopd specification')    }    if (!(validation %in% c('none','CV'))) {        stop('Invalid validation sepcification')    }        if (niter == 0 && validation == 'CV') {        niter = nrow(y)    }        # We should do this since when both grpsize and niter are specified niter    # is used. So if grpsize comes in as 0 (which will be the default setting)    # we specify only niter and if not zero we use grpsize and ignore niter    if (grpsize != 0) {        assign(modelname,        pls(x=x,y=y,ncomp=ncomp,method=method,validation=validation,grpsize=grpsize),        pos=1)    } else {        assign(modelname,        pls(x=x,y=y,ncomp=ncomp,method=method,validation=validation,niter=niter),        pos=1)    }    detach(paramlist)    get(modelname)}predictPLS <- function(modelname, params) {    paramlist <- hashmap.to.list(params)    attach(paramlist)        newX <- matrix(unlist(newX), nrow=length(x), byrow=TRUE)    model <- get(modelname)    if (ncol(newX) != model$nvar) {        stop('The number of independent variables in the new data does not match that specified during building')    }    if (nlv == FALSE) {        preds <- predict(model, newX)    } else {        preds <- predict(model, newX, nlv)    }    class(preds) <- 'plsregressionprediction'    preds}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -