机器学习-第三章 线性模型

作者:weixin_42963026日期:9/30/2025

3.1 线性模型

例题3.1

1import numpy as np
2import pandas as pd
3import matplotlib.pyplot as plt
4from sklearn.linear_model import LinearRegression
5from sklearn.metrics import r2_score
6# -------------------------- 新增:解决中文字体问题 --------------------------
7plt.rcParams["font.sans-serif"] = ["Microsoft YaHei"]  # 使用系统自带的微软雅黑字体
8plt.rcParams["axes.unicode_minus"] = False  # 避免负号显示为方块
9# 1. 准备数据(月广告费和月销售量,单位:万元)
10# 月广告费数据
11advertising = np.array([10.95, 12.14, 13.22, 13.87, 15.06, 16.30, 17.01, 17.93, 19.01, 20.01,
12                        21.04, 22.10, 23.17, 24.07, 25.00, 25.95, 27.10, 28.01, 29.06, 30.05])
13# 月销售量数据
14sales = np.array([11.18, 10.43, 12.36, 14.15, 15.73, 16.40, 18.86, 16.13, 18.21, 18.37,
15                  22.61, 19.83, 22.67, 22.70, 25.16, 25.55, 28.21, 28.12, 28.32, 29.18])
16
17# 转换为二维数组(sklearn要求输入为[样本数, 特征数]格式)
18X = advertising.reshape(-1, 1)  # 自变量:月广告费
19y = sales.reshape(-1, 1)        # 因变量:月销售量
20
21# 2. 训练线性回归模型
22model = LinearRegression()
23model.fit(X, y)  # 拟合模型
24
25# 3. 获取模型参数
26a = model.coef_[0][0]  # 斜率(权重)
27b = model.intercept_[0]  # 截距
28y_pred = model.predict(X)  # 预测值
29r2 = r2_score(y, y_pred)  # 决定系数R²
30
31# 4. 输出结果分析
32print(f"线性回归方程:y = {a:.3f}x + {b:.3f}")
33print(f"决定系数R²:{r2:.4f}(越接近1,拟合效果越好)")
34print("\n模型解读:")
35print(f"- 斜率{a:.3f}表示:月广告费每增加1万元,月销售量平均增加{a:.3f}万元")
36print(f"- 截距{b:.3f}表示:当广告费为0时,销售量的基准值约为{b:.3f}万元")
37
38# 5. 可视化拟合结果
39plt.figure(figsize=(10, 6))
40# 绘制原始数据点
41plt.scatter(X, y, color='blue', label='原始数据', alpha=0.7)
42# 绘制回归直线
43plt.plot(X, y_pred, color='red', linewidth=2, label=f'回归直线: y={a:.3f}x+{b:.3f}')
44# 添加标签和标题
45plt.xlabel('月广告费(万元)', fontsize=12)
46plt.ylabel('月销售量(万元)', fontsize=12)
47plt.title('月广告费与月销售量的线性回归分析', fontsize=14)
48plt.grid(alpha=0.3)
49plt.legend(fontsize=12)
50plt.show()

线性回归方程:y = 0.994x + -0.220
决定系数R²:0.9642(越接近1,拟合效果越好)

模型解读:
- 斜率0.994表示:月广告费每增加1万元,月销售量平均增加0.994万元
- 截距-0.220表示:当广告费为0时,销售量的基准值约为-0.220万元


机器学习-第三章 线性模型》 是转载文章,点击查看原文


相关推荐


【C语言】计算两个整数二进制表示中不同位的个数
无限进步_9/30/2025

本文分析了一种计算两个整数二进制表示中不同位数量的方法。原始代码虽然直观易懂,但在效率和可移植性方面有改进空间。通过使用异或操作和高效计算1的个数的方法,我们可以显著提高代码的性能。在实际编程中,我们应该根据具体需求选择合适的方法。如果代码可读性是首要考虑,原始方法是不错的选择;如果性能是关键因素,优化方案更为合适。理解位操作和二进制表示是计算机科学的基础,掌握这些技巧对于成为高效的程序员至关重要。希望本文能帮助你更好地理解二进制比较的概念和实现方法。


分布式专题——24 Kafka功能扩展
失散1310/2/2025

Kafka 性能压测、搭建 Kafka 监控平台 EFAK、Kraft 集群、Kafka 与流式计算


​​FeedMe (RSS阅读器) 信息聚合/阅读体验优化​​
2501_935689192025/10/2

