保留一个使用sklearn进行交叉验证(多个CSV)

时间:2018-04-22 01:17:31

标签: python machine-learning scikit-learn cross-validation

我在一个文件夹中有52个CSV文件。我想基于这些数据构建一个模型。这就是我想要做的原因让一个人对这些数据进行交叉验证。如何在python中使用sci-kit学习呢?

我尝试了sci kit文件并搜索了很多资源。但我没有找到解决方案。我试过这段代码。

import glob
import numpy as np
import pandas as pd
from sklearn.cross_validation import LeaveOneOut
path=r'...................\Data\New design process data'
filelist=glob.glob(path + "/*.csv")
loo=LeaveOneOut()
for train,test in loo.split(filelist):
   print("%s %s" % (train, test))

但它显示错误。

init ()缺少1个必需的位置参数:'n'

我是python的新手以及sci-kit学习。如果有人可以帮助我,那将是一个很大的便利。

1 个答案:

答案 0 :(得分:0)

您应该使用较新版本的模块,该模块位于sklearn.model_selection而不是sklearn.cross_validation。 (cross_validation模块在​​0.18中被删除。)使用此版本,您可以在没有位置参数的情况下实例化类,并且当您尝试调用split时它也不会失败。

from sklearn.model_selection import LeaveOneOut

X = np.array([[1, 2], [3, 4]])
y = np.array([1, 2])
loo = LeaveOneOut()  # works without passing an argument
loo.get_n_splits(X)  # returns 2