python 分层测试集训练集
时间: 2023-05-23 09:06:16 浏览: 89
python 划分数据集为训练集和测试集的方法
可以使用sklearn库中的train_test_split方法来将数据集分割成训练集和测试集。
```python
from sklearn.model_selection import train_test_split
# X是样本特征矩阵,y是样本标签向量
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
其中,test_size表示测试集所占比例,random_state表示随机种子,保证每次运行结果一致。
如果数据集有多层结构,可以按照需要进行分层抽样,例如按照标签分层、按照数据集来源分层等。可以使用StratifiedShuffleSplit方法来实现分层抽样,并指定每层所占比例。
```python
from sklearn.model_selection import StratifiedShuffleSplit
# X是样本特征矩阵,y是样本标签向量
split = StratifiedShuffleSplit(n_splits=1, test_size=0.2, random_state=42)
for train_index, test_index in split.split(X, y):
X_train = X[train_index]
y_train = y[train_index]
X_test = X[test_index]
y_test = y[test_index]
```
以上代码实现了按照样本标签进行分层抽样,保证训练集和测试集中各类样本的比例相同。
阅读全文