获取地址:​​FeedMe (RSS阅读器) FeedMe 是一款设计简洁、体验流畅的RSS阅读器应用,支持多平台使用。该应用提供智能分类、关键词过滤、离线下载等核心功能,并具备文章朗读、稍后阅读等增强特性。其清爽的阅读界面与手势操作设计,让用户能够高效获取并管理订阅的资讯内容


榨干每一滴算力:ONNX Runtime 多维优化实战指南
Cosolar2025/10/2

在当今人工智能应用快速落地的背景下,模型部署的效率和稳定性已成为决定产品成败的关键因素之一。ONNX(Open Neural Network Exchange)作为一种开放的模型交换格式,配合 ONNX Runtime(ORT)推理引擎,已成为工业界广泛采用的模型部署方案。然而,仅仅将模型转换为 ONNX 格式并不足以获得最佳性能。真正高效的推理部署,需要从模型优化、推理引擎配置、硬件加速和系统集成等多个维度协同发力。本文将结合实际经验,深入探讨如何通过 ONNX Runtime 实现模型部署的


【网络编程】深入 HTTP:从报文交互到服务构建,洞悉核心机制
半桔2025/10/3

半桔:个人主页  🔥 个人专栏: 《Linux手册》《手撕面试算法》《网络编程》 🔖有些鸟儿注定是不会被关在牢笼里的,因为它们的每一片羽毛都闪耀着自由的光辉。 文章目录 一. 前言二. 基础知识2.1 URL 三. 请求报文四. 响应报文五. 实现HTTP服务器六. HTTP的细节字段6.1 请求方法6.2 状态码6.3 常见的报头6.4 Cookie和Session ID 一. 前言 在如今的数字时代,我们每天打开浏览器浏览新闻、刷社交媒


Claude 4.5 升级解析:很强,但请别跳过“Imagine”
飞哥数智谈2025/10/4

9月30号,Anthropic 发布了 Claude 4.5。 因为最近一直在尝试 Claude Code 的各种场景,所以先尝试了 Claude Code 2.0,今天才有空完整地了解下 Claude 4.5 这次升级。 尤其是预览的“Imagine with Claude”,强烈建议了解下。 升级内容 模型核心能力 先通过评测标准的得分直观了解下升级的程度。 各方面均有所提升,但其实没有这个分数,大家估计对 Claude 的能力也没什么怀疑的。 毕竟,最佳的通用 AI 可能还会有一点点争议


【Linux CentOS 7 版本更换yum源】
zhaotiannuo_19982025/10/5

Linux CentOS 7 版本更换yum源 1、备份文件 cd /etc/yum.repos.d/ mkdir backup mv /etc/yum.repos.d/Cen* backup 2、下载文件 http://mirrors.aliyun.com/repo/Centos-7.repo 3、通过xftp 文件传输工具传输到/etc/yum.repos.d/目录下 4、清理软件源,建立缓存 yum clean all yum makecache 5、检查是否更新成功 yum repo


Python 的内置函数 bool
IMPYLH2025/10/6

Python 内建函数列表 > Python 的内置函数 bool 在编程中,我们经常需要判断某个值是“真”(True)还是“假”(False),而 bool() 函数就是 Python 提供的用于进行布尔值转换的强大工具。无论是数字、字符串、列表,还是自定义对象,bool() 都能帮助我们快速评估它们的真假状态。 bool 是一个类,它的参数如下: class bool(x=False): ''' 类型转换为 bool :param x: 一个变量 :r


Redis Zset 类型全解析
gsfl2025/10/8

文章目录 1.引言2.Zset 类型的核心特性与 Set、List 的关键差异 3.Zset 类型核心命令3.1 元素添加与基础查询:zadd、zrangezaddzrange 3.2 元素计数:zcard、zcountzcardzcount 3.3 排序与排名查询:zrevrange、zrangebyscore、zrank、zrevrank、zscorezrevrangezrangebyscorezrankzrevrankzscore 3.4 元素删除:zpopmax、


1688 店铺商品全量采集与智能分析:从接口调用到供应链数据挖掘
一人の梅雨2025/10/9

一、技术定位与商业价值重构 1688 店铺商品接口(alibaba.item.list.get)作为获取店铺全量商品数据的核心入口,其价值远不止于简单的数据采集。与常规实现不同,本文方案聚焦B 端供应链数据的深度挖掘,通过商品结构化解析、价格策略分析、供应链能力评估三大维度,解决批发商关注的 "店铺品类布局"" 批量采购议价空间 ""供应商履约能力" 等核心问题,构建从数据采集到商业决策的完整技术链路。 区别于网络上常见的基础调用示例,本方案实现三大突破: 支持全量商品智能分页(突破单页限

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0