十折交叉验证python代码
时间: 2023-07-22 16:06:17 浏览: 125
以下是一个使用 sklearn 库进行十折交叉验证的示例代码:
```python
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
# 准备数据和标签
X = ...
y = ...
# 创建模型
model = LogisticRegression()
# 创建十折交叉验证对象
kfold = KFold(n_splits=10, shuffle=True, random_state=42)
# 进行交叉验证并计算评估指标(如准确率)
scores = cross_val_score(model, X, y, cv=kfold, scoring='accuracy')
# 打印每折的准确率和平均准确率
for fold, score in enumerate(scores):
print(f"Fold {fold+1}: {score}")
print(f"Mean Accuracy: {scores.mean()}")
```
在这个示例中,首先准备好数据 `X` 和标签 `y`。然后创建一个 LogisticRegression 模型,并创建一个 KFold 对象来定义十折交叉验证的设置,其中 n_splits 参数表示划分为 10 折,shuffle 参数表示每次划分前是否打乱数据,random_state 设置随机种子以保证可复现性。
接下来,使用 `cross_val_score` 函数来进行交叉验证,其中 model 是要评估的模型对象,X 和 y 是数据和标签,cv 参数接收之前创建的 kfold 对象,scoring 参数指定了评估指标为准确率。
最后,遍历每一折的评估结果并打印出来,同时计算平均准确率。
你可以根据自己的数据和模型进行相应的修改和扩展。
阅读全文