我正在尝试实现虹膜数据集的分类算法(从Kaggle下载(。在"物种"列中,类别(刚毛鸢尾、杂色鸢尾、弗吉尼亚鸢尾(按顺序排列。如何使用Scikit Learn对训练和测试数据进行分层?
如果你想以0.3的测试比例对数据进行洗牌和拆分,你可以使用
sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, shuffle=True)
其中X是您的数据,y是相应的标签,testrongize是应保留用于测试的数据的百分比,shuffle=True在拆分之前对数据进行搅乱
为了确保数据按列平均分割,可以将其提供给分层参数。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,
shuffle=True,
stratify = X['YOUR_COLUMN_LABEL'])
为了确保这三个类在训练和测试中得到平等的表示,您可以使用train_testrongplit函数的layery参数。
from sklearn.model_selection import train_test_split
X_train, y_train, X_test, y_test = train_test_split(X, y, stratify = y)
这将确保所有类的比例保持相等。
使用sklearn.model_selection.train_testrongplit并使用Shuffle参数。
shuffle:布尔值,可选(默认值=True(是否在拆分前对数据进行混洗。如果shuffle=False,则分层必须为None。