将数据集随机分为训练集和测试集和验证集的代码,这三个集合不相交
时间: 2024-03-01 19:50:01 浏览: 67
以下是使用Python的scikit-learn库将数据集随机分为不相交的训练集、测试集和验证集的示例代码:
```python
from sklearn.model_selection import train_test_split
# 加载数据集
X, y = load_dataset()
# 将数据集随机分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 将训练集随机分为训练集和验证集
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.2, random_state=42)
# 输出训练集、验证集和测试集的大小
print('Training set size: ', X_train.shape)
print('Validation set size: ', X_val.shape)
print('Test set size: ', X_test.shape)
# 确保训练集、验证集和测试集不相交
assert len(set(X_train.index) & set(X_val.index)) == 0
assert len(set(X_train.index) & set(X_test.index)) == 0
assert len(set(X_val.index) & set(X_test.index)) == 0
```
与上一个示例代码相比,这里增加了几行代码,用于确保训练集、验证集和测试集的索引(或标识符)不重复。使用Python的集合(set)数据类型,可以检查不同数据集的索引是否相交。如果有重复的索引,则会引发异常,提示训练集、验证集和测试集不是不相交的。
阅读全文