Python 如何将数据集拆分为训练集和验证集,并保持类之间的比率?
我有一个多类分类问题,我的数据集是倾斜的,我有100个特定类的实例,比如说10个不同类的实例,所以我想在类之间划分数据集的保留率,如果我有100个特定类的实例,并且我希望培训集中有30%的记录,那么我希望有30个代表100个记录的类的实例和3个代表10个记录的类的实例,依此类推。您可以从在线文档中使用sklearn: 分层K-折叠交叉验证迭代器 提供列车/测试 用于在列车测试集中分割数据的索引 此交叉验证对象 是KFold的一种变体,返回分层褶皱。褶皱是 通过保留每个类别的样本百分比来制作 这将保留您的类比率,以便拆分保留类比率,这将与dfs配合使用 根据@Ali_m的建议,您可以使用接受分割比率参数的:Python 如何将数据集拆分为训练集和验证集,并保持类之间的比率?,python,numpy,pandas,machine-learning,scikit-learn,Python,Numpy,Pandas,Machine Learning,Scikit Learn,我有一个多类分类问题,我的数据集是倾斜的,我有100个特定类的实例,比如说10个不同类的实例,所以我想在类之间划分数据集的保留率,如果我有100个特定类的实例,并且我希望培训集中有30%的记录,那么我希望有30个代表100个记录的类的实例和3个代表10个记录的类的实例,依此类推。您可以从在线文档中使用sklearn: 分层K-折叠交叉验证迭代器 提供列车/测试 用于在列车测试集中分割数据的索引 此交叉验证对象 是KFold的一种变体,返回分层褶皱。褶皱是 通过保留每个类别的样本百分比来制作 这将
sss=StratifiedShuffleSplit(y,3,测试大小=0.7,随机状态=0)
将产生70%的分割。简单到:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y,
stratify=y,
test_size=0.25)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y,
stratify=y,
test_size=0.25)