![](/img/trans.png)
[英]Use k-fold cross-validation with CRFSuite and save it in a model file
[英]Why accuracy over each k-fold cross-Validation differ alot? how can i improve that
我有一個包含 91 個觀測值和 700 個特征的數據集。 我已經使用 PCA 減少了數據的維度。 然后我將數據集分成訓練和測試,比率 = 70/30。 之后對訓練數據集應用 kfold =10 交叉驗證並計算每個折疊的准確度。 我懷疑它變化很大。
數據集中的 class 分布
Male Female
47 44
這是每次折疊的准確性嗎? 使用 LDA 訓練 model 時每次折疊的結果
fold1 = 0.71
fold2 = 0.83
fold3 = 0.50
fold4 0.29,
fold5 = 0.67 ,
fold6 = 0.33
fold7 = 0.14
fold8 = 1.00
fold9 = 0.33
fold10 = 0.14
有這樣的變化是否正確? 如果沒有,那我該如何解決這個問題? 我怎樣才能提高每次折疊的准確性,至少它不應該有太大變化? 可能的原因是什么? 為什么變化很大? 我正在尋找這些問題的答案
這是我的交叉驗證 function
training_data數據是實際數據的 70%
lda_cv = function(training_data,k_number_of_folds){
training_data = training_data[sample(nrow(training_data)),]
#creating folds
folds <- createFolds(training_data$class,k_number_of_folds)
result = list("t_cfm"=NULL,"t_accuracy"=NULL)
for (i in 1:k_number_of_folds) {
#index <- which(folds==i,arr.ind=TRUE)
index <- folds[[i]]
train <- training_data[-index, ]
test <- training_data[index, ]
##testing accuracy
lda.res = lda( as.factor(class) ~ . , data = train)
lda.pred= predict(lda.res,newdata = test)
cfm = table(lda.pred$class,test$class,dnn = c("predicted","Actual"))
result$t_cfm[[i]] = cfm
accuracy = round(mean(lda.pred$class ==test$class),2)
result$t_accuracy[[i]] = accuracy
}
return(result)
}
是的。 因為每個折疊都在一組不同的圖像上進行訓練,也許其中一個有太多嘈雜的圖像
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.