当前位置: 首页 > news >正文

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

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

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

第四节:模型评价与调整

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

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


 一、常见回归性能指标

指标名称描述公式说明
MSE均方误差 Mean Squared Error\frac{1}{n} \sum_{i=1}^{n}(y_i - \hat{y}_i)^2对异常值敏感
RMSE均方根误差 Root MSE\sqrt{\text{MSE}}与原始单位一致
MAE平均绝对误差 Mean Absolute Error\frac{1}{n} \sum_{i=1}^{n}(y_i - \hat{y}_i)y_i - \hat{y}_i
R^2决定系数 R-squared1 - \frac{\sum(y_i - \hat{y}_i)^2}{\sum(y_i - \bar{y})^2}表示模型解释方差的能力,越接近1越好

选择指标时应结合任务特点和数据分布。
例如:对异常值敏感任务应避免仅使用 MSE。

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

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

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

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


二、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}")

运行结果

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。

from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regressionX, 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())

运行结果

R2 average: 0.9999984312849461
2. 留一交叉验证(LOOCV)

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


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

1. 手动调参(grid试错)

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

2. 网格搜索(GridSearchCV)

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

from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import make_regressionX, 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_)

运行结果

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博客 

http://www.lqws.cn/news/607213.html

相关文章:

  • 智慧赋能城市服务 ——特发服务构建高端综合服务生态圈
  • OpenLayers 入门指南【一】:WebGIS基础与OpenLayers概述
  • 飞算科技:以自主技术创新推动行业数字化升级
  • Linux 后台启动java jar 程序 nohup java -jar
  • 通俗理解JVM细节-面试篇
  • 自动化工具ansible,以及playbook剧本
  • OpenCV CUDA模块设备层-----高效地计算两个uint 类型值的平均值函数vavg2()
  • Notepad++ 复制宏、编辑宏的方法
  • 机器学习在智能能源管理中的应用:需求响应与可再生能源整合
  • 在Ubuntu上多网卡配置HTTP-HTTPS代理服务器
  • 基于SpringBoot和Leaflet的区域冲突可视化系统(2025企业级实战方案)
  • CAN从站转Modbus TCP主站总线协议转换网关
  • LeetCode 11.盛最多水的容器
  • 基于centOS9(redhat9)使用NGINX搭建discuz论坛
  • 深度解析Linux内核IPv4设备管理:net/ipv4/devinet.c
  • 创客匠人深度解构 IP 定位:从使命驱动到差异化落地的实践路径
  • 【RHCSA-Linux考试题目笔记(自用)】servera的题目
  • 云上配送革命:亚矩云手机如何重塑Uber Eats的全球外卖生态
  • vue中ref()和reactive()区别
  • 新手向:MySQL完全指南,从零开始掌握数据库操作
  • 洪水填充算法详解
  • 智能学号抽取系统 V3.7.5 —— 一个基于 Vue.js 的交互式网页应用
  • SpringCloud系列(46)--SpringCloud Bus实现动态刷新全局广播
  • Prompt Engineering Guide — 提示工程全方位指南
  • 博图SCL编程:数据隐式转换使用详解与实战案例
  • ABAP+记录一个BDC的BUG修改过程
  • moodle升级(4.5到5.0)
  • 数据结构学习之栈
  • 计算机视觉---视觉伺服控制
  • mac mini m4安装node.js@16以下版本方法