需要多标签分层kfold的帮助

Posted

技术标签:

【中文标题】需要多标签分层kfold的帮助【英文标题】:need help for stratifiedkfold with multilabels 【发布时间】:2022-01-22 10:25:57 【问题描述】:

我想使用基因组数据预测生存。我的标签(y)存在于两列中,“vital_status”和“time”。第一个是二进制的,第二个是连续的。我想使用 10 折交叉验证,但数据分布需要在每个列中正确fold。我知道我应该为此使用 stratifiedkfold,但是如何转换两列以便我可以使用它?

我在某个可以使用 to_categorical 的地方阅读,但这给了我一个 3d 数组。我不认为这是正确的..

from tensorflow.keras.utils import to_categorical
y_train_categorical = to_categorical(y)

skf = StratifiedKFold(n_splits=10)
for fold, (traincv, testcv) in enumerate(skf.split(x, y)):

还有其他人知道该怎么做吗? 谢谢

【问题讨论】:

【参考方案1】:

我建议将时间变量拆分为小时/天/周/月(取决于哪个更重要)列。这样,您的 kfold 分层将最有意义,并且您可能会在不同的折叠中获得最稳定的结果。

【讨论】:

以上是关于需要多标签分层kfold的帮助的主要内容,如果未能解决你的问题,请参考以下文章

使用 Sklearn 进行多标签文本分类

大型数据集的多标签分类

如何使woocommerce产品标签分层?

ML-10多分类及多标签分类算法

多标签分类及多输出分类

为多标签文本分类转换数据集