我有一个数据集,可以以python dictionary 或 list 的形式传递给多输入神经网络:
示例:
~count.ex~1+offset(log(time.ex))+(1|study.ex)
现在,我想使用 K折交叉验证来估算模型的性能。您是否可以像此单输入示例一样使用#dict
{'input1': X1, 'input2': X2, 'input3': X3}, {'output': Y}
#list
[ X1, X2, X3], y
中的StratifiedKFold
?
sklearn
否则,最好的方法是什么?
答案 0 :(得分:2)
skf.split()返回索引,并且仅取决于Y:
for train_index, test_index in skf.split(X, y):
... print("TRAIN:", train_index, "TEST:", test_index)
... X_train, X_test = X[train_index], X[test_index]
... y_train, y_test = y[train_index], y[test_index]
因此,您可以在此处传递任何X数组(甚至将第1层的X1转换为数据框或合成X)。然后,拿走
train_index
和
test_index
并过滤所有输入。
同样,skf()仅取决于您的Y。因此,目标是传递适当的Y并获取索引。
另一种方式:将所有输入输入合并到一个数据帧中,并保留每一层的列名。在这种情况下,您有一个“大”X。首先将其拆分为train_index和test_index,然后使用上面保存的列名称拆分为X1,X2和X3。