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

机器学习-线性回归模型

机器学习-线性回归模型

  • 线性模型笔记
    • 1、向量化
    • 2、线性回归模型公式
    • 3、损失函数(代价函数)
    • 4、梯度下降法
    • 5、Python 实现示例
  • 6、使用 sklearn 实现线性回归模型
      • ✅ 基本步骤如下:
      • 📦 示例代码:
    • 7、numpy中的切片
      • X[n,:]是取第1维中下标为n的元素的所有值
      • X[1,:]即取第一维中下标为1的元素的所有值
      • X[:,0]就是取所有行的第0个数据,
      • X[:,1] 就是取所有行的第1个数据
      • X[:, m:n],即取所有数据的第m到n-1列数据,含左不含右
    • 8、特征缩放(Feature Scaling)
      • ✅ 解决方法:标准化(Z-score Normalization)
    • 📦 sklearn 实现:
    • 8、使用面积和卧室数量的多项式回归
      • ✅ 目标:
      • 📦 代码实现:
      • 代码运行结果

线性模型笔记

文章使用的数据集:ex1data2.txt

1、向量化

在线性回归中,我们希望通过向量化来高效计算预测值:

传统公式(单个样本):

y ^ = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n \hat{y} = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \cdots + \theta_n x_n y^=θ0+θ1x1+θ2x2++θnxn

向量表示:

y ^ = θ T x \hat{y} = \theta^T x y^=θTx

通常我们在输入 x x x 中添加一个 x 0 = 1 x_0 = 1 x0=1,来统一表示偏置项。


2、线性回归模型公式

假设有 m m m 个样本、 n n n 个特征:

  • 特征矩阵: X ∈ R m × n X \in \mathbb{R}^{m \times n} XRm×n
  • 参数向量: θ ∈ R n × 1 \theta \in \mathbb{R}^{n \times 1} θRn×1
  • 标签向量: y ∈ R m × 1 y \in \mathbb{R}^{m \times 1} yRm×1

模型预测公式:

y ^ = X θ \hat{y} = X \theta y^=


3、损失函数(代价函数)

使用 均方误差(MSE) 作为损失函数:

J ( θ ) = 1 2 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (\hat{y}^{(i)} - y^{(i)})^2 J(θ)=2m1i=1m(y^(i)y(i))2

向量化表达式:

J ( θ ) = 1 2 m ( X θ − y ) T ( X θ − y ) J(\theta) = \frac{1}{2m} (X\theta - y)^T (X\theta - y) J(θ)=2m1(y)T(y)


4、梯度下降法

使用梯度下降法更新参数 θ \theta θ

θ : = θ − α ⋅ 1 m X T ( X θ − y ) \theta := \theta - \alpha \cdot \frac{1}{m} X^T (X\theta - y) θ:=θαm1XT(y)

其中:

  • α \alpha α 是学习率
  • X T X^T XT 是特征矩阵的转置
  • ( X θ − y ) (X\theta - y) (y) 是预测误差

5、Python 实现示例

import numpy as npdef computerCost(X,y,theta):inner=np.power(((X*theta.T)-y),2)return np.sum(inner)/(2*len(X))def gradientDescent(X, y, theta, alpha, iters):temp = np.matrix(np.zeros(theta.shape))parameters = int(theta.ravel().shape[1])cost = np.zeros(iters)for i in range(iters):error = (X * theta.T) - yfor j in range(parameters):term = np.multiply(error, X[:,j])temp[0,j] = theta[0,j] - ((alpha / len(X)) * np.sum(term))theta = tempcost[i] = computerCost(X, y, theta)return theta, cost

6、使用 sklearn 实现线性回归模型

scikit-learn 是 Python 中最常用的机器学习库,使用它可以非常方便地实现线性回归。

✅ 基本步骤如下:

  1. 导入模型类 LinearRegression
  2. 拆分特征和标签
  3. 拟合模型
  4. 查看参数 / 进行预测 / 评估模型

📦 示例代码:

