python StratifiedKFold
时间: 2024-04-28 14:13:33 浏览: 24
StratifiedKFold是一个用于数据集交叉验证的方法,它可以确保每个折叠(fold)中各个类别的样本比例与整个数据集中的比例相同。这对于不平衡的数据集特别有用。
在Python中,可以使用sklearn.model_selection模块中的StratifiedKFold类来实现。
以下是一个示例代码:
```python
from sklearn.model_selection import StratifiedKFold
# 创建数据集和标签
X = ...
y = ...
# 创建StratifiedKFold对象
kf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
# 使用StratifiedKFold进行交叉验证
for train_index, test_index in kf.split(X, y):
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
# 在训练集上训练模型
model.fit(X_train, y_train)
# 在测试集上评估模型
score = model.score(X_test, y_test)
print("Accuracy:", score)
```
在上述示例中,我们将数据集X和对应的标签y传递给StratifiedKFold的split方法。然后,我们遍历生成的折叠(train_index和test_index),并根据这些索引将数据集划分为训练集和测试集。最后,我们使用训练集来训练模型,并使用测试集评估模型的性能。