24/8/4算法笔记 线性回归

在简单或多元线性回归中,最小二乘法用来估计模型参数,使得预测值与实际值之间的差异(残差)的平方和最小。

最小二乘法

导入代码包

复制代码
import numpy as np

X=np.array([[1,1],[2,1]])
X

构建矩阵

复制代码
y=np.array([14,10])
y

linalg是线性代数,用于求解线性方程组 Ax=b,solve计算线性代数回归问题

复制代码
np.linalg.solve(X,y)

转置

复制代码
X.T

矩阵乘法

复制代码
a=X.T.dot(X)

逆矩阵(inv)

复制代码
#逆矩阵
B=np.linalg.inv(a)
B

导入线性回归函数

复制代码
from sklearn.linear_model import LinearRegression

#LinearRegression 是一个常用的线性回归模型,用于预测连续的输出值。
model = LinearRegression(fit_intercept=False)#False,不计算斜率,没有使用正规方程

#X数据,y目标值
display(X,y)
model.fit(X,y)#这行代码用于训练模型。
model.coef_#结果,返回值#系数,斜率

获得截距项

复制代码
model.intercept_#表示截距项

带截距的线性方程

复制代码
y=y+12
y
复制代码
# 假设 X 是已经存在的一个 NumPy 数组,这里我们创建一个示例 X 来模拟
X = np.array([[1, 2], [3, 4]])

# 使用 np.full 创建一个形状为 (2, 1),填充值为 1 的数组,确保行数与 X 匹配
ones_array = np.full((X.shape[0], 1), fill_value=1)

# 使用 np.concatenate 在 X 的每行末尾添加 ones_array
X = np.concatenate([X, ones_array], axis=1)

# 假设 display 函数和 y 变量已经定义
display(X, y)

正规方程计算

复制代码
import matplotlib.pyplot as plt
import numpy as np

X=np.linspace(0,10,num=30).reshape(-1,1)#np.linspace(0, 10, num=30) 
这个函数会生成一个包含 30 个元素的数组,这些元素在 0 到 10 之间均匀分布。linspace 函数的第一个参数是起始值,第二个参数是结束值,第三个参数 num 是生成的元素数量。

斜率和截距随机生成

复制代码
w = np.random.randint(1,5,size=1)
b = np.random.randint(1,10,size=1)

y=X*w+b+np.random.randn(30,1)

plt.scatter(X,y)#绘制散点图
相关推荐
强哥聊算力1 小时前
《算力江湖·英伟达传奇》第七集:ChatGPT出现前夜,英伟达发生了什么?
服务器·人工智能·算法·ai·chatgpt·gpu算力
ACP广源盛139246256733 小时前
硬件选型笔记:国产 PCIe Gen2.1 交换芯片 IX6024@ACP,工控与存量设备国产化改造方案评估
笔记·硬件架构·硬件工程·pcie·国产芯片
文人sec4 小时前
SQL基础入门笔记 | 从零基础到掌握核心查询语句
数据库·笔记·sql
Navigator_Z5 小时前
LeetCode //C - 1289. Minimum Falling Path Sum II
c语言·算法·leetcode
CCblandy5 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
摇滚侠6 小时前
《计算机是如何工作的:人人都能懂的计算机软硬件工作原理》第 9 章 机器码与汇编语言 阅读笔记 9
java·开发语言·笔记
xier_ran6 小时前
【infra之路】AI 编译器学习笔记(六):重拾 C++——lambda 与 MLIR 中的回调
c++·笔记·学习
志尊宝6 小时前
Vue3 零基础每日笔记(078):首屏加载速度优化汇总——清单化方案
笔记
YangYang9YangYan6 小时前
2027供应链计划校招:数学与应用数学专业如何把预测模型讲成业务决策?
人工智能·sql·算法
jsjzsl26 小时前
递归自改进系统(RSI)的本质是自发对称破缺:智能爆炸有界—— AI研发切记盲目投入
人工智能·python·算法