我在使用scikit-learn的train_test_split()
函数时遇到了stratify
参数的问题。以下是一个虚拟例子,与我的数据上随机出现的相同问题:
from sklearn.model_selection import train_test_split
a = [1, 0, 0, 0, 0, 0, 0, 1]
train_test_split(a, stratify=a, random_state=42)
这将返回:
[[1, 0, 0, 0, 0, 1], [0, 0]]
在测试子集中,它不应该也选择一个“1”吗?从我对train_test_split()
与stratify
的期望来看,它应该返回类似于以下内容:
[[1, 0, 0, 0, 0, 0], [0, 1]]
有些random_state
的值会导致这种情况发生,而其他值则可以正常工作。但是每次分析数据时,我不能搜索“正确”的值。
我的python版本是2.7,scikit-learn版本是0.18。
stratify=np.unique(a)
会怎样呢? - MMF