【第二章:机器学习与神经网络概述】04.回归算法理论与实践 -(4)模型评价与调整(Model Evaluation & Tuning)

第二章: 机器学习与神经网络概述

第四部分:回归算法理论与实践

第四节:模型评价与调整

内容:MSE、MAE、R-squared等指标,交叉验证与模型调参。

机器学习中的回归任务需要定量地评价模型性能,并通过系统性的调整手段优化模型表现。本节涵盖最常用的评价指标与调参方法。


一、常见回归性能指标

指标名称 描述 公式 说明
MSE 均方误差 Mean Squared Error 对异常值敏感
RMSE 均方根误差 Root MSE 与原始单位一致
MAE 平均绝对误差 Mean Absolute Error
决定系数 R-squared 表示模型解释方差的能力,越接近1越好

选择指标时应结合任务特点和数据分布。

例如:对异常值敏感任务应避免仅使用 MSE。

【机器学习】均方误差(MSE:Mean Squared Error)-CSDN博客

【机器学习】均方误差根(RMSE:Root Mean Squared Error)-CSDN博客

【机器学习】平均绝对误差(MAE:Mean Absolute Error)-CSDN博客

【机器学习】决定系数(R²:Coefficient of Determination)-CSDN博客


二、Python 示例代码(指标计算)

python 复制代码
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

# 真实值与预测值
y_true = [3.0, -0.5, 2.0, 7.0]
y_pred = [2.5, 0.0, 2.1, 7.8]

mse = mean_squared_error(y_true, y_pred)
mae = mean_absolute_error(y_true, y_pred)
r2 = r2_score(y_true, y_pred)

print(f"MSE: {mse:.3f}, MAE: {mae:.3f}, R^2: {r2:.3f}")

运行结果

python 复制代码
MSE: 0.287, MAE: 0.475, R^2: 0.961

三、交叉验证(Cross Validation)

交叉验证是模型调优中非常关键的过程,用于减少训练测试划分带来的偶然性。

1. K折交叉验证(K-Fold)

【漫话机器学习系列】268. K 折交叉验证(K-Fold Cross-Validation)_k折交叉验证-CSDN博客

  • 将数据划分为K份,轮流使用其中一份做验证,其余做训练。

  • 常见 K 值为 5 或 10。

python 复制代码
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression

X, y = make_regression(n_samples=100, n_features=2, noise=0.1)
model = LinearRegression()
scores = cross_val_score(model, X, y, cv=5, scoring='r2')
print("R2 average:", scores.mean())

运行结果

python 复制代码
R2 average: 0.9999984312849461
2. 留一交叉验证(LOOCV)

适合样本极少的场景,每次只留一个样本做测试。


四、模型调参方法(超参数优化)

1. 手动调参(grid试错)

适用于参数少、模型轻量情况。

2. 网格搜索(GridSearchCV)

【漫话机器学习系列】068.网格搜索(GridSearch)-CSDN博客

python 复制代码
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import make_regression

X, y = make_regression(n_samples=100, n_features=2, noise=0.1)
param_grid = {
    'n_estimators': [50, 100],
    'max_depth': [3, 5, None]
}

grid = GridSearchCV(RandomForestRegressor(), param_grid, cv=3, scoring='r2')
grid.fit(X, y)
print("Best Params:", grid.best_params_)

运行结果

python 复制代码
Best Params: {'max_depth': None, 'n_estimators': 50}
3. 随机搜索(RandomizedSearchCV)

【漫话机器学习系列】137.随机搜索(Randomized Search)-CSDN博客

在参数空间中随机采样,效率更高,适合大规模调参。


总结

分类 方法/指标 作用
性能评估 MSE、MAE、R2R^2 判断回归模型拟合效果
模型稳定性 K折交叉验证、LOOCV 检测过拟合、评估泛化能力
参数调整 GridSearchCV、RandomCV 寻找最优模型超参数

拓展内容

【漫话机器学习系列】174.模型选择(Model Selection)_模型池-CSDN博客

相关推荐
青云交6 小时前
Java 大视界 -- Java 大数据在智能农业温室环境调控与作物生长模型构建中的应用
java·机器学习·传感器技术·数据处理·作物生长模型·智能农业·温室环境调控
浣熊-论文指导6 小时前
聚类与Transformer融合的六大创新方向
论文阅读·深度学习·机器学习·transformer·聚类
却道天凉_好个秋9 小时前
卷积神经网络CNN(六):卷积、归一化与ReLU总结
人工智能·神经网络·cnn
B站_计算机毕业设计之家10 小时前
预测算法:股票数据分析预测系统 股票预测 股价预测 Arima预测算法(时间序列预测算法) Flask 框架 大数据(源码)✅
python·算法·机器学习·数据分析·flask·股票·预测
GG向前冲10 小时前
【大数据】Spark MLlib 机器学习流水线搭建
大数据·机器学习·spark-ml
深蓝岛10 小时前
目标检测核心技术突破:六大前沿方向
论文阅读·人工智能·深度学习·计算机网络·机器学习
晚霞apple11 小时前
特征融合与目标检测的六大创新方向
论文阅读·人工智能·深度学习·神经网络·机器学习
Theodore_102211 小时前
神经学习(4)神经网络的向量化实现与TensorFlow训练流程
人工智能·深度学习·机器学习·计算机视觉·线性回归
B站计算机毕业设计之家12 小时前
计算机视觉:python手写数字识别系统 手写数字检测 CNN算法 卷积神经网络 OpenCV和Keras模型 大数据毕业设计(建议收藏)✅
python·神经网络·opencv·计算机视觉·cnn·手写数字·数字识别
犽戾武12 小时前
1. 简单回顾Numpy神经网络
人工智能·神经网络·numpy