假设我有一个数据帧,我想拆分数据帧以执行K折叠交叉验证。我知道有可用的包可以做到这一点。但我正在尝试编写代码以便学习一些东西。我已经尝试了以下代码,其中我获取K的参数并将数据拆分为K部分并将其保存到df_array。现在,对于每次迭代,我希望有一个作为测试并保留为训练数据。我可以在validation_data变量中替换一个作为测试。但是训练数据包含剩余9个数据帧的列表。我想将其附加到一个,以便我可以将我的模型应用到它。有人可以帮我这么做吗?
df=pd.DataFrame(range(0,10))
def k_fold_cross_validation(data,K):
data=data.sample(frac=1)
df_array = [ data[i::K]for i in xrange(K)]
print df_array
for i,val in enumerate(df_array):
validation_data = pd.DataFrame(df_array[i])
print "validation "
print validation_data
training_data_list = df_array[:i] + df_array[i+1:]
print "training"
print training_data_list
k_fold_cross_validation(df,10)
我的输出应该通过验证0训练作为具有1,2,3,... 9值的数据帧。并且对于下一次迭代,验证1和训练作为具有0,2,3,... 9的数据帧并且继续。
有人可以帮我这么做吗?
答案 0 :(得分:0)
A <- numeric(m*n)
for(i in 1:n) {
for (j in 1:n) {
A[((i-1)*m+1):(i*m)]= A[((i-1)*m+1):(i*m)] + abs(d_Y-d_X[i,j])%*%U[((j-1)*m+1):(j*m)]
}
}
mDF现在将包含DF列表中的所有数据