我正在尝试通过处理心电图信号来构建一个1D CNN模型,以诊断睡眠呼吸暂停。
我使用了sklearn库,并在train_test_split
中遇到了错误。以下是我的代码:
# 加载文件with open("ApneaData.csv") as csvDataFile: csvReader = csv.reader(csvDataFile) for line in csvReader: lis.append(line[0].split()) # 创建一个列表的列表# 制作所有x变量的列表for i in range(1, len(lis)): data.append(list(map(int, lis[i])))# 所有y变量的列表(0或1)target = Extract(data) # 是否为睡眠呼吸暂停# 转换为numpy数组data = np.array(data)target = np.array(target)# 将数据堆叠成3Dloaded = dstack(data)change = dstack(target)trainX, testX, trainy, testy = train_test_split(loaded, change, test_size=0.3)
我得到了以下错误:
With n_samples=1, test_size=0.3 and train_size=None, the resulting train set will be empty. Adjust any of the aforementioned parameters.
我不知道自己做错了什么?任何帮助将不胜感激。
回答:
可能是sklearn将你的数据理解为1xN矩阵,并认为它是一个样本具有N个特征。因此,你需要转置它以获得Nx1。
这是sklearn函数的典型情况,不仅是train_split,还有fit-transform。