深入理解线性回归模型的评估与优化方法

文章目录

  • 🍀引言
  • 🍀模型评估方法
  • 🍀均方误差(MSE)
  • 🍀均方根误差(RMSE)
  • 🍀绝对平均误差(MAE)
  • 🍀模型优化策略
    • 🍀特征工程
    • 🍀正则化
    • 🍀数据标准化
  • 🍀代码演示
  • 🍀疑问?

🍀引言

线性回归是机器学习领域中最基础的模型之一,它在许多实际问题中都具有广泛的应用。然而,在使用线性回归模型时,仅仅构建模型是不够的,还需要对模型进行评估和优化,以确保其在实际应用中表现出色。本篇博客将深入探讨线性回归模型的评估与优化方法,同时使用Python进行实际演示。


🍀模型评估方法

模型评估是了解模型性能的关键步骤,它帮助我们了解模型在新数据上的表现。在线性回归中,常用的评估指标包括均方误差(Mean Squared Error,MSE)、均方根误差(Root Mean Squared Error,RMSE)等。

本文主要介绍三种评估方法,除此之外介绍一些其他的概念,最后上代码


🍀均方误差(MSE)

均方误差是预测值与真实值之间差异的平方的平均值。数学公式如下:

M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2

其中, n n n 是样本数量, y i y_i yi 是真实值, y ^ i \hat{y}_i y^i 是模型预测值。


🍀均方根误差(RMSE)

均方根误差是均方误差的平方根,它具有与原始数据相同的单位。计算公式如下:

R M S E = M S E RMSE = \sqrt{MSE} RMSE=MSE

🍀绝对平均误差(MAE)

M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1i=1nyiy^i

其中, n n n 是样本数量, y i y_i yi 是真实值, y ^ i \hat{y}_i y^i 是模型预测值。

相比于MSE,MAE对异常值更加稳健,因为它使用了绝对值。在某些应用场景中,更关注预测值与真实值的绝对差异可能更为合适。

本文主要介绍以上三个评估方法,读者若感兴趣还可以自行查阅

🍀模型优化策略

线性回归模型的性能可能因为多种原因而不佳,因此优化策略变得至关重要。以下是一些常见的优化策略:

🍀特征工程

特征工程是提高模型性能的关键步骤。通过添加、删除、组合特征,以及进行数据转换,我们可以为模型提供更多有用的信息。例如,在房价预测问题中,除了房屋面积,考虑到房间数量、地理位置等特征可能会提升模型表现。

🍀正则化

正则化是防止模型过拟合的一种方法。岭回归(Ridge Regression)和Lasso回归(Lasso Regression)是常用的正则化技术,它们通过对模型参数的大小进行惩罚来控制模型的复杂度。

🍀数据标准化

将特征数据进行标准化可以确保不同特征的尺度一致,有助于模型的训练过程。标准化可以消除特征之间的量纲影响,提高模型的稳定性和收敛速度。

🍀代码演示

from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as pltx = np.array([1,2,3,4,5])
y = np.array([1,3,2,3,5])lin_reg = LinearRegression()
lin_reg.fit(x.reshape(-1,1),y)
lin_reg.score(x.reshape(-1,1),y)

运行结果如下
在这里插入图片描述

# 均方误差
def MSE(y_true,y_predict):return np.sum((y_true-y_predict)**2)/len(y_true)

运行结果如下
在这里插入图片描述

# 均根方误差
from math import sqrt
def RMSE(y_true,y_predict):return sqrt(np.sum((y_true-y_predict)**2)/len(y_true))

运行结果如下
在这里插入图片描述

# 绝对平均误差
def MAE(y_true,y_predict):return np.sum(np.absolute(y_true-y_predict))/len(y_true)

运行结果如下
在这里插入图片描述

🍀疑问?

这时会有小伙伴产生疑问,评估数值越大越好还是越小越好呢?

