交叉验证python代码实现_python中10倍交叉验证代码中的错误

我在python中从头开始实现了10倍的交叉验证。语言是Python3.6,我用Spyder(Anaconda)写的。我的输入形状是data=(1440390),label=(1440,1)。

我的代码:

def partitions(X,y):

np.random.shuffle(X)

foldx=[]

foldy=[]

j=0

for i in range(0,10):

foldx[i]=X[j:j+143,:]

foldy[i]=y[foldx[j]]

j+=144

return np.array(foldx),np.array(foldy)

def cv(X,y,model):

trainx,trainy=partitions(X,y)

scores=[]

for i in range(0,10):

xtest=trainx[i]

ytest=trainy[xtest]

xtrain=trainx[:i]+trainx[i+1:]

ytrain=trainy[xtrain]

model.fit(xtrain,ytrain)

preds=model.predict(xtest)

print(accuracy_score(np.ravel(ytest),preds))

scores.append(accuracy_score(np.ravel(ytest),preds))

return scores.mean()

错误出现在

foldx[i]=X[j:j+143,:]

上面写着

索引器错误:列表分配索引超出范围。

我该如何纠正?我没有从零开始解决这些问题的经验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值