我试图使用 scikit-learn 的 StratifiedShuffleSplit 来对我的数据集进行一次分割,同时保持类样本比例不变。
from sklearn.datasets import load_filesfrom sklearn.model_selection import StratifiedShuffleSplitdataset = load_files('reviews/aggregated/')split = StratifiedShuffleSplit(dataset.target, n_iter=1, test_size=0.2)train_idx, test_idx = next(iter(split))train_X, train_y = dataset.data[train_idx], dataset.target[train_idx]test_X, test_y = dataset.data[test_idx], dataset.target[test_idx]
这会导致以下错误:
TypeError: __init__() got multiple values for keyword argument 'n_iter'
但我显然只传递了一个值。StratifiedShuffleSplit 是否与数据集不兼容?文档中似乎没有答案
回答:
结果发现文档已经过时。查看文档字符串后,我发现正确的方法是:
sss = StratifiedShuffleSplit(n_iter=1, test_size=0.2)train_idx, test_idx = next(sss.split(dataset.data, dataset.target))