← 返回《数据科学的统计基础》
📑 查看全课大纲(第 22 / 41 节)

Neyman-Pearson基本引理

约 30 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

Neyman-Pearson基本引理

小象实战讲义 · 数据科学的统计基础

在学习了显著性检验、正态总体参数检验和似然比检验之后,我们面临一个核心问题:如何找到一个“最好”的检验?之前的方法只控制了第一类错误的概率,但并未保证第二类错误最小。本节介绍的Neyman-Pearson基本引理(简称NP引理)将回答这个问题。它为简单的假设检验问题提供了理论保证,告诉我们存在一种检验,在控制第一类错误不超过给定水平的前提下,能使第二类错误最小。这是现代假设检验理论的基石,也是理解后续“一致最优势检验”的关键。

💡 核心导读

  • 从“控制错误”到“最优检验”:回顾假设检验中两类错误(弃真α、存伪β)的权衡,明确最优检验的目标——在给定α下最小化β。
  • 检验函数的推广:引入更一般的“检验函数”概念,允许取0到1之间的值,从而定义随机化检验与非随机化检验,为NP引理的表述铺平道路。
  • NP基本引理:学习引理的精确表述,理解其核心结论——对于简单的原假设与备择假设,基于似然比构造的检验就是水平为α的最优势检验(MP检验)。
  • 引理的应用:通过正态分布和均匀分布的两个经典例子,掌握如何运用NP引理构造MP检验,并理解随机化检验的处理技巧。
  • 从MP到UMP:初步了解如何利用简单假设的MP检验,去处理复合备择假设,为下一节“一致最优势检验”做铺垫。

假设检验的再认识:从拒绝域到检验函数

在深入NP引理之前,我们需要对假设检验的基本框架进行更形式化的定义,这有助于我们精确地讨论“最优”问题。

检验与检验函数

对于一个假设检验问题 H0:θΘ0H_0: \theta \in \Theta_0 vs H1:θΘ1H_1: \theta \in \Theta_1,传统的做法是将样本空间 X\mathcal{X} 划分为互不相交的拒绝域 WW接受域 WcW^c。当样本 x=(x1,,xn)\mathbf{x} = (x_1, \dots, x_n) 落入 WW 时,我们拒绝 H0H_0;否则,不拒绝 H0H_0