对于大部分模型评估指标来说,确实是越大越好,因为这意味着模型在预测上更准确、更接近真实值。然而,要根据具体的评估指标和任务类型来判断。

  • 均方误差(MSE) 和 均方根误差(RMSE):对于这两个指标,数值越小越好,因为它们衡量了模型预测值与真实值之间的差异,越小表示模型的预测越接近真实值。

  • 绝对平均误差(MAE):同样地,MAE数值越小越好,因为它衡量了平均绝对差异,即预测值与真实值之间的绝对距离。

  • 决定系数(R-squared):在决定系数中,数值越接近1越好,因为它表示模型对因变量变化的解释能力,越接近1表示模型能够更好地解释数据的变化。

总体而言,当我们评估模型时,我们通常希望评估指标的数值越小越好(如MSE、RMSE、MAE),或者越大越好(如R-squared)。然而,在某些情况下,具体的任务和问题背景可能会影响哪个方向更适合。例如,如果我们更关注异常值,可能会更倾向于使用MAE,因为它不会受到异常值的影响。在选择评估指标时,务必要结合问题的实际情况来进行判断。

请添加图片描述

挑战与创造都是很痛苦的,但是很充实。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/52562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电商数据采集和数据分析

不管是做渠道价格的治理,还是做窜货、假货的打击,都需要品牌对线上数据尽数掌握,准确的数据是驱动服务的关键,所以做好电商数据的采集和分析非常重要。 当线上链接较多,品牌又需要监测线上数据时,单靠人工肯…

P14-CVPR2022-1.0-RepLKNet31

论文地址:https://arxiv.org/abs/2203.06717 代码地址:GitHub - MegEngine/RepLKNet: Official MegEngine implementation of RepLKNet ‘ 目录 Abstract 一.Introduction 二.Related Work 2.1Model with Large Kernels 2.2Model Scaling Techniques 2.3Structural Re-…

基于数据湖的多流拼接方案-HUDI概念篇

目录 一、为什么需要HUDI? 1. 传统技术选型存在哪些问题? 2. Hudi有什么优点? 基于 Hudi Payload 机制的多流拼接方案: 二、HUDI的应用场景 1. 什么场景适合使用hudi? 2. 什么场景不适合使用hudi? …

