24小时热门版块排行榜    

查看: 2534  |  回复: 6

evenleesm1316

木虫 (小有名气)


[交流] 【求助】留一法交互验证如何做?

请问模型的预测中,留一法交互验证能够用什么软件实现?最好有详细操作步骤,谢谢啦!
也就是计算Rcv

MATLAB之类的好像可以算,但是具体怎么做不太清楚,求指教

[ Last edited by mingdong on 2011-1-15 at 21:40 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luoqiquan(金币+1):thanks 2011-01-14 20:20:11
evenleesm1316(金币+5): 2011-01-16 22:26:10
前面我好象贴过一个 R 语言的用 CV 来对线性回归模型进行检验的程序,呵呵……
2楼2011-01-14 11:01:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

evenleesm1316

木虫 (小有名气)


引用回帖:
Originally posted by snoopyzhao at 2011-01-14 11:01:18:
前面我好象贴过一个 R 语言的用 CV 来对线性回归模型进行检验的程序,呵呵……

请具体请教是啥子软件啊?可以把帖子的链接给下不?我没有找到

[ Last edited by evenleesm1316 on 2011-1-16 at 22:35 ]
3楼2011-01-16 22:26:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★ ★ ★ ★
evenleesm1316(金币+5): 谢谢!是不是这个专业的,还是不太懂你这个程序应该在哪个软件里面运行,请指教得白话一点好不? 2011-01-17 10:21:32
mingdong(金币+5): 感谢交流! 2011-01-17 22:52:06
引用回帖:
Originally posted by evenleesm1316 at 2011-01-16 22:26:34:


请具体请教是啥子软件啊?可以把帖子的链接给下不?我没有找到

[ Last edited by evenleesm1316 on 2011-1-16 at 22:35 ]

找不到了,再贴一遍吧。该程序不具有通用性(只能用于 R 下的线性回归的交叉验证),但它的确实现了最常见(经典)的交叉验证的算法,呵呵,要改到其它方法或语言中也是很容易的一件事情。
CODE:
lmcv <- function(obj, ng = NULL, random = FALSE) {
#
# The Leave-One-Out (LOO) and/or Leave-Group-Out (LGO) Cross-Validation in R for (Multiple) Linear Regression.
#
# Input:
#   obj: the model of MLR
#   ng: number of group, if missing, do LOO
#   random: logical, if TRUE, do random CV
#
# Output:
#   q.squared: cross-validation relation coefficient.
#   SDEP: Standard Deviation of Error of Predictions
#   newsq: variance in Y explained only for LOO CV
#
# Usage:
#   loo <- cv.lm(obj)
#   lgo <- cv.lm(obj, ng = 5)
#
    data <- data.frame(y = obj$model[,1], x = obj$model[, -1])
    col.names <- colnames(data)
    N <- nrow(data)
    if (random == TRUE) data <- data[sample(1:N),]
    if (missing(ng)) ng <- N # LOO CV
    ytest <- numeric(N)
    ypred <- numeric(N)
    newrsq <- numeric(ng)
    g <- N %/% ng
    for (i in 1:ng) {
        if (g == 1) {
            index <- i
        }
        else {
            index <- c(i, ng * seq(1, (g - 1)) + i)
            if (N %% ng != 0 & i <= N %% ng) index <- c(index, (g * ng + i))
        }
        ytest[index] <- data[index,1]
        newtrain <- data[-index, ]
        xtest <- data.frame(x = data[index, -1])
        colnames(xtest) <- col.names[-1]
        newfm <- lm(y ~., data = newtrain)
        newrsq[i] <- summary(newfm)$r.squared
        ypred[index] <- predict(newfm, xtest)
    }
    q.squared <- 1 - sum((ytest - ypred)^2) / sum((ytest - mean(ytest))^2)
    SDEP <- sqrt(sum((ytest - ypred)^2) / N)
    return(list(q.squared = q.squared, SDEP = SDEP, newrsq = newrsq))
}

4楼2011-01-16 23:27:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
★ ★ ★ ★ ★
mingdong(金币+5): 感谢交流! 2011-01-17 22:51:54
引用回帖:
谢谢!是不是这个专业的,还是不太懂你这个程序应该在哪个软件里面运行,请指教得白话一点好不?

上面这个程序是在 R (http://www.r-project.org) 中运行的。

我想说的是,不管能不能运行,但主要的思想在这个程序中还是体现出来了。知道了怎么留,怎么去,用自己熟悉的语言编一个不困难的……
6楼2011-01-17 11:00:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aipai

铜虫 (小有名气)


cross-validation method?可以确定的是matlab有命令可以直接用,不过忘了怎么用,不然自己编个吧,也不难,就是麻烦点
7楼2011-01-20 12:10:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
zyxme5楼
2011-01-17 00:16   回复  
相关版块跳转 我要订阅楼主 evenleesm1316 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[教师之家] 跳槽后在研项目怎么办? +4 简单化xn 2026-08-22 8/400 2026-08-23 07:20 by ilovexiaobin
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-21 10/500 2026-08-23 07:17 by OEbVnUOu01ol
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 DpSrDtM079iu 2026-08-22 5/250 2026-08-23 04:07 by OEbVnUOu01ol
[论文投稿] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 4/200 2026-08-23 04:04 by OEbVnUOu01ol
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 2JOx3r2CYEgw 2026-08-22 6/300 2026-08-23 03:40 by OEbVnUOu01ol
[基金申请] 只有每年这种时候来逛逛小木虫 +24 yaoyewhu2008 2026-08-20 26/1300 2026-08-22 17:43 by kammury
[基金申请] 人气不行了 +8 fansofjerry 2026-08-21 8/400 2026-08-22 16:30 by zyqchem
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 时间戳今天,20号变了 +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[基金申请] 建议基金发布提前给出明确的时间点 +10 kulium 2026-08-21 13/650 2026-08-21 21:58 by alongwaytogo
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +16 医学老男孩 2026-08-20 20/1000 2026-08-21 21:13 by Ldrop2023
[基金申请] 看来今天不会放榜了? +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
[基金申请] 让我中一个面上吧! +11 大萍1987 2026-08-20 13/650 2026-08-21 14:48 by 20120902066
[基金申请] 我面上完蛋了 +7 且听虎啸 2026-08-20 8/400 2026-08-21 12:31 by 酷酷墨镜
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[基金申请] 估计是周四 +3 archvillain 2026-08-18 3/150 2026-08-21 01:48 by jnhyjjm
[基金申请] 时间戳变了,能看出什么问题? +18 基诺咪客 2026-08-17 23/1150 2026-08-20 17:19 by Godzela
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
信息提示
请填处理意见