我们可以用一个函数来等价地描述这个划分: ϕ(x)=IW(x)={1,若 xW(拒绝 H0)0,若 xWc(不拒绝 H0)\phi(\mathbf{x}) = I_W(\mathbf{x}) = \begin{cases} 1, & \text{若 } \mathbf{x} \in W \quad (\text{拒绝 } H_0) \ 0, & \text{若 } \mathbf{x} \in W^c \quad (\text{不拒绝 } H_0) \end{cases} 这个函数 ϕ(x)\phi(\mathbf{x}) 称为检验函数,它本质上是拒绝域 WW 的示性函数。之前我们讨论的检验都是这种非随机化检验,其检验函数只取0或1两个值。

为了理论上的完备性(尤其是处理离散分布时),NP理论将检验函数的概念推广为定义在样本空间上、取值于 [0,1][0, 1] 区间内的可测函数 ϕ(x)\phi(\mathbf{x})

  • ϕ(x)=1\phi(\mathbf{x}) = 1 时,拒绝 H0H_0
  • ϕ(x)=0\phi(\mathbf{x}) = 0 时,不拒绝 H0H_0
  • 0<ϕ(x)<10 < \phi(\mathbf{x}) < 1 时,进行随机化:以概率 ϕ(x)\phi(\mathbf{x}) 拒绝 H0H_0,以概率 1ϕ(x)1-\phi(\mathbf{x}) 不拒绝 H0H_0。这通常通过生成一个服从 Bernoulli(ϕ(x))Bernoulli(\phi(\mathbf{x})) 分布的随机数来实现。

允许取中间值的检验称为随机化检验。当检验统计量是连续型随机变量时,通常可以构造非随机化检验;而当其为离散型时,有时必须借助随机化检验才能恰好达到给定的显著性水平 α\alpha

势函数与检验水平

检验函数 ϕ(x)\phi(\mathbf{x})势函数定义为: gϕ(θ)=Eθ[ϕ(X)]g_\phi(\theta) = E_\theta[\phi(\mathbf{X})] 它表示当参数为 θ\theta 时,拒绝 H0H_0 的概率。势函数全面刻画了一个检验的性能:

  • θΘ0\theta \in \Theta_0 时,gϕ(θ)g_\phi(\theta) 就是犯**第一类错误(弃真)**的概率。
  • θΘ1\theta \in \Theta_1 时,gϕ(θ)g_\phi(\theta) 就是检验的功效,而 1gϕ(θ)1 - g_\phi(\theta) 就是犯**第二类错误(存伪)**的概率。

如果一个检验 ϕ\phi 满足: supθΘ0gϕ(θ)α\sup_{\theta \in \Theta_0} g_\phi(\theta) \le \alpha 则称 ϕ\phi显著性水平为 α\alpha 的检验,或称其具有水平 α\alpha。这意味着无论原假设 H0H_0 下的参数 θ\theta 具体取何值,犯第一类错误的概率都不超过 α\alpha

假设检验的充分性原则

在寻找好的检验时,一个有用的原则是:如果参数 θ\theta 存在充分统计量 T(X)T(\mathbf{X}),那么对于该参数的任何假设检验问题,我们只需要考虑那些仅依赖于充分统计量 TT 的检验函数。也就是说,存在一个与任何检验 ϕ(X)\phi(\mathbf{X}) 等价的检验 ϕ(T(X))\phi^*(T(\mathbf{X})),使得它们的势函数完全相同。这称为假设检验的充分性原则,它极大地简化了我们的搜索空间。

Neyman-Pearson基本引理

现在,我们聚焦于最简单的假设检验问题:简单原假设简单备择假设,即 H0:θ=θ0vsH1:θ=θ1H_0: \theta = \theta_0 \quad \text{vs} \quad H_1: \theta = \theta_1 其中 θ0\theta_0θ1\theta_1 是两个不同的、具体的参数值。对于这种问题,Neyman和Pearson给出了最优检验的构造方法。

最优势检验 (Most Powerful Test, MP检验)

ϕ1\phi_1ϕ2\phi_2 都是上述检验问题的水平为 α\alpha 的检验。如果对于任意其他水平为 α\alpha 的检验 ϕ2\phi_2,都有 gϕ1(θ1)gϕ2(θ1)g_{\phi_1}(\theta_1) \ge g_{\phi_2}(\theta_1) 成立,则称 ϕ1\phi_1 是该检验问题的水平为 α\alpha 的最优势检验 (MP检验)。换句话说,在控制第一类错误概率不超过 α\alpha 的所有检验中,MP检验在备择假设 θ=θ1\theta = \theta_1 处的势函数最大,即其犯第二类错误的概率最小。

NP引理的表述

Neyman-Pearson基本引理:对于简单对简单的假设检验问题 H0:θ=θ0H_0: \theta = \theta_0 vs H1:θ=θ1H_1: \theta = \theta_1,记样本的联合概率密度(或质量)函数为 f(x;θ)f(\mathbf{x}; \theta)。对于给定的显著性水平 α(0,1)\alpha \in (0, 1),存在常数 k0k \ge 0 和检验函数 ϕ(x)\phi(\mathbf{x}),使得

  1. ϕ\phi 具有水平 α\alpha,即 Eθ0[ϕ(X)]=αE_{\theta_0}[\phi(\mathbf{X})] = \alpha
  2. ϕ\phi 具有如下形式: ϕ(x)={1,若 f(x;θ1)>kf(x;θ0)γ,若 f(x;θ1)=kf(x;θ0)0,若 f(x;θ1)<kf(x;θ0)\phi(\mathbf{x}) = \begin{cases} 1, & \text{若 } f(\mathbf{x}; \theta_1) > k f(\mathbf{x}; \theta_0) \ \gamma, & \text{若 } f(\mathbf{x}; \theta_1) = k f(\mathbf{x}; \theta_0) \ 0, & \text{若 } f(\mathbf{x}; \theta_1) < k f(\mathbf{x}; \theta_0) \end{cases} 其中 γ[0,1]\gamma \in [0, 1] 是一个常数。

并且,任何具有上述形式的检验函数 ϕ\phi,都是该检验问题的水平为 α\alpha 的MP检验。常数 kkγ\gamma 由水平 α\alpha 唯一确定(在分布连续时,通常 γ=0\gamma=0)。

对引理的理解与说明

  1. 核心构造:MP检验基于似然比统计量 Λ(x)=f(x;θ1)f(x;θ0)\Lambda(\mathbf{x}) = \frac{f(\mathbf{x}; \theta_1)}{f(\mathbf{x}; \theta_0)}。它拒绝原假设的区域是似然比“足够大”的区域,即 Λ(x)>k\Lambda(\mathbf{x}) > k。这直观上很合理:如果样本在 θ1\theta_1 下的似然性远大于在 θ0\theta_0 下的似然性,我们就有理由拒绝 θ0\theta_0 而支持 θ1\theta_1
  2. 随机化部分:当似然比恰好等于临界值 kk 时,检验以概率 γ\gamma 拒绝 H0H_0。这是为了精确地达到水平 α\alpha。如果似然比统计量的分布在 H0H_0 下是连续的,那么 Pθ0(Λ(X)=k)=0P_{\theta_0}(\Lambda(\mathbf{X}) = k) = 0,此时可以取 γ=0\gamma = 0,得到一个非随机化检验。
  3. 存在性与最优性:NP引理不仅告诉我们MP检验存在,还明确给出了它的构造方法。这是假设检验理论的一个里程碑。

引理的应用与示例

示例1:正态总体均值检验(方差已知)

X1,,Xni.i.d.N(μ,σ2)X_1, \dots, X_n \stackrel{\text{i.i.d.}}{\sim} N(\mu, \sigma^2),其中 σ2\sigma^2 已知。考虑简单假设检验: H0:μ=μ0vsH1:μ=μ1(μ1>μ0)H_0: \mu = \mu_0 \quad \text{vs} \quad H_1: \mu = \mu_1 \quad (\mu_1 > \mu_0)

步骤1:写出似然函数并计算似然比。 样本的联合密度为: f(x;μ)=(2πσ2)n/2exp{12σ2i=1n(xiμ)2}f(\mathbf{x}; \mu) = (2\pi\sigma^2)^{-n/2} \exp\left{ -\frac{1}{2\sigma^2} \sum_{i=1}^n (x_i - \mu)^2 \right} 似然比为: Λ(x)=f(x;μ1)f(x;μ0)=exp{μ1μ0σ2i=1nxin2σ2(μ12μ02)}\Lambda(\mathbf{x}) = \frac{f(\mathbf{x}; \mu_1)}{f(\mathbf{x}; \mu_0)} = \exp\left{ \frac{\mu_1 - \mu_0}{\sigma^2} \sum_{i=1}^n x_i - \frac{n}{2\sigma^2}(\mu_1^2 - \mu_0^2) \right}

步骤2:根据NP引理构造MP检验。 由于 μ1>μ0\mu_1 > \mu_0,不等式 Λ(x)>k\Lambda(\mathbf{x}) > k 等价于 i=1nxi>c\sum_{i=1}^n x_i > c,其中 cc 是某个常数。进一步,这等价于样本均值 xˉ>c\bar{x} > c’。因此,MP检验的拒绝域具有形式: W={x:xˉ>c}W = { \mathbf{x}: \bar{x} > c’ } 这是一个非随机化检验。

步骤3:确定临界值 cc’ 以满足水平 α\alphaH0H_0 下,XˉN(μ0,σ2/n)\bar{X} \sim N(\mu_0, \sigma^2/n)。为了使检验具有水平 α\alpha,我们需要: Pμ0(Xˉ>c)=αP_{\mu_0}(\bar{X} > c’) = \alpha 由此可得: c=μ0+σnz1αc’ = \mu_0 + \frac{\sigma}{\sqrt{n}} z_{1-\alpha} 其中 z1αz_{1-\alpha} 是标准正态分布的 1α1-\alpha 分位数。

最终结论:该检验问题的水平为 α\alpha 的MP检验为: ϕ(x)={1,若 xˉ>μ0+σnz1α0,否则\phi(\mathbf{x}) = \begin{cases} 1, & \text{若 } \bar{x} > \mu_0 + \frac{\sigma}{\sqrt{n}} z_{1-\alpha} \ 0, & \text{否则} \end{cases} 重要观察:这个MP检验的拒绝域只依赖于 μ1\mu_1 大于 μ0\mu_0 这一事实,而与 μ1\mu_1 的具体数值无关。这一性质是连接MP检验与下一节“一致最优势检验”的关键。

示例2:均匀分布参数的检验(涉及随机化)

X1,,Xni.i.d.U(0,θ)X_1, \dots, X_n \stackrel{\text{i.i.d.}}{\sim} U(0, \theta),即密度函数为 f(x;θ)=1θI(0,θ)(x)f(x; \theta) = \frac{1}{\theta} I_{(0, \theta)}(x)。考虑简单假设检验: H0:θ=1vsH1:θ=θ1(θ1>1)H_0: \theta = 1 \quad \text{vs} \quad H_1: \theta = \theta_1 \quad (\theta_1 > 1)

步骤1:写出似然函数。 样本的联合密度为: f(x;θ)=1θnI(0,θ)(x(n))f(\mathbf{x}; \theta) = \frac{1}{\theta^n} I_{(0, \theta)}(x_{(n)}) 其中 x(n)=max{x1,,xn}x_{(n)} = \max{x_1, \dots, x_n} 是最大次序统计量。

步骤2:计算似然比。 Λ(x)=f(x;θ1)f(x;1)={+,若 1<x(n)θ1(此时 f(x;1)=0)θ1n,若 0x(n)1\Lambda(\mathbf{x}) = \frac{f(\mathbf{x}; \theta_1)}{f(\mathbf{x}; 1)} = \begin{cases} +\infty, & \text{若 } 1 < x_{(n)} \le \theta_1 \quad (\text{此时 } f(\mathbf{x}; 1)=0) \[5pt] \theta_1^{-n}, & \text{若 } 0 \le x_{(n)} \le 1 \end{cases}x(n)>θ1x_{(n)} > \theta_1 时,f(x;θ1)=0f(\mathbf{x}; \theta_1)=0,该情况在 H0H_0H1H_1 下均不可能发生(因为样本来自 U(0,θ)U(0,\theta)),故不予考虑。

步骤3:应用NP引理。 根据NP引理,MP检验拒绝 H0H_0Λ(x)>k\Lambda(\mathbf{x}) > k。由于 Λ(x)\Lambda(\mathbf{x}) 只取两个值(++\inftyθ1n\theta_1^{-n}),且 θ1n<1\theta_1^{-n} < 1,一个自然的想法是取 k=θ1nk = \theta_1^{-n}。那么:

  • x(n)>1x_{(n)} > 1 时,Λ(x)=+>k\Lambda(\mathbf{x}) = +\infty > k,应拒绝 H0H_0
  • x(n)1x_{(n)} \le 1 时,Λ(x)=θ1n=k\Lambda(\mathbf{x}) = \theta_1^{-n} = k,此时需要随机化。

因此,MP检验的形式为: ϕ(x)={1,若 x(n)>1γ,若 x(n)10,(不会发生)\phi(\mathbf{x}) = \begin{cases} 1, & \text{若 } x_{(n)} > 1 \ \gamma, & \text{若 } x_{(n)} \le 1 \ 0, & \text{(不会发生)} \end{cases}

步骤4:确定随机化概率 γ\gamma 以满足水平 α\alphaH0H_0 下(θ=1\theta=1),X(n)X_{(n)} 的密度函数为 fX(n)(t)=ntn1I(0,1)(t)f_{X_{(n)}}(t) = n t^{n-1} I_{(0,1)}(t)。因此, Eθ=1[ϕ(X)]=Pθ=1(X(n)>1)+γPθ=1(X(n)1)=0+γ1=γE_{\theta=1}[\phi(\mathbf{X})] = P_{\theta=1}(X_{(n)} > 1) + \gamma P_{\theta=1}(X_{(n)} \le 1) = 0 + \gamma \cdot 1 = \gamma 令其等于 α\alpha,即得 γ=α\gamma = \alpha

最终结论:该检验问题的水平为 α\alpha 的MP检验(随机化检验)为: ϕ(x)={1,若 x(n)>1α,若 x(n)1\phi(\mathbf{x}) = \begin{cases} 1, & \text{若 } x_{(n)} > 1 \ \alpha, & \text{若 } x_{(n)} \le 1 \end{cases} 这意味着:如果观测到的最大样本值大于1(这在原假设下本应不可能),则坚决拒绝 H0H_0;如果最大样本值不超过1,则以概率 α\alpha 拒绝 H0H_0(例如,再生成一个 U(0,1)U(0,1) 随机数 uu,若 u<αu < \alpha 则拒绝)。

步骤5:转化为非随机化检验(技巧)。 我们注意到,上述随机化检验在 x(n)1x_{(n)} \le 1 时以概率 α\alpha 拒绝。我们可以寻找一个常数 cc,使得检验“当 x(n)>cx_{(n)} > c 时拒绝”具有相同的势函数。即要求: Pθ=1(X(n)>c)=αP_{\theta=1}(X_{(n)} > c) = \alpha 由于 Pθ=1(X(n)c)=cnP_{\theta=1}(X_{(n)} \le c) = c^n,所以 1cn=α1 - c^n = \alpha,解得 c=(1α)1/nc = (1-\alpha)^{1/n}。 因此,一个等价的非随机化检验为: ϕ(x)={1,若 x(n)>(1α)1/n0,否则\phi^*(\mathbf{x}) = \begin{cases} 1, & \text{若 } x_{(n)} > (1-\alpha)^{1/n} \ 0, & \text{否则} \end{cases} 这个检验更易于理解和操作。

📝 动手练一练

  1. MP检验的构造:设 X1,,Xni.i.d.Exp(λ)X_1, \dots, X_n \stackrel{\text{i.i.d.}}{\sim} Exp(\lambda),指数分布密度为 f(x;λ)=λeλxI(0,)(x)f(x;\lambda) = \lambda e^{-\lambda x} I_{(0,\infty)}(x)。考虑检验问题 H0:λ=λ0H_0: \lambda = \lambda_0 vs H1:λ=λ1H_1: \lambda = \lambda_1,其中 λ1>λ0>0\lambda_1 > \lambda_0 > 0

    • (a) 写出样本的似然比统计量 Λ(x)\Lambda(\mathbf{x})
    • (b) 根据NP引理,写出水平为 α\alpha 的MP检验的拒绝域形式(用样本和或均值表示)。
    • (c) 在 H0H_0 下,i=1nXi\sum_{i=1}^n X_i 服从什么分布?利用该分布的分位数表示出(a)中拒绝域的临界值。
  2. 随机化检验的理解:在示例2的均匀分布检验中,我们得到了随机化检验 ϕ(x)\phi(\mathbf{x}) 和非随机化检验 ϕ(x)\phi^*(\mathbf{x})

    • (a) 编写Python代码,模拟在原假设 H0:θ=1H_0: \theta=1 下,分别用 ϕ\phiϕ\phi^* 进行检验,重复10000次,计算两种检验犯第一类错误的频率,验证它们是否都接近 α=0.05\alpha=0.05
    • (b) 在备择假设 H1:θ=1.5H_1: \theta=1.5 下进行同样的模拟,计算并比较两种检验的功效(拒绝 H0H_0 的频率)。

参考答案:

  1. (a) Λ(x)=(λ1/λ0)nexp{(λ1λ0)i=1nxi}\Lambda(\mathbf{x}) = (\lambda_1/\lambda_0)^n \exp\left{ -(\lambda_1 - \lambda_0) \sum_{i=1}^n x_i \right}。 (b) 由于 λ1>λ0\lambda_1 > \lambda_0Λ(x)>k    i=1nxi<c\Lambda(\mathbf{x}) > k \iff \sum_{i=1}^n x_i < c。因此拒绝域为 W={x:i=1nxi<c}W = { \mathbf{x}: \sum_{i=1}^n x_i < c } 或等价地 W={x:xˉ<c/n}W = { \mathbf{x}: \bar{x} < c/n }。 (c) 在 H0H_0 下,i=1nXiGamma(n,λ0)\sum_{i=1}^n X_i \sim Gamma(n, \lambda_0)(或尺度为 1/λ01/\lambda_0 的卡方分布 2λ0Xiχ2n22\lambda_0 \sum X_i \sim \chi^2_{2n})。临界值 cc 满足 Pλ0(Xi<c)=αP_{\lambda_0}(\sum X_i < c) = \alpha,即 c=FGamma(n,λ0)1(α)c = F^{-1}{Gamma(n, \lambda_0)}(\alpha)c=12λ0χ2n;α2c = \frac{1}{2\lambda_0} \chi^2{2n; \alpha},其中 χ2n;α2\chi^2_{2n; \alpha} 是自由度为 2n2n 的卡方分布的 α\alpha 分位数。

  2. 以下是模拟验证的Python代码:

    import numpy as np
    from scipy import stats
    
    # 设置参数
    np.random.seed(2025)  # 固定随机种子,确保结果可复现
    n = 10
    theta0 = 1.0
    theta1 = 1.5
    alpha = 0.05
    n_sim = 10000
    
    # 计算非随机化检验的临界值 c
    c = (1 - alpha) ** (1/n)
    
    def test_randomized(sample):
        """随机化检验 phi"""
        x_max = np.max(sample)
        if x_max > 1.0:
            return 1  # 拒绝
        else:
            # 以概率 alpha 拒绝
            return 1 if np.random.rand() < alpha else 0
    
    def test_nonrandomized(sample):
        """非随机化检验 phi*"""
        x_max = np.max(sample)
        return 1 if x_max > c else 0
    
    # 在原假设 H0: theta=1 下模拟
    reject_h0_random = 0
    reject_h0_nonrandom = 0
    for _ in range(n_sim):
        sample = np.random.uniform(0, theta0, size=n)
        reject_h0_random += test_randomized(sample)
        reject_h0_nonrandom += test_nonrandomized(sample)
    
    print(f"在原假设 H0 (θ={theta0}) 下:")
    print(f"  随机化检验犯第一类错误的频率: {reject_h0_random/n_sim:.4f} (理论值 α={alpha})")
    print(f"  非随机化检验犯第一类错误的频率: {reject_h0_nonrandom/n_sim:.4f} (理论值 α={alpha})")
    
    # 在备择假设 H1: theta=1.5 下模拟
    reject_h1_random = 0
    reject_h1_nonrandom = 0
    for _ in range(n_sim):
        sample = np.random.uniform(0, theta1, size=n)
        reject_h1_random += test_randomized(sample)
        reject_h1_nonrandom += test_nonrandomized(sample)
    
    print(f"\n在备择假设 H1 (θ={theta1}) 下:")
    print(f"  随机化检验的功效: {reject_h1_random/n_sim:.4f}")
    print(f"  非随机化检验的功效: {reject_h1_nonrandom/n_sim:.4f}")
    print(f"  两种检验功效的差异: {abs(reject_h1_random - reject_h1_nonrandom)/n_sim:.4f}")

    运行结果将显示,两种检验在原假设下的拒绝频率都接近0.05,在备择假设下的功效也几乎相同,验证了它们的等价性。

本章小结

本节深入探讨了假设检验理论的核心——Neyman-Pearson基本引理。我们首先形式化地定义了检验函数、势函数和检验水平,引入了随机化检验的概念以完善理论框架。随后,NP引理为我们提供了一个强有力的工具:对于简单的原假设与备择假设,基于似然比构造的检验就是最优势检验(MP检验),即在控制第一类错误不超过α的前提下,能够最大化检验功效(最小化第二类错误)。

通过正态分布和均匀分布的例子,我们实践了如何应用NP引理构造MP检验,并学习了处理随机化检验的技巧。更重要的是,我们观察到,在正态分布均值的单边检验中,MP检验的拒绝域形式与备择假设的具体值无关,只与其方向(大于或小于)有关。这一关键观察为我们下一节学习一致最优势检验(UMP检验)——即对于复合备择假设也能保持最优的检验——铺平了道路。

行动清单

  1. 理解核心思想:确保你理解“在固定第一类错误下,最小化第二类错误”这一最优准则,以及NP引理如何通过似然比实现它。
  2. 掌握构造步骤:面对一个简单对简单的检验问题,能够熟练写出似然比,并根据NP引理确定拒绝域形式,最后利用原假设下的分布确定临界值以满足水平α。
  3. 运行验证代码:动手运行练习中的代码,直观感受随机化与非随机化检验的等价性,以及MP检验在不同假设下的表现,加深对理论的理解。

— 小象教研组

配套学习资源与课件
  • 第4章课件:假设检验(PDF · 7.6MB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问