数据分析案例-汽车客户信息数据可视化分析(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

用加持了大模型的 Byzer-Notebook 做数据分析是什么体验

Byzer-Notebook 是专门为 SQL 而研发的一款 Web Notebook。他的第一公民是 SQL,而 Jupyter 则是是以 Python 为第一公民的。 随着 Byzer 引擎对大模型能力的支持日渐完善, Byzer-Notebook 也在不自觉中变得更加强大。我和小伙伴在聊天的过程中才发现他已…

Android 12 源码分析 —— 应用层 二(SystemUI大体组织和启动过程)

Android 12 源码分析 —— 应用层 二(SystemUI大体组织和启动过程) 在前一篇文章中,我们介绍了SystemUI怎么使用IDE进行编辑和调试。这是分析SystemUI的最基础,希望读者能尽量掌握。 本篇文章,将会介绍SystemUI的大概…

职业技术培训内容介绍

泰迪职业技术培训包括:Python技术应用、大数据技术应用、机器学习、大数据分析 、人工智能技术应用。 职业技术培训-Python技术应用 “Python技术应用工程师”职业技术认证是由工业和信息化部教育与考试中心推出一套专业化、科学化、系统化的人才考核标准&…

行业追踪,2023-08-24

自动复盘 2023-08-24 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

Hadoop分布式计算与资源调度:打开专业江湖的魔幻之门

文章目录 版权声明一 分布式计算概述1.1 分布式计算1.2 分布式(数据)计算模式1.3 小结 二 MapReduce概述2.1 分布式计算框架 - MapReduce2.2 MapReduce执行原理2.3 小结 三 YARN概述3.1 YARN & MapReduce3.2 资源调度3.3 程序的资源调度3.4 YARN的资…

Apache Hudi初探(二)(与flink的结合)--flink写hudi的操作(JobManager端的提交操作)

背景 在Apache Hudi初探(一)(与flink的结合)中,我们提到了Pipelines.hoodieStreamWrite 写hudi文件,这个操作真正写hudi是在Pipelines.hoodieStreamWrite方法下的transform(opName("stream_write", conf), TypeInformation.of(Object.class), operatorFa…

AI加持,创意设计效率百倍提升,探秘背后的数字化魔法

在当今创新潮流不断涌现的时代,人工智能正以惊人的速度和深度赋能各行各业,食品包装设计界也已来到了一个“拼创意、拼二创和拼审美”的时代。有了AI的加入,设计界正迎来一股AI创意风暴,不仅颠覆了设计流程,更为食品包…

全流程R语言Meta分析核心技术高阶应用

查看原文>>>全流程R语言Meta分析核心技术高阶应用 目录 专题一、Meta分析的选题与检索 专题二、Meta分析与R语言数据清洗及统计方法 专题三、R语言Meta分析与作图 专题四、R语言Meta回归分析 专题五、R语言Meta诊断分析 专题六、R语言Meta分析的不确定性 专题…

Linux centos7 bash编程小训练

训练要求: 求比一个数小的最大回文数 知识点: 一个数字正读反读都一样,我们称为回文数,如5、11、55、121、222等。 我们训练用bash编写一个小程序,由我们标准输入一个整数,计算机将显示出一个比这个数小…

最新ai系统ChatGPT程序源码+详细搭建教程+mj以图生图+Dall-E2绘画+支持GPT4+AI绘画+H5端+Prompt知识库

目录 一、前言 二、系统演示 三、功能模块 3.1 GPT模型提问 3.2 应用工作台 3.3 Midjourney专业绘画 3.4 mind思维导图 四、源码系统 4.1 前台演示站点 4.2 SparkAi源码下载 4.3 SparkAi系统文档 五、详细搭建教程 5.1 基础env环境配置 5.2 env.env文件配置 六、环境…

曲面(弧面、柱面)展平(拉直)瓶子标签识别ocr

瓶子或者柱面在做字符识别的时候由于变形,识别效果是很不好的 或者是检测瓶子表面缺陷的时候效果也没有展平的好 下面介绍两个项目,关于曲面(弧面、柱面)展平(拉直) 项目一:通过识别曲面的6个点…

《Go 语言第一课》课程学习笔记(十)

复合数据类型 同构复合类型:从定长数组到变长切片 由多个同构类型(相同类型)或异构类型(不同类型)的元素的值组合而成,这类数据类型在 Go 语言中被称为复合类型。 数组有哪些基本特性? Go 语…

用手势操控现实:OpenCV 音量控制与 AI 换脸技术解析

基于opencv的手势控制音量和ai换脸 HandTrackingModule.py import cv2 import mediapipe as mp import timeclass handDetector():def __init__(self, mode False, maxHands 2, model_complexity 1, detectionCon 0.5, trackCon 0.5):self.mode modeself.maxHands max…

PythonJS逆向解密——实现翻译软件+语音播报

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: python 3.8 pycharm 模块使用: requests --> pip install requests execjs --> pip install PyExecJS ttkbootstrap --> pip install ttkbootstrap pyttsx3 --> pip install pyttsx3 第三…

数据分享|R语言PCA主成分、lasso、岭回归降维分析近年来各国土地面积变化影响...

全文链接:http://tecdat.cn/?p31445 机器学习在环境监测领域的应用,着眼于探索全球范围内的环境演化规律,人类与自然生态之间的关系以及环境变化对人类生存的影响(点击文末“阅读原文”获取完整代码数据)。 课题着眼于…

事件捕获和事件冒泡

事件捕获和事件冒泡与事件流有关系。 以下代码&#xff0c;点击 aa &#xff0c;控制台会打印什么呢&#xff1f; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content&q…