【回归算法】局部加权回归(LWR)详解

局部加权回归(LWR)详解 | 原理+实战+对比(适合本科/研究生)

前言

普通线性回归通过一条全局直线 拟合所有数据,适合数据呈整体线性趋势的场景,但现实中多数数据存在复杂的局部非线性规律(比如身高体重关系:小孩、青少年、成年人的规律完全不同),此时全局线性回归的预测效果会大幅下降。

局部加权回归(Locally Weighted Regression, LWR) 作为一种非参数回归方法 ,核心解决了这一问题:它不为所有数据找统一规律,而是对每个预测点,单独在其附近构建局部线性模型,离预测点越近的数据权重越高,远的数据权重越低,最终实现对复杂局部非线性趋势的精准拟合。

本文从核心概念、数学原理、算法流程、实战案例、模型对比五个维度,用通俗易懂的语言讲解LWR,附带可直接运行的Python代码,适合本科、研究生学习和实验。

一、局部加权回归核心认知:从"全局"到"局部"

1. 普通线性回归的痛点

普通线性回归的核心是拟合全局统一的线性模型 ,用一条直线覆盖所有数据,求解一个全局唯一的参数θ\thetaθ。

这种方式的问题在于:当数据存在局部不同的规律时,全局直线无法精准贴合每个区域的趋势,预测偏差大。

生活案例:预测身高与体重的关系

  • 小孩:身高增加,体重增长缓慢;
  • 青少年:身高和体重呈强线性相关;
  • 成年人:身高基本不变,体重差异大。
    若用一条直线拟合所有人群的数据,结果必然无法反映各阶段的真实规律。

2. LWR的核心思想:"近朱者赤,近墨者黑"

LWR的核心可以用一句话概括:预测某个点时,只重点参考离它近的数据,离得越近权重越高,远的数据几乎忽略,为每个预测点单独拟合局部线性模型

类比理解:

  • 普通线性回归:问全班同学一个问题,取所有人的答案平均值;
  • 局部加权回归:只问坐在你周围的同学,离你越近的同学,答案权重越高,最终用周围同学的答案做判断。

3. LWR的直观案例

假设我们有身高数据([150,160,170,180,190]),要预测身高170cm的体重:

  • 普通线性回归:用所有5个身高数据拟合一条全局直线,预测170cm的体重;
  • 局部加权回归:重点参考(160、170、180)的近数据(权重高),轻微参考(150、190)的远数据(权重低),为170cm这个点单独拟合一条局部直线,预测结果更贴合该区域的真实规律。

4. LWR的关键特性

  1. 非参数模型 :不学习固定的全局参数,每个预测点对应一个专属的局部参数θ\thetaθ;
  2. 懒惰学习(Lazy Learning):无离线训练过程,只有预测时才会基于训练数据构建局部模型;
  3. 局部性:预测结果仅由预测点附近的少量数据决定,远离的异常值几乎无影响;
  4. 灵活性:无需预设数据的全局函数形式,自适应捕捉局部非线性趋势。

二、局部加权回归的数学原理(本科/研究生易懂版)

1. 回归问题的基本定义

给定训练数据集{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\}{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}:

  • x(i)∈Rnx^{(i)} \in \mathbb{R}^nx(i)∈Rn:第iii个样本的特征向量(单特征时为标量);
  • y(i)∈Ry^{(i)} \in \mathbb{R}y(i)∈R:第iii个样本的输出值;
  • 目标:学习函数hθ(x)h_\theta(x)hθ(x),拟合输入到输出的关系,实现对新样本的预测。

2. 普通线性回归的回顾

普通线性回归的拟合函数为:
hθ(x)=θTx=θ0+θ1x1+θ2x2+⋯+θnxnh_{\theta}(x)=\theta^{T} x=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\cdots+\theta_{n} x_{n}hθ(x)=θTx=θ0+θ1x1+θ2x2+⋯+θnxn

通过最小化全局均方误差 求解最优参数θ\thetaθ,代价函数为:
J(θ)=12∑i=1m(hθ(x(i))−y(i))2J(\theta)=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}J(θ)=21∑i=1m(hθ(x(i))−y(i))2

