从csv文件中读取数据,由于样本量只有30,因此选择采用留一交叉验证方法,实验了一圈,发现一些问题在网上没有找到很好地解决办法,特记录如下,方便其他人使用。
主要代码如下:使用LeaveOneOut()将数据的索引分成测试和训练两部分,
注意:这里LeaveOneOut()返回的是数据的行索引,并不是数据本身,因此采用iloc方法根据索引读取到数据。
from sklearn.model_selection import LeaveOneOut
loo = LeaveOneOut()
for train_index, test_index in loo.split(data):#data为读取进来的csv文件数据
x_train = pd.DataFrame(data.iloc[train_index, 1:])
x_test = pd.DataFrame(data.iloc[test_index, 1:])
y_train = pd.DataFrame(data.iloc[train_index, 0:1])
y_test = pd.DataFrame(data.iloc[test_index, 0:1])