当前位置: 首页 > 知识库问答 >
问题:

模型比较的交叉验证

公孙联
2023-03-14

我有一个相对大的数据:

超过37万个观测数据,分类因变量有250个水平,10个自变量包括数值变量和分类变量。

下面是我的代码:

w <- read.csv('D:/R code/animal2.csv',header = T)
names(w)
[1] "cluster_ward" "AAT0"         "ARIDITY"      "TOPO"         "TMAX"        
[6] "PREMAX"       "PREMIN"       "AMT"          "SU_CODE90"    "T_OC"        
[11] "ELEMAX"  

nrow(w)
[1] 370827  

w$TOPO <- as.factor(w$TOPO)
w$SU_CODE90 <- as.factor(w$SU_CODE90)  

library(rpart.plot)  
fit1 <- rpart(cluster_ward ~., w)
pred1 <- predict(fit1, w, type="class")  

library(e1071)
fit2 <-svm(cluster_ward~., data=w, kernal="sigmoid")
pred2 <- predict(a, w)

library(kknn)
set.seed(1000)
fit3 <- kknn(cluster_ward~., train=w, test=w)
pred3 <- fit3$fit

library(adabag)
set.seed(1000)
fit4 <- boosting(cluster_ward~., w)
pred4 <- predict(fit4,w)$class

library(adabag)
set.seed(1000)
fit5 <- bagging(cluster_ward~., w)
pred5 <- predict(fit5,w)$class

有人告诉我包'CV tools'或'cert'可以预形成k-folds CV,但我仍然不能成功地执行这些包或函数。

共有1个答案

王俊楚
2023-03-14

我通常更喜欢自己实现CV,因为它相对容易,让您可以控制您可以使用的算法和评估指标。

k = 10 # Number of k-folds
id = sample(1:k,nrow(data),replace=TRUE)
list = 1:k
for (i in 1:k){
  trainingset = subset(data, id %in% list[-i])
  testset = subset(data, id %in% c(i))

  # Training
  fit.glm = glm(cluster_ward ~ ., data=trainingset)


  # Testing
  pred = predict(fit.glm, testset, type="response")
  real = testset$cluster_ward
  rmse =  sqrt(sum((pred - real) ^ 2))/length(real)

}
 类似资料:
  • 问题内容: 我想通过交叉验证从Logistic回归模型预测概率。我知道您可以获取交叉验证分数,但是可以从predict_proba返回值而不是分数吗? 问题答案: 现在,这已作为scikit- learn版本0.18的一部分实现。您可以将’method’字符串参数传递给cross_val_predict方法。文档在这里。 例: 还要注意,这是新的sklearn.model_selection包的一

  • 我正在训练一个数据集,然后在其他数据集上测试它。

  • 密钥错误:0 我通过将中的替换为或来进行实验。此外,我尝试了对原始输入数据()进行同样的处理,而不是预处理文本。我怀疑用于交叉验证的的格式一定有问题,而用于管道的函数工作得很好。我还注意到与一起工作。 有人发现错误了吗?

  • 在ngram模型(字符ngram或单词袋)中,我们需要确保测试数据的词汇不被用于拟合或训练模型。 这就是sklearn TfidfVectorizer函数对两个函数(fit和transform)所做的操作。 还是一开始就适合模型一次(第一次)?

  • 本示例利用Akaike信息判据(AIC)、Bayes信息判据(BIC)和交叉验证,来筛选Lasso回归的正则化项参数alpha的最优值。 通过LassoLarsIC得到的结果,是基于AIC/BIC判据的。 这种基于信息判据(AIC/BIC)的模型选择非常快,但它依赖于对自由度的正确估计。该方式的假设模型必需是正确, 而且是对大样本(渐近结果)进行推导,即,数据实际上是由该模型生成的。当问题的背景条

  • 我有两个基于同一ecore模型的EMF实例版本。我需要以以下格式准备一个从v1到v2更改的事物列表