最终得到全局唯一 的参数θ\thetaθ,所有预测都基于该参数。

3. LWR的核心改进:加权代价函数

LWR对普通线性回归的唯一(也是核心)改进是:为每个训练样本添加一个权重w(i)w^{(i)}w(i),权重大小由样本与预测点的距离决定

(1)加权代价函数

LWR的代价函数为加权均方误差 ,形式为:
J(θ)=12∑i=1mw(i)(hθ(x(i))−y(i))2J(\theta)=\frac{1}{2} \sum_{i=1}^{m} w^{(i)}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}J(θ)=21∑i=1mw(i)(hθ(x(i))−y(i))2

  • 权重w(i)∈[0,1]w^{(i)} \in [0,1]w(i)∈[0,1]:离预测点xxx越近,w(i)w^{(i)}w(i)越接近1,误差对代价函数影响越大;
  • 离预测点xxx越远,w(i)w^{(i)}w(i)越接近0,误差对代价函数影响越小(几乎忽略)。
(2)权重的计算:核函数(最常用高斯核)

权重w(i)w^{(i)}w(i)通过核函数 计算,核函数的作用是量化样本与预测点的距离,转化为权重高斯核 (平方指数核)是LWR中最常用的核函数,公式为:
w(i)=exp(−(x−x(i))T(x−x(i))2τ2)w^{(i)}=exp \left(-\frac{\left(x-x^{(i)}\right)^{T}\left(x-x^{(i)}\right)}{2 \tau^{2}}\right)w(i)=exp(−2τ2(x−x(i))T(x−x(i)))

  • xxx:当前待预测的点;
  • x(i)x^{(i)}x(i):第(i)个训练样本;
  • (x−x(i))T(x−x(i))(x-x^{(i)})^T(x-x^{(i)})(x−x(i))T(x−x(i)):欧氏距离的平方(单特征时为(x−x(i))2(x-x^{(i)})^2(x−x(i))2);
  • τ\tauτ:平滑参数/带宽(bandwidth),LWR的唯一超参数,核心控制"局部范围的大小"。
(3)平滑参数(\tau)的关键作用

τ\tauτ的大小直接决定LWR的拟合效果,是调参的核心:

  • τ\tauτ 越小:局部范围越窄,只考虑极近的样本,模型拟合能力极强,易过拟合(曲线过度震荡);
  • τ\tauτ 越大 :局部范围越宽,考虑更多远样本,模型拟合能力变弱,最终退化为普通线性回归
  • τ\tauτ 适中:既能捕捉局部非线性趋势,又能避免过拟合,拟合曲线平滑自然。

4. LWR的参数求解:加权最小二乘(正规方程)

LWR的目标是最小化加权代价函数 ,求解当前预测点xxx对应的局部参数θ\thetaθ ,推导过程基于矩阵形式,最终得到闭式解(正规方程),无需迭代求解。

(1)矩阵形式定义
  • 设计矩阵X∈Rm×nX \in \mathbb{R}^{m×n}X∈Rm×n:每行对应一个训练样本的特征向量x(i)x^{(i)}x(i);
  • 标签向量y∈Rm×1y \in \mathbb{R}^{m×1}y∈Rm×1:包含所有训练样本的输出值;
  • 权重矩阵W∈Rm×mW \in \mathbb{R}^{m×m}W∈Rm×m:对角矩阵 ,主对角线元素为Wii=w(i)W_{ii}=w^{(i)}Wii=w(i),非对角线元素为0。
(2)代价函数的矩阵形式

J(θ)=12(Xθ−y)TW(Xθ−y)J(\theta)=\frac{1}{2}(X \theta-y)^{T} W(X \theta-y)J(θ)=21(Xθ−y)TW(Xθ−y)

(3)求导求解最优参数θ\thetaθ

对θ\thetaθ求偏导并令梯度为0(代价函数最小的必要条件):
∇θJ(θ)=XTW(Xθ−y)=0\nabla_{\theta} J(\theta)=X^{T} W(X \theta-y)=0∇θJ(θ)=XTW(Xθ−y)=0

整理后得到LWR的正规方程解
θ=(XTWX)−1XTWy\theta=\left(X^{T} W X\right)^{-1} X^{T} W yθ=(XTWX)−1XTWy

