train_test_split应用与参数
时间: 2023-08-26 15:17:44 浏览: 114
`train_test_split` 是 scikit-learn 库中的一个函数,用于将数据集划分为训练集和测试集。它的常用参数如下:
- `test_size`:float 或 int,可选,指定测试集的大小。如果是 float 类型,表示测试集占总样本数的比例;如果是 int 类型,表示测试集的样本数量。默认为 0.25。
- `train_size`:float 或 int 或 None,选,指定训练集的大小。如果是 float 类型,表示训练集占总样本数的比例;如果是 int 类型,表示训练集的样本数量。如果不设置该参数,则默认为 1 - test_size。
- `random_state`:int 或 RandomState 实例或 None,可选,用于控制划分数据集时的随机性。如果指定一个整数,每次划分数据集时都会使用相同的随机种子,从而得到相同的结果。如果设置为 None,则每次划分数据集时都会使用不同的随机种子。默认为 None。
- `shuffle`:bool,可选,表示在划分数据集之前是否对数据进行洗牌。默认为 True。
- `stratify`:array-like 或 None,可选,用于分层抽样。如果指定了一个数组或标签序列,那么划分的训练集和测试集将保持每个类别的比例与原始数据集中相同。默认为 None。
示例代码如下:
```python
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
在这个示例中,我们使用 `load_iris` 函数加载了鸢尾花数据集,并将特征数据存储在 `X` 中,将目标标签存储在 `y` 中。然后,我们使用 `train_test_split` 函数将数据集划分为训练集和测试集,其中测试集占总样本数的 20%。设置了 `random_state=42`,以确保每次划分数据集时都使用相同的随机种子。
划分完成后,`X_train` 和 `y_train` 分别是训练集的特征和标签,`X_test` 和 `y_test` 分别是测试集的特征和标签。你可以根据自己的需要调整参数来控制训练集和测试集的大小和随机性。
阅读全文