假设有一个ex1data1.txt文件,里面包含了房屋的面积,卧室数

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# 解决plt中文乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文字体为黑体
plt.rcParams['axes.unicode_minus'] = False    # 正常显示负号
#加载数据
df=pd.read_csv("C:\\Users\\s1597\\Desktop\\Python\\Machine Learning\\Linear_regression\\ex1data2.txt")#分离特征和标签
X=df.iloc[:,0:2].values # 特征:前两列
y=df.iloc[:,2].values # 标签:第三列#df.iloc[:,0:2]表示取出前两列数据,df.iloc[:,2]表示取出第三列数据,
# iloc是pandas中用于按位置索引的函数,:表示取所有行,
# 0:2表示取第0列到第2列(不包括第2列),2表示取第2列数据#创建模型
model=LinearRegression()
model.fit(X,y)#输出模型参数
print("截距:", model.intercept_)
print("系数:", model.coef_)#进行预测
y_pred=model.predict(X)# 预测值与实际值对比散点图
plt.figure(figsize=(8, 6))
plt.scatter(y, y_pred, color='blue', label='预测 vs 实际')
plt.plot([y.min(), y.max()], [y.min(), y.max()], color='red', linestyle='--', label='理想预测线')
plt.xlabel('实际房价')
plt.ylabel('预测房价')
plt.title('线性回归预测效果对比图')
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()

7、numpy中的切片

X[n,:]是取第1维中下标为n的元素的所有值

X[1,:]即取第一维中下标为1的元素的所有值

X[:,0]就是取所有行的第0个数据,

X[:,1] 就是取所有行的第1个数据

X[:, m:n],即取所有数据的第m到n-1列数据,含左不含右

8、特征缩放(Feature Scaling)

在机器学习中,不同特征的数值范围差异过大(如面积 vs 卧室数量)时,容易导致模型训练缓慢或收敛不稳定。

✅ 解决方法:标准化(Z-score Normalization)

将所有特征缩放为均值为 0、标准差为 1 的数据:

x ′ = x − μ σ x' = \frac{x - \mu}{\sigma} x=σxμ

其中:

  • x x x 是原始值
  • μ \mu μ 是该特征的均值
  • σ \sigma σ 是该特征的标准差

📦 sklearn 实现:

from sklearn.preprocessing import StandardScaler# 初始化缩放器
scaler = StandardScaler()# 对特征进行缩放
X_scaled = scaler.fit_transform(X)# 使用缩放后的数据训练模型
model_scaled = LinearRegression()
model_scaled.fit(X_scaled, y)# 预测 & 评估
y_pred_scaled = model_scaled.predict(X_scaled)
print("缩放后 MSE:", mean_squared_error(y, y_pred_scaled))

8、使用面积和卧室数量的多项式回归

在本节中,我们将使用 房屋面积卧室数量 作为特征,构造一个 多项式回归模型,以捕捉更复杂的房价趋势。

✅ 目标:

  • 使用 房屋面积卧室数量 作为输入特征,构建一个多项式回归模型。
  • 使用 PolynomialFeatures 类来扩展特征,并加入更高次方的特征。

📦 代码实现:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler, PolynomialFeatures
from sklearn.linear_model import LinearRegression
# 解决plt中文乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文字体为黑体
plt.rcParams['axes.unicode_minus'] = False    # 正常显示负号
# 1. 加载数据集
data = np.loadtxt("C:\\Users\\s1597\\Desktop\\Python\\Machine Learning\\Linear_regression\\ex1data2.txt", delimiter=",")
X = data[:, 0:2]  # 面积和卧室数量
y = data[:, 2]    # 房价# 2. 特征缩放
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)# 3. 多项式特征构造(如:x1^2, x2^2, x1*x2)
poly = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly.fit_transform(X_scaled)# 4. 拟合线性回归模型
model = LinearRegression()
model.fit(X_poly, y)# 5. 预测房价
y_pred = model.predict(X_poly)# 6. 可视化:真实值 vs 预测值的三维图# 创建网格数据用于绘制预测的表面
x_range = np.linspace(X[:, 0].min(), X[:, 0].max(), 30)
y_range = np.linspace(X[:, 1].min(), X[:, 1].max(), 30)
x_grid, y_grid = np.meshgrid(x_range, y_range)# 转换网格数据为多项式特征
grid_points = np.column_stack([x_grid.ravel(), y_grid.ravel()])
grid_scaled = scaler.transform(grid_points)  # 缩放网格数据
grid_poly = poly.transform(grid_scaled)     # 转换为多项式特征# 使用模型对网格数据进行预测
z_grid = model.predict(grid_poly).reshape(x_grid.shape)# 绘制三维图
fig = plt.figure(figsize=(10, 7))
ax = fig.add_subplot(111, projection='3d')# 绘制实际数据点
ax.scatter(X[:, 0], X[:, 1], y, color='blue', label='实际数据')# 绘制预测表面
ax.plot_surface(x_grid, y_grid, z_grid, color='green', alpha=0.5, label='拟合曲面')# 设置轴标签
ax.set_xlabel('房屋面积 (平方英尺)')
ax.set_ylabel('卧室数量')
ax.set_zlabel('房价 ($)')
ax.set_title('多项式回归:面积、卧室数量 vs 房价')# 显示图例
ax.legend()# 显示图像
plt.tight_layout()
plt.show()