(4)关键注意点

这个θ\thetaθ是当前预测点(x)专属的局部参数 ,不是全局唯一的!每个预测点都会对应一个新的权重矩阵WWW,进而求解出一个新的θ\thetaθ,这是LWR与普通线性回归的本质区别。

5. LWR的预测公式

得到当前预测点xxx的局部参数θ\thetaθ后,预测值为:
y^=θTx\hat{y}=\theta^{T} xy^=θTx

每个新预测点都要重复"计算权重矩阵→求解局部θ\thetaθ→计算预测值"的过程。

三、局部加权回归的完整算法流程

LWR无离线训练阶段,所有计算都在预测时完成 ,对于任意新预测点xxx,完整算法流程如下,步骤清晰可落地:

输入

  1. 训练数据集:{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\}{(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))};
  2. 待预测点:xxx(单特征/多特征均可);
  3. 超参数:平滑参数τ\tauτ(需调参确定)。

步骤1:计算每个训练样本的权重,构建权重矩阵(W)

  1. 对每个训练样本x(i)x^{(i)}x(i),通过高斯核 计算权重w(i)w^{(i)}w(i):
    w(i)=exp(−(x−x(i))T(x−x(i))2τ2)w^{(i)}=exp \left(-\frac{\left(x-x^{(i)}\right)^{T}\left(x-x^{(i)}\right)}{2 \tau^{2}}\right)w(i)=exp(−2τ2(x−x(i))T(x−x(i)))
  2. 构建对角权重矩阵(W) :主对角线Wii=w(i)W_{ii}=w^{(i)}Wii=w(i),非对角线为0。

步骤2:构造设计矩阵(X)和标签向量(y)

  • 设计矩阵(X):每行是一个训练样本的特征向量,维度m×nm×nm×n;
  • 标签向量(y):包含所有训练样本的输出值,维度m×1m×1m×1。

步骤3:通过正规方程求解局部参数θ\thetaθ

θ=(XTWX)−1XTWy\theta=\left(X^{T} W X\right)^{-1} X^{T} W yθ=(XTWX)−1XTWy
:若XTWXX^TWXXTWX奇异(行列式为0),用伪逆替代逆矩阵求解,避免计算错误。

步骤4:计算当前预测点的输出值

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

输出

待预测点xxx的预测值y^\hat{y}y^。

四、LWR实战案例:拟合带噪声的正弦曲线(Python可直接运行)

案例背景

正弦曲线是典型的非线性趋势数据,加入高斯噪声后更贴近现实场景(如传感器数据、气象数据、光照强度变化),普通线性回归无法拟合其非线性趋势,而LWR可通过局部拟合精准捕捉其变化规律。

案例目标

用LWR拟合带噪声的正弦曲线 ,验证LWR对局部非线性数据的拟合能力,同时观察平滑参数τ\tauτ对拟合效果的影响。

完整代码(CSDN可直接复制,注释详细)

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures

# 设置全局样式,适配CSDN可视化
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文显示
plt.rcParams['axes.unicode_minus'] = False    # 负号显示
plt.rcParams['figure.figsize'] = (10, 6)
plt.rcParams['grid.alpha'] = 0.3

# 步骤1:定义权重矩阵计算函数(高斯核)
def get_weights(query_point, X, tau):
    """
    计算高斯核权重,构建对角权重矩阵
    :param query_point: 单个待预测点,维度(1, n)
    :param X: 训练集特征矩阵,维度(m, n)
    :param tau: 平滑参数/带宽
    :return: 对角权重矩阵W,维度(m, m)
    """
    m = X.shape[0]
    # 计算每个训练样本与预测点的欧氏距离平方
    dist_sq = np.sum((X - query_point) ** 2, axis=1)
    # 高斯核计算权重
    weights = np.exp(-dist_sq / (2 * tau ** 2))
    # 构建对角矩阵
    return np.diag(weights)

