机器学习出现过拟合情况,帮我写一段早停法的python代码
时间: 2024-11-15 19:25:25 浏览: 3
python机器学习理论与实战(一)K近邻法
机器学习中遇到过拟合时,早停法(Early Stopping)是一种常用的正则化策略,它通过监控验证集的表现,在模型性能开始下降之前停止训练,防止过度拟合。下面是一个简单的Python代码示例,使用scikit-learn库实现早停法:
```python
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from math import sqrt
# 假设我们有一个数据集X和y
X = ... # 输入特征
y = ... # 输出目标变量
# 划分训练集和验证集
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, shuffle=True)
# 创建并初始化模型
model = LinearRegression()
# 设置最大迭代次数和最小改进阈值
max_iter = 100
tol_improvement = 0.001
best_val_score = float('inf')
current_best_val_score = best_val_score
for epoch in range(max_iter):
# 训练模型
model.fit(X_train, y_train)
# 预测并计算验证集误差
val_predictions = model.predict(X_val)
val_score = sqrt(mean_squared_error(y_val, val_predictions))
# 检查是否达到早期停止条件
if abs(val_score - current_best_val_score) < tol_improvement:
break
# 更新最佳验证集得分
current_best_val_score = val_score
# 最终得到的模型即为经过早停优化的模型
```
阅读全文