代码运行结果

在这里插入图片描述

相关文章:

机器学习-线性回归模型

机器学习-线性回归模型 线性模型笔记1、向量化2、线性回归模型公式3、损失函数(代价函数)4、梯度下降法5、Python 实现示例 6、使用 sklearn 实现线性回归模型✅ 基本步骤如下:📦 示例代码: 7、numpy中的切片X[n,:]是取…...

Linux 入门指令(1)

(1)ls指令 ls -l可以缩写成 ll 同时一个ls可以加多个后缀 比如 ll -at (2)pwd指令 (3)cd指令 cd .是当前目录 (4)touch指令 (5)mkdir指令 (6)rmdir和rm…...

密码学基础——AES算法

目录 一、算法背景 AES算法与Rijndael算法 二、算法特点 1.安全性高 2.效率高 3.灵活性好 三、算法说明 3.1状态、种子密钥和轮数的概念 (1)状态(State) 定义 结构:通常状态是一个 4N 字节的矩阵&#xff0…...

淘宝API与小程序深度联动:商品详情页“一键转卖”功能开发

要实现淘宝 API 与小程序深度联动,开发商品详情页 “一键转卖” 功能,可按以下步骤进行: 1. 前期准备 淘宝开放平台接入:在淘宝开放平台注册开发者账号,创建应用,获取 App Key 和 App Secret,…...

深入解析 C++ 设计模式:原理、实现与应用

一、引言 在 C 编程的广袤领域中,设计模式犹如闪耀的灯塔,为开发者指引着构建高效、可维护软件系统的方向。设计模式并非神秘莫测的代码魔法,实际上,我们在日常编程中或许早已与之打过交道。简单来说,设计模式常常借助…...

配置与管理代理服务器

安装squid Squid软件包在标准yum存储库中可用,因此,我们正在使用yum命令安装Squid代理。 [rootserver ~]# dnf install -y squid //安装 [rootserver ~]#systemctl enable --now squid.service [rootserver ~]#systemctl status squid.serv…...

RuntimeError: CUDA error: invalid device function