# 步骤2:定义局部加权回归主函数
def locally_weighted_regression(X, y, tau, query_points):
    """
    局部加权回归核心函数,对每个预测点单独拟合局部模型
    :param X: 训练集特征矩阵,维度(m, n)
    :param y: 训练集标签向量,维度(m,)
    :param tau: 平滑参数/带宽
    :param query_points: 待预测点集合,维度(k, n)
    :return: 所有预测点的预测值,维度(k,)
    """
    m, n = X.shape
    y_preds = []
    for q in query_points:
        # 1. 计算当前预测点的权重矩阵
        W = get_weights(q, X, tau)
        # 2. 计算X^T W X
        XTWX = X.T @ W @ X
        # 3. 求解局部参数θ:避免矩阵奇异,用伪逆
        if np.linalg.det(XTWX) < 1e-10:  # 行列式接近0,奇异
            theta = np.linalg.pinv(XTWX) @ X.T @ W @ y
        else:
            theta = np.linalg.inv(XTWX) @ X.T @ W @ y
        # 4. 计算当前预测点的预测值
        y_pred = q @ theta
        y_preds.append(y_pred)
    return np.array(y_preds)

# 步骤3:构造带噪声的正弦曲线数据
np.random.seed(0)  # 固定随机种子,结果可复现
X = np.linspace(0, 10, 100)  # 自变量:0~10,100个样本
y = np.sin(X) + 0.3 * np.random.randn(100)  # 因变量:正弦曲线+高斯噪声

# 步骤4:多项式特征扩展(可选,提升局部拟合能力,拟合局部曲线而非直线)
poly = PolynomialFeatures(degree=2, include_bias=False)  # 2阶多项式
X_poly = poly.fit_transform(X.reshape(-1, 1))  # 训练集特征扩展,维度(100,2)

# 步骤5:生成密集的待预测点(用于绘制平滑的拟合曲线)
query_points = np.linspace(0, 10, 300).reshape(-1, 1)  # 0~10,300个点
query_poly = poly.transform(query_points)  # 预测点特征扩展,维度(300,2)

# 步骤6:设置平滑参数,训练并预测(核心调参)
tau = 0.5  # 适中的tau,拟合效果最佳
y_preds = locally_weighted_regression(X_poly, y, tau, query_poly)

# 步骤7:可视化拟合结果
plt.scatter(X, y, color='red', label='训练数据(带噪声)', alpha=0.6, s=30)
plt.plot(query_points, y_preds, color='blue', linewidth=2.5, label='LWR拟合曲线')
plt.plot(query_points, np.sin(query_points), color='green', linestyle='--', linewidth=2, label='真实正弦曲线')
plt.title('局部加权回归(LWR)拟合带噪声的正弦曲线', fontsize=16)
plt.xlabel('X', fontsize=14)
plt.ylabel('y', fontsize=14)
plt.legend(fontsize=12)
plt.grid(True)
plt.show()

# 额外:可视化不同tau的拟合效果(对比学习)
def plot_different_tau(X, y, X_poly, query_poly, taus):
    plt.scatter(X, y, color='red', label='训练数据(带噪声)', alpha=0.6, s=20)
    colors = ['blue', 'orange', 'purple']
    for i, tau in enumerate(taus):
        y_preds = locally_weighted_regression(X_poly, y, tau, query_poly)
        plt.plot(query_points, y_preds, color=colors[i], linewidth=2, label=f'tau={tau}')
    plt.title('不同平滑参数tau的LWR拟合效果对比', fontsize=16)
    plt.xlabel('X', fontsize=14)
    plt.ylabel('y', fontsize=14)
    plt.legend(fontsize=12)
    plt.grid(True)
    plt.show()

# 测试tau=0.1(过小,过拟合)、tau=0.5(适中,最佳)、tau=5(过大,退化为线性)
plot_different_tau(X, y, X_poly, query_poly, taus=[0.1, 0.5, 5])

案例结果分析(本科/研究生重点理解)

  1. 核心拟合效果 :当τ=0.5\tau=0.5τ=0.5时,LWR的蓝色拟合曲线几乎与绿色真实正弦曲线重合,精准捕捉了正弦曲线的非线性趋势,同时平滑了噪声,拟合效果远优于普通线性回归;
  2. tau=0.1(过小):局部范围极窄,模型过度拟合噪声,拟合曲线剧烈震荡,偏离真实趋势;
  3. tau=0.5(适中):拟合曲线平滑自然,既贴合局部非线性趋势,又有效抑制噪声,是最优解;
  4. tau=5(过大) :局部范围极宽,考虑所有样本,拟合曲线退化为近似直线,与普通线性回归效果一致,无法拟合非线性趋势。

