4. 划分测试集和训练集:使用sklearn.model_selection库中的train_test_split函数将数据集划分为训练集和测试集,并按照类别标签比例进行分层抽样。
时间: 2024-09-23 15:14:07 浏览: 78
python 划分数据集为训练集和测试集的方法
在Python中,使用scikit-learn(sklearn)库进行机器学习任务时,常常需要将数据划分为训练集和测试集。`train_test_split` 函数可以帮助我们完成这个过程,特别是当我们需要考虑类别标签平衡时,可以使用`stratify` 参数进行分层抽样。
以下是一个例子:
```python
from sklearn.model_selection import train_test_split
import numpy as np
# 假设我们已经加载好数据,并已分离出 labels 和 values(如上所述)
labels = ... # 例如:['A', 'B', 'A', 'C', ...]
values = ... # 例如:[1, 2, 3, 4, ...]
# 确保 labels 和 values 的大小一致
assert len(labels) == len(values)
# 使用 stratify 参数,确保两类别的样本在训练集和测试集中分布均匀
X_train, X_test, y_train, y_test = train_test_split(values, labels, test_size=0.2, random_state=42, stratify=labels)
# 这里的X代表features(特征),y代表labels(类别标签)
```
在这个例子中,`test_size` 设置了测试集占总数据的比例,默认为0.25,即75%的数据用于训练,25%用于测试。`random_state` 是一个随机种子,保证每次运行的结果是一致的,如果设置为 None,则会生成随机结果。
阅读全文