CUDA内核编译时的架构设置与当前GPU不兼容导致 -- The CUDA compiler identification is NVIDIA 11.5.119 (实际为 12.6) 解决方案: 1. 查看显卡计算能力 2. CMakeLists.txt 修改 set_target_properties(my_library PROPERTIESCUDA_AR…...

vulnhub:sunset decoy

靶机下载地址https://www.vulnhub.com/entry/sunset-decoy,505/ 渗透过程 简单信息收集 nmap 192.168.56.0/24 -Pn # 确定靶机ip:192.168.56.121 nmap 192.168.56.121 -A -T4 # 得到开放端口22,80 在80端口得到save.zip,需要密码解压。 john破解压缩…...

MySQL日期时间类型详解:DATE、TIME和DATETIME的用法与区别

在数据库设计中,正确处理日期和时间数据是至关重要的。MySQL提供了多种数据类型来存储时间信息,其中最常用的三种是DATE、TIME和DATETIME。本文将详细介绍这三种类型的特性、区别以及实际应用场景。 一、基本数据类型介绍 1. DATE类型 用途&#xff1…...

js异步机制

1、什么是异步机制?为什么js需要异步机制? 异步机制和同步机制是相对应的,异步是指:当代码按照顺序执行到一些比较耗时的操作,不会立刻执行,而是将这些操作推到一个队列中等待合适的时机从队列中取出任务执…...

Pycharm常用快捷键总结

主要是为了记录windows下的PyCharm的快捷键,里面的操作都试过了功能描述会增加备注。 文件操作 快捷键功能描述Ctrl N新建文件Ctrl Shift N根据名称查找文件Ctrl O打开文件Ctrl S保存当前文件Ctrl Shift S另存为Alt F12打开终端(Terminal&…...

巧记英语四级单词 Unit2-下【晓艳老师版】

mit传递(send 送)、 superiority n.优势,优越性 超越别人的东西就是自己的优势govern v.统治 government政府 统治的机构administer v.管理,治理 minister 大臣 部长,mini-小人,一再的做大臣 部长&#xf…...

走进底层 - JVM工作原理入门指南

走进底层 - JVM工作原理入门指南 Java 之所以能够实现“一次编写,到处运行”(Write Once, Run Anywhere, WORA),核心在于 Java 虚拟机(JVM, Java Virtual Machine)。JVM 是 Java 程序的运行环境&#xff0c…...

windows 10频繁通知A字“出现了问题,无法安装功能。”

一、故障突现 windows 10频繁通知A字“出现了问题,无法安装功能。” 编辑文档时发现黑体、楷体gb_2312等常用字体,在字体列表中失踪,原来设置好的字体也显示失效。 二、起因分析 回想了一下,是3月27日安装了 2025-适用于Windows…...

基础环境配置

1.GitGerritjenkins Linux 远程登录 | 菜鸟教程 https://zhuanlan.zhihu.com/p/22766058062 2.Samba 配置 3.软件安装 (1)MobaXterm (2)Vscode (3)Xmind (4) Audacity Aud…...

ROS2——foxy apt打包离线安装deb包

需要从A设备复制ROS2环境到B设备,且B设备有可能没网络,所以选择制作离线资源包 1. 本机安装指令 本机环境ubuntu20.04,安装ros2-foxy版本,直接输入以下指令,基本不会遇到问题 这里安装的是ros-base版本,不…...

大数据学习(104)-clickhouse与hdfs

🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…...

大数据 - 1. 概述

早期的计算机(上世纪70年代前) 是相互独立的,各自处理各自的数据上世纪70年代后,出现了基于TCP/IP协议的小规模的计算机互联互通。上世纪90年代后,全球互联的互联网出现。当全球互联网逐步建成(2000年左右&…...

CD25.【C++ Dev】类和对象(16) static成员(上)

目录 1.static成员变量 问题:实现一个类,计算程序中创建出了多少个类对象 设计思路 代码示例 版本1 版本2 static成员 特点1.static成员为静态成员,为所有类对象所共享(在某种程度上可以理解为全局的,用类去封装"全局变量"),存放在静态区,则不属于某个具体的…...

C语言今天开始了学习

好多年没有弄了,还是捡起来弄下吧 用的vscode 建议大家参考这个配置 c语言vscode配置 c语言这个语言简单,但是今天听到了一个消息说python 不知道怎么debug。人才真多啊...

Mockito如何对静态方法进行测试

在 Mockito 中,直接对静态方法进行模拟是困难的,因为 Mockito 的设计理念是优先通过依赖注入(DI)管理对象,而静态方法破坏了这种设计(难以解耦)。不过,从 Mockito 3.4.0 版本开始,通过 mockStatic 方法支持了对静态方法的模拟(需配合 mockito-inline 依赖)。 从 Mo…...

Three.js 入门实战:安装、基础概念与第一个场景⭐

学习本章节你不必要追求细节,你只需要了解基本的3D场景需要哪些元素组成,如何通过组成3D场景的元素属性调整来控制3D物体或者场景即可。 在上一篇文章中我们初识了 Three.js,今天我们正式进入实战环节 🎯 前置准备: …...

【QT】QT的消息盒子和对话框(自定义对话框)

QT的消息盒子和对话框(自定义对话框) 一、消息盒子QMessageBox1、弹出警告盒子示例代码:现象: 2、致命错误盒子示例代码:现象: 3、帮助盒子示例代码:现象: 4、示例代码: …...

QT面试题:内存管理与对象生命周期

题目​: 在Qt中,当一个父对象被销毁时,其子对象是否会被自动释放?请结合Qt的内存管理机制说明原因,并解释在什么情况下可能导致内存泄漏。如何避免这类问题? ​参考答案​ ​父子对象的内存管理机制​ ​…...

linux查询inode使用率

在 Linux 中,inode 用于存储文件和目录的元数据(如权限、所有者、时间戳等)。当文件系统的 inode 被耗尽时,即使磁盘空间充足,系统也会提示 No space left on device。以下是查询 inode 使用率的详细方法: …...

算法基础—二分算法

目录 一、⼆分查找例题 1 牛可乐和魔法封印 2 A-B 数对 3 烦恼的高考志愿 二、 ⼆分答案 1 木材加⼯ 2 砍树 3 跳石头 ⼆分算法的原理以及模板其实是很简单的,主要的难点在于问题中的各种各样的细节问题。因此,⼤多数情况下,只是背会…...

2024年第十五届蓝桥杯CC++大学A组--成绩统计

2024年第十五届蓝桥杯C&C大学A组--成绩统计 题目: 动态规划, 对于该题,考虑动态规划解法,先取前k个人的成绩计算其方差,并将成绩记录在数组中,记录当前均值,设小蓝已检查前i-1个人的成绩&…...

家居实用品:生活中的艺术,家的温馨源泉‌

在快节奏的现代生活中,家居实用品不仅是日常所需的工具,更是营造温馨家居氛围、提升生活品质的关键元素。它们以其独特的魅力,默默地融入我们的日常生活,成为连接物质世界与精神世界的桥梁。 走进家门,首先映入眼帘的或…...

TCP重传率高与传输延迟问题

目录标题 排查步骤:TCP重传率高与传输延迟问题v1.0通过 rate(node_netstat_Tcp_RetransSegs[3m]) 排查 TCP 重传问题的步骤1. **指标含义与初步分析**2. **关联指标排查**3. **定位具体问题源**4. **解决方案**5. **验证与监控** v2.0一、基础检查二、网络层分析三、…...

超越简单检索:探索知识图谱与大型语言模型的协同进化之路

摘要: 大型语言模型(LLM)在自然语言处理领域取得了革命性进展,但其在事实准确性、复杂推理和可解释性方面仍面临挑战,“幻觉”现象是其固有局限性的体现。知识图谱(KG)作为结构化人类知识的载体&#xff0c…...

汽车的四大工艺

文章目录 冲压工艺核心流程关键技术 焊接工艺核心流程 涂装工艺核心流程 总装工艺核心流程终检与测试静态检查动态检查四轮定位制动转鼓测试淋雨测试总结 简单总结下汽车的四大工艺(从网上找了一张图,感觉挺全面的)。 冲压工艺 将金属板材通过…...

研发效能实践:技术评审会生存指南

文章目录 🚨‌开篇暴击:为什么你的评审会像「菜鸡互啄」?‌⚙️‌第一章:Google Design Sprint——5天把争议变成共识‌📅 ‌Day 1-5 实操手册‌‌Map the Problem(画地图)‌‌Sketch Solutions…...

js 拷贝

在 JavaScript 中,拷贝对象和数组时需要特别注意,因为对象和数组是引用类型,直接赋值只会复制引用,而不是实际的数据。以下是几种常见的拷贝方法及其应用场景: 1. 浅拷贝(Shallow Copy) 浅拷贝…...

AI比人脑更强,因为被植入思维模型【51】效率思维模型

giszz的理解:效率实际没有用,过分的追求效率,也是当下社会的弊病。但是效率思维,让我们能够用一个最简单的模型,去平衡投入和产出的最佳比例。过高的效率,会导致过大的压力,合适是最好的。 一、…...

Spark RDD相关概念

Spark运行架构与核心组件 1.Spark运行梁构 spark运行架构包括master和slave两个主要部分。master负责管理整个集群的作业任务调度,而slave则负责实际执行任务。 dirver是Spark驱动器节点,负责执行Spark任务中的main方法,将用户程序转换成作业…...

每日一题(小白)数组娱乐篇21

由于题意可知我们是要将对应的数字转换为英文,我们要考虑两点一个是进制的转换,也就是类似于我们的十进制一到9就多一位,这里的进制就是Z进制也就是27进制一旦到26下一位则进位;另一方面要考虑数字的转换也就是1~26对应A~Z。解决上…...

LLM 的model.generate() 参数说明

LLM 的model.generate() 参数说明 目录 LLM 的model.generate() 参数说明生成长度控制参数采样策略参数重复惩罚参数束搜索参数其他参数model.generate() 方法是 Hugging Face Transformers 库中用于文本生成的核心方法,它有众多参数可用于控制生成过程 生成长度控制参数 min…...

每日一题——AB10 反转链表

ListNode* prev NULL;while(head) {ListNode* next head->next; // 先记住下一个节点head->next prev; // 把当前节点指向前一个prev head; // 前一个节点变成当前节点head next; // 当前节点移动到下一个}return prev; // …...

大模型备案语料安全要求解析

根据大模型备案法规要求及实践经验,我整理除了以下涉及到语料安全相关环节的要求,供大家参考,如果有大模型备案和算法备案的更多疑问,也可以和我沟通交流。 一、关键词库规模与覆盖范围 1.基础规模 企业需建立拦截关键词库&…...

【Ansible自动化运维】二、Playbook 深入探究:构建复杂自动化流程

​ 在 Ansible 自动化运维体系中,Playbook 是极为关键的部分。它允许我们以一种结构化、可重复的方式定义和执行一系列复杂的任务,从而构建高效的自动化流程。本篇文章将深入探究 Ansible Playbook 的各个方面,助您掌握构建复杂自动化…...

unity 保存场景功能 可以保存运行时候地形变化和动态生成得物体,点击加载进来后可以继续上次退出时得场景

直接上代码了 using System; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEngine.UI;[System.Serializable] public class TerrainSaveData {public int heightmapResolution;public float terrainWidth;public float terrainLength;p…...

光谱相机的关键技术参数

光谱相机的关键技术参数直接影响其数据获取能力和应用场景适配性。以下是核心参数的详细解析,涵盖光谱性能、空间性能、硬件性能及环境适应性: 一、光谱性能参数‌ ‌1. 光谱范围(Spectral Range)‌ ‌定义‌:相机可…...

Linux系统管理与编程12: FTP服务配置

(本实验在CentOS7/8上完成,OpenEuler上暂时未实现) 兰生幽谷,不为莫服而不芳; 君子行义,不为莫知而止休。 1 实验目标 1)理解FTP服务器原理 2) 掌握FTP服务器的配置文件 3)具备安装部署VSFTP的能力 4) 具备FTP的故障排除能…...

乐观锁与悲观锁的使用场景

悲观锁的应用场景 悲观锁的基本思想是假设并发冲突会发生,因此在操作数据时会先锁定数据,直到完成操作并提交事务后才释放锁。这种方式适用于写操作较多、并发冲突可能性较高的场景。 高写入比例的数据库操作:如果系统中有很多写操作&#x…...

金融级隐私安全之DeepSeek R1 模型去中心化存储和推理实现方案

目录 DeepSeek R1 进入去中心化存储网络意味着什么? 它是如何工作的? Atoma、Walrus和 Sui Atoma Network 已成功将 DeepSeek R1 670B 参数推理模型上传到 Walrus 去中心化存储网络。这标志着这种规模的模型首次在去中心化存储层上可用,确保无需依赖中心化基础设施即可实…...

基于django大数据平台的交通数据可视化设计与实现(源码+lw+部署文档+讲解),源码可白嫖!

摘要 时代在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势,基于大数据平台的交通数据可视化系统当然不能排除在外。基于大数据平台的交通数据可视化系统是在实际应用和软件工程的开发原理之上&#…...

STM32 vs ESP32:如何选择最适合你的单片机?

引言 在嵌入式开发中,STM32 和 ESP32 是两种最热门的微控制器方案。但许多开发者面对项目选型时仍会感到困惑:到底是选择功能强大的 STM32,还是集成无线的 ESP32? 本文将通过 硬件资源、开发场景、成本分析 等多维度对比&#xf…...

柳宗元经典的10首唐诗

1、最孤独的诗:《江雪》 江雪 千山鸟飞绝,万径人踪灭。 孤舟蓑笠翁,独钓寒江雪。 这首诗被誉为“唐诗五绝最佳”之作。 富于理想的“永贞革新”失败后,柳宗元被贬永州,母亲也在半年后离世。年届三十,政…...

Windows11介绍(中英文版)

一、Windows 11 的发布背景与发展历程 Windows 11 是微软公司推出的一款重要的操作系统,它是 Windows 操作系统系列的最新版本之一。微软在操作系统领域拥有悠久的历史和丰富的经验,从早期的 Windows 95 开启了图形化操作系统的新时代,到 Wi…...

使用 VSCode 本地历史记录‌恢复误删除文件

vsCode未知操作意外删除项目根目录入口代码文件 使用vsCode多年, 第一次遇见这种情况, 只是下载了几个插件, 可能打开的窗口太多, 有几个代码版本比对的页面, 在没有察觉的时候, 意外删除了项目根目…...