关键结论 :平滑参数τ\tauτ是LWR的核心,需通过交叉验证选择适中的值,平衡拟合能力和过拟合风险。

五、局部加权回归的优缺点(本科/研究生必记)

LWR作为经典的非参数回归方法,优势和局限性都非常突出,适合在小样本、局部非线性、可解释性要求高的场景使用,以下整理为清晰表格,方便记忆:

优点

优点 详细说明
极强的局部非线性拟合能力 为每个预测点单独拟合局部模型,无需预设全局函数形式,自适应捕捉复杂的局部非线性趋势
对异常值鲁棒性高 远离预测点的异常值权重接近0,几乎不影响预测结果,解决了全局回归被异常值拖偏的问题
模型可解释性强 每个预测都有明确的局部参数θ\thetaθ,预测结果仅由附近数据决定,可清晰解释预测依据
无需离线训练 无模型训练过程,直接使用原始训练数据预测,适合探索性数据分析
拟合效果灵活可调 通过调整平滑参数τ\tauτ,可灵活控制模型的拟合能力,适配不同类型的数据

缺点

缺点 详细说明
计算效率极低 每个预测点都要重新计算权重矩阵、求解矩阵逆,时间复杂度高,无法处理大规模数据
属于懒惰学习,无模型文件 无法离线训练得到固定模型,不能保存参数部署到实际系统,每次预测都需依赖原始训练数据
受维度灾难影响 权重基于欧氏距离计算,高维空间中距离失去判别性,权重趋于一致,局部性完全失效
对平滑参数τ\tauτ高度敏感 τ\tauτ的微小变化会导致拟合效果大幅波动,需大量调参(如交叉验证)才能找到最优值
内存消耗大 预测时需加载全部训练数据,大规模数据下内存占用极高,易出现内存溢出

六、LWR与主流回归算法的对比(本科/研究生选型参考)

为了方便大家在实际场景中选择合适的回归算法 ,将LWR与本科/研究生阶段必学的线性回归、多项式回归、KNN回归、SVR、随机森林、神经网络7个核心维度做对比,整理为表格,清晰直观,适配CSDN显示:

算法 模型类型 是否全局模型 非线性建模能力 计算效率 训练方式 对异常值鲁棒性 可解释性
局部加权回归(LWR) 非参数、局部 🌟🌟🌟 极强(局部拟合) 🌟 低(每次预测都拟合) 无训练,预测时建模 🌟🌟🌟 高(远异常值无影响) 🌟🌟🌟 高
线性回归 参数模型 🌟 弱(仅全局线性) 🌟🌟🌟 极高 一次训练,快速预测 🌟 低(易被异常值拖偏) 🌟🌟🌟 高
多项式回归 参数模型 🌟🌟 中等(依赖阶数) 🌟🌟 中等 一次训练,快速预测 🌟🌟 较低 🌟🌟🌟 高
K近邻回归(KNN) 非参数、懒惰 🌟🌟🌟 强(近邻平均) 🌟🌟 中等(预测时找近邻) 无训练,预测时找近邻 🌟🌟 较强(可调整K) 🌟🌟 中
支持向量回归(SVR) 参数模型 🌟🌟🌟 强(核函数) 🌟🌟 中等 一次训练,快速预测 🌟🌟🌟 高(对异常值不敏感) 🌟 较低
随机森林回归 集成、参数 🌟🌟🌟 强(树模型) 🌟🌟 中等 一次训练,快速预测 🌟🌟🌟 高(集成抑制异常值) 🌟 较低(可做特征重要性)
神经网络回归(MLP) 参数模型 🌟🌟🌟 极强(深度网络) 🌟~🌟🌟🌟 依规模而定 大量训练,预测较快 🌟~🌟🌟 中(易受异常值影响) 🌟 低(黑箱模型)

七、LWR的适用场景与替代方案(本科/研究生必懂)

