cross_val_score中每次分的训练集和测试集的代码
时间: 2024-05-09 20:15:25 浏览: 9
下面是一个示例代码,展示如何使用`cross_val_score`函数进行交叉验证,并将每个分数的训练集和测试集打印出来:
```python
from sklearn.model_selection import cross_val_score, KFold
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 创建模型
model = LogisticRegression()
# 创建交叉验证对象
cv = KFold(n_splits=5, shuffle=True, random_state=42)
# 进行交叉验证并打印每个分数的训练集和测试集
for i, (train_index, test_index) in enumerate(cv.split(X)):
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
score = cross_val_score(model, X_train, y_train, cv=3)
print("Fold:", i+1)
print("Train Index:", train_index)
print("Test Index:", test_index)
print("Train Shape:", X_train.shape)
print("Test Shape:", X_test.shape)
print("Train Labels:", y_train)
print("Test Labels:", y_test)
print("CV Score:", score)
print()
```
这个示例代码中,我们使用`KFold`函数创建了一个交叉验证对象,然后使用`cross_val_score`函数进行交叉验证,并将每个分数的训练集和测试集打印出来。在每个交叉验证的迭代中,我们使用`train_index`和`test_index`从原始数据集中获取训练集和测试集的索引,并使用这些索引从`X`和`y`中获取训练集和测试集的数据和标签。然后,我们使用这些数据和标签来训练模型,并使用`cross_val_score`函数计算交叉验证分数。最后,我们将训练集、测试集和交叉验证分数打印出来。