LWR的特性决定了它并非通用算法 ,而是针对特定场景的优化方案,需根据数据规模、维度、业务需求合理选择,以下是优先用LWR优先用其他算法的场景划分:

优先选择局部加权回归(LWR)的场景

  1. 小/中等规模数据,计算资源充足:如科学实验、物理模拟、光谱分析等,样本数通常在千级以内,对拟合精度要求高,计算效率要求低;
  2. 数据具有复杂局部非线性趋势:如气象数据、医疗时间序列、传感器失真数据,全局规律不明显,但局部趋势清晰;
  3. 探索性数据分析,可解释性优先:如学术研究、数据规律挖掘,需要明确的预测依据,LWR的局部模型可清晰展示每个预测点的拟合规律;
  4. 异常值干扰大的场景:如工业监测数据、网络丢包数据,存在大量远离核心趋势的异常值,LWR可有效屏蔽远异常值的影响。

优先选择其他算法的替代场景

  1. 大规模数据(万级及以上) :推荐随机森林、XGBoost、神经网络,这类算法一次训练即可快速预测,计算效率远高于LWR;
  2. 实时预测场景(低延迟要求) :如电商推荐、自动驾驶、金融风控,推荐线性回归、SVR、轻量树模型,LWR的高计算延迟无法满足实时需求;
  3. 高维数据(特征数>20) :如文本、图像、用户行为数据,推荐深度学习、核方法(SVR)、树模型,LWR受维度灾难影响,局部性失效;
  4. 需要模型部署的工程场景 :如APP、嵌入式设备、云端服务,推荐线性回归、SVR、轻量化神经网络,LWR无固定模型参数,无法部署;
  5. 对调参效率要求高 :推荐随机森林、XGBoost (超参数鲁棒性强),LWR对τ\tauτ高度敏感,调参成本高。

八、核心总结(本科/研究生必背考点)

  1. 局部加权回归(LWR)是非参数、懒惰学习 的回归方法,核心思想是为每个预测点单独拟合局部线性模型,近数据高权重,远数据低权重
  2. LWR的核心改进是加权代价函数 ,权重通过高斯核 计算,唯一超参数τ\tauτ(平滑参数)控制局部范围,τ\tauτ适中时拟合效果最佳;
  3. LWR的参数θ\thetaθ通过加权最小二乘的正规方程求解,是预测点专属的局部参数,非全局唯一;
  4. LWR的核心优势是局部非线性拟合能力强、对异常值鲁棒、可解释性高 ,核心局限性是计算效率低、维度灾难、无模型部署能力
  5. LWR适合小样本、局部非线性、可解释性优先 的场景(如科学实验、探索性分析),不适合大规模、高维、实时、部署类场景;
  6. LWR与普通线性回归的本质区别:LWR是局部模型 ,每个预测点一个θ\thetaθ;线性回归是全局模型 ,所有预测点共用一个θ\thetaθ。
相关推荐
沪漂阿龙1 小时前
温度参数深度解析:大模型生成的“创意旋钮”怎么调?
人工智能
你的论文学长1 小时前
文本处理的 CI/CD:用 NLP 静态分析解决查重飘红与 Format Error
人工智能·ci/cd·自然语言处理·重构·论文·学习方法
Matrix_111 小时前
论文阅读--Agent AI 探索多模态交互的前沿领域(一)
论文阅读·人工智能
甲枫叶1 小时前
【claude产品经理系列13】核心功能实现——需求的增删改查全流程
java·前端·人工智能·python·产品经理·ai编程
勾股导航1 小时前
DPO微调
人工智能·深度学习·机器学习
天使Di María1 小时前
脑电大模型系列——第二弹:BrainBERT
人工智能·深度学习·机器学习·大模型·迁移学习·脑机接口·脑电解码
Dev7z1 小时前
基于LSTM神经网络的金属材料机器学习本构模型研究(硕士级别)
人工智能·神经网络·机器学习·机器学习本构
浅念-1 小时前
C++ STL list 容器
开发语言·数据结构·c++·经验分享·笔记·算法·list
重生之后端学习1 小时前
39. 组合总和
java·数据结构·算法·职场和发展·深度优先