计算机应用数学--第一次作业

  • 第一次作业
    • 计算题
    • 编程题 (20分)

第一次作业

计算题

  1. (20分)求 E ( X ) E(X) E(X) V a r ( X ) Var(X) Var(X)

(1) X X X 服从 [ a , b ] [a,b] [a,b] 均匀分布。

(2) X = x 1 + x 2 + … + x n , x i ∈ { 0 , 1 } X=x_1+x_2+\ldots+x_n,x_i \in \{ 0,1\} X=x1+x2++xn,xi{0,1}, 相互独立。

【解】

(1)

随机变量 X X X 服从 [ a , b ] [a,b] [a,b] 上的均匀分布 X ∼ U ( a , b ) X \sim U(a,b) XU(a,b),其概率密度函数为 f ( x ) = 1 b − a f(x)=\frac{1}{b-a} f(x)=ba1

期望 E ( X ) E(X) E(X) 为:
E ( X ) = ∫ − ∞ ∞ x f ( x ) d x = ∫ a b x b − a d x = F ( b ) − F ( a ) = a + b 2 \begin{aligned} E(X) &= \int_{-\infty}^{\infty}xf(x)dx \\ &= \int_{a}^{b}\frac{x}{b-a}dx \\ &= F(b)-F(a)\\ &= \frac{a+b}{2} \end{aligned} E(X)=xf(x)dx=abbaxdx=F(b)F(a)=2a+b
其中 x b − a \frac{x}{b-a} bax 的原函数 F ( x ) = x 2 b − a F(x)=\frac{x^2}{b-a} F(x)=bax2

同理,可知 E ( X 2 ) = a 2 + a b + b 2 3 E(X^2) = \frac{a^2+ab+b^2}{3} E(X2)=3a2+ab+b2

方差 V a r ( X ) Var(X) Var(X) 为:
V a r ( X ) = E ( X − E ( X ) ) 2 = E ( X 2 ) − E ( X ) 2 = a 2 + a b + b 2 3 − ( a + b 2 ) 2 = ( a − b ) 2 12 \begin{aligned} Var(X) &= E(X-E(X))^2 \\ &= E(X^2)-E(X)^2 \\ &= \frac{a^2+ab+b^2}{3} - (\frac{a+b}{2})^2 \\ &= \frac{(a-b)^2}{12} \end{aligned} Var(X)=E(XE(X))2=E(X2)E(X)2=3a2+ab+b2(2a+b)2=12(ab)2
(2)

由于 x i x_i xi 是二值变量 x i ∈ { 0 , 1 } x_i \in \{0, 1\} xi{0,1},设 x i = 1 x_i=1 xi=1 的概率为 p p p
E ( x i ) = 0 ⋅ P ( x i = 0 ) + 1 ⋅ P ( x i = 1 ) = 0 ⋅ ( 1 − p ) + 1 ⋅ p = p E(x_i) = 0 \cdot P(x_i = 0) + 1 \cdot P(x_i = 1) = 0 \cdot (1 - p) + 1 \cdot p = p E(xi)=0P(xi=0)+1P(xi=1)=0(1p)+1p=p
由于相互独立,所以 E ( X ) E(X) E(X) 为:
E ( X ) = E ( x 1 + x 2 + … + x n ) = E ( x 1 ) + E ( x 2 ) + … + E ( x n ) = n p \begin{aligned} E(X) &= E(x_1 + x_2 + \ldots + x_n) \\ &= E(x_1) + E(x_2) + \ldots + E(x_n) \\ &= np \end{aligned} E(X)=E(x1+x2++xn)=E(x1)+E(x2)++E(xn)=np
因为 x i x_i xi 只能是 0 或 1,所以 x i 2 = x i x_i^2 = x_i xi2=xi,所以,
V a r ( x i ) = E ( x i 2 ) − ( E ( x i ) ) 2 = p − p 2 = p ( 1 − p ) Var(x_i) = E(x_i^2) - (E(x_i))^2 = p - p^2 = p(1 - p) Var(xi)=E(xi2)(E(xi))2=pp2=p(1p)
由于相互独立,所以 V a r ( X ) Var(X) Var(X) 为:
V a r ( X ) = V a r ( x 1 + x 2 + … + x n ) = V a r ( x 1 ) + V a r ( x 2 ) + … + V a r ( x n ) = n p ( 1 − p ) \begin{aligned} Var(X) &= Var(x_1 + x_2 + \ldots + x_n) \\ &= Var(x_1) + Var(x_2) + \ldots + Var(x_n) \\ &= np(1 - p) \end{aligned} Var(X)=Var(x1+x2++xn)=Var(x1)+Var(x2)++Var(xn)=np(1p)

  1. (15分)布隆过滤器(Bloom Filter)是一种空间效率高、查询效率快的数据结构,用于判断一个元素是否属于一个集合。它实质上是一个长度为 m m m 的 01 数组和 k k k 个不同的哈希函数构成。在添加元素时,将元素经过 k k k 个哈希函数得到哈希值,并将数组上这些哈希值位置标记为 1。在查询元素时,将元素经过同样的 k k k 个哈希函数得到哈希值,若数组上这些哈希值位置都为 1,则说明元素可能在集合中,否则一定不在集合中。布隆过滤器可能会出现误判,但不会出现漏判。假设每个哈希函数都是随机函数,请计算在插入 n n n 个元素后,布隆过滤器出现误判的概率,即一个不在集合中的元素被判定为在集合中。

【解】

k k k 个随机的哈希函数的取值集合都是 { 1 , 2 , 3 … , m } \{1,2,3\ldots,m\} {1,2,3,m},且哈希函数之间相互独立,

对于某个位置,经过 1 个哈希函数不被标记的概率为 ( 1 − 1 m ) (1-\frac{1}{m}) (1m1),经过 k k k 个哈希函数均不被标记的概率是 ( 1 − 1 m ) k (1-\frac{1}{m})^k (1m1)k,即添加一个元素后,某个位置不被标记的概率是 ( 1 − 1 m ) k (1-\frac{1}{m})^k (1m1)k

那么添加 n n n 个元素后,某个位置仍不被标记的概率是 ( 1 − 1 m ) k n (1-\frac{1}{m})^{kn} (1m1)kn,该位置被标记的概率是 1 − ( 1 − 1 m ) k n 1-(1-\frac{1}{m})^{kn} 1(1m1)kn

对于误判的元素,即一个不在集合中的元素被判定为在集合中的元素,

被判定为在集合中的元素,需要 k k k 个哈希函数的值都被标记,所以误判率为 [ 1 − ( 1 − 1 m ) k n ] k [1-(1-\frac{1}{m})^{kn}]^k [1(1m1)kn]k

  1. (15分)我们有两种硬币:一种是公平的硬币,即抛一次正反的概率均为 1/2;另一种是产生正面朝上的概率为 2/3 的硬币。从两枚硬币中挑出一枚,将这枚硬币掷 n n n 次。抛多少次足以让我们有 99% 的把握选择了哪种硬币?请写出计算过程。

【解】

要猜测哪个硬币被选中,设置阈值 t t t 介于 1 / 2 1/2 1/2 2 / 3 2/3 2/3 之间。

如果正面比例小于阈值,则猜测是公平的硬币;否则,猜测是另一种有偏差的硬币。

令随机变量 H n H_n Hn 为前 n n n 次掷硬币中正面朝上的次数。

掷硬币足够多的次数,以便如果选择了公平的硬币,则 P r ( H n n > t ) ≤ 0.01 P_r(\frac{H_n}{n}>t) \le 0.01 Pr(nHn>t)0.01,如果选择了有偏差的硬币,则 P r ( H n n < t ) ≤ 0.01 P_r(\frac{H_n}{n}<t) \le 0.01 Pr(nHn<t)0.01

选择的自然阈值是 7 / 12 7/12 7/12,正好在 1 / 2 1/2 1/2 2 / 3 2/3 2/3 中间。

H n H_n Hn 是独立伯努利变量的总和,对于公平硬币,每个变量的方差为 1 / 4 1/4 1/4,对于有偏差硬币,每个变量的方差为 2 / 9 2/9 2/9

使用切比雪夫不等式,对于公平的硬币,
P r ( H n n > 7 12 ) = P r ( H n n − 1 2 > 7 12 − 1 2 ) = P r ( H n − E [ H n ] > n 12 ) ≤ P r ( ∣ H n − E [ H n ] ∣ > n 12 ) ≤ V a r [ H n ] ( n / 12 ) 2 = n / 4 n 2 / 144 = 36 n \begin{aligned} P_r(\frac{H_n}{n}>\frac{7}{12}) &= P_r(\frac{H_n}{n} - \frac{1}{2}>\frac{7}{12} - \frac{1}{2}) \\ &= P_r(H_n-E[H_n] > \frac{n}{12}) \\ &\le P_r(|H_n-E[H_n]| > \frac{n}{12}) \\ &\le \frac{Var[H_n]}{(n/12)^2} \\ &= \frac{n/4}{n^2/144} = \frac{36}{n} \end{aligned} Pr(nHn>127)=Pr(nHn21>12721)=Pr(HnE[Hn]>12n)Pr(HnE[Hn]>12n)(n/12)2Var[Hn]=n2/144n/4=n36
对于有偏差的硬币,
P r ( H n n < 7 12 ) = P r ( 2 3 − H n n > 2 3 − 7 12 ) = P r ( 2 n 3 − H n > n 12 ) = P r ( E [ H n ] − H n > n 12 ) ≤ P r ( ∣ H n − E [ H n ] ∣ > n 12 ) ≤ V a r [ H n ] ( n / 12 ) 2 = 2 n / 9 n 2 / 144 = 32 n \begin{aligned} P_r(\frac{H_n}{n}<\frac{7}{12}) &= P_r(\frac{2}{3} - \frac{H_n}{n}> \frac{2}{3} -\frac{7}{12}) \\ &= P_r(\frac{2n}{3} - H_n > \frac{n}{12}) \\ &= P_r(E[H_n]- H_n > \frac{n}{12}) \\ &\le P_r(|H_n-E[H_n]| > \frac{n}{12}) \\ &\le \frac{Var[H_n]}{(n/12)^2} \\ &= \frac{2n/9}{n^2/144} = \frac{32}{n} \end{aligned} Pr(nHn<127)=Pr(32nHn>32127)=Pr(32nHn>12n)=Pr(E[Hn]Hn>12n)Pr(HnE[Hn]>12n)(n/12)2Var[Hn]=n2/1442n/9=n32
如果最多为 0.01,当 n ≥ 3600 n\ge3600 n3600 时满足 99% 的置信度。

由于有偏差硬币的方差小于公平硬币的方差,因此如果将阈值设置得更大一点,达到约 2 − 2 2-\sqrt2 22 ,可以做得更好一些,这在掷 3398 次硬币中给出了 99% 的置信度。

  1. (10分)考虑转移概率矩阵,六个状态分别为 { 0 , 1 , 2 , 3 , 4 , 5 } \{0,1,2,3,4,5\} {0,1,2,3,4,5},判断给定马尔可夫链是否存在稳定状态?
    [ 1 / 4 1 / 2 0 0 1 / 4 0 0 1 / 3 1 / 3 1 / 3 0 0 0 1 / 4 0 1 / 2 0 1 / 4 0 0 1 / 4 1 / 4 1 / 4 1 / 4 1 / 3 0 0 0 1 / 3 1 / 3 1 / 5 1 / 5 2 / 5 1 / 5 0 0 ] \begin{bmatrix} 1/4 & 1/2 & 0 & 0 & 1/4 & 0 \\ 0 & 1/3 & 1/3 & 1/3 & 0 & 0 \\ 0 & 1/4 & 0 & 1/2 & 0 & 1/4 \\ 0 & 0 & 1/4 & 1/4 & 1/4 & 1/4 \\ 1/3 & 0 & 0 & 0 & 1/3 & 1/3 \\ 1/5 & 1/5 & 2/5 & 1/5 & 0 & 0 \end{bmatrix} 1/40001/31/51/21/31/4001/501/301/402/501/31/21/401/51/4001/41/30001/41/41/30

【方法一】

不可约、非周期的马尔可夫链,有平稳分布存在。

  1. 判断不可约。

    状态转移图如下:

    在这里插入图片描述

从状态转移图可以看出,存在路径 0->1->2->3->4->5->0,状态 0 可以到达所有的状态,并且可以从所有状态到达。而其他状态都可以到达状态 0,并且可以从状态 0 到达,所以所有的状态都是相互可达的,因此这个马尔可夫链是不可约的。

  1. 判断是否为非周期。

对于状态 0,从 0 出发返回 0 的步长可能是 1(0->0),2(0->4->0),3(0->4->4->0),4(0->1->3->5->0),5(0->1->2->3->4->0),6(0->1->2->3->4->4->0)等,其步长的最大公约数为 1,所以状态 0 是非周期的。

对于不可约马尔可夫链,一个非周期状态则说明马尔可夫链是非周期的。

综上,不可约、非周期的马尔可夫链存在平稳分布。

【方法二】

要判断给定的马尔可夫链是否存在稳定状态,需要找到其转移概率矩阵的稳定分布。

设给定的转移概率矩阵为 P P P,计算 P 2 , P 3 , P 4 , P 5 , P 6 P^2,P^3,P^4,P^5,P^6 P2,P3,P4,P5,P6

在这里插入图片描述

输出 P 49 P^{49} P49 的值,发现每一行向量都收敛到相同的值,说明该马尔可夫链存在平稳分布。

【方法三】

要确定马尔可夫链是否存在稳定状态,需要检查是否存在一个概率分布向量 π \pi π,使得 π P = π \pi P = \pi πP=π,其中 P P P 是给定的转移概率矩阵。

首先,计算该矩阵的特征值和特征向量,以确定是否存在稳定状态。

然后,检查是否存在与特征值 1 对应的特征向量,因为单位特征值对应的特征向量是所需的稳定分布。

在这里插入图片描述

说明该马尔可夫链存在平稳分布。

  1. (20分) x 1 , … , x 6 x_1,\ldots,x_6 x1,,x6 属性满足以下网络图关系,给出对应的因子图以及联合分布概率公式以及 x 3 x_3 x3 的边缘概率公式(即 P ( x 1 ; x 2 ; x 3 ; x 4 ; x 5 ; x 6 ) , P ( x 3 ) P(x_1;x_2;x_3;x_4;x_5;x_6),P(x_3) P(x1;x2;x3;x4;x5;x6),P(x3)),对比直接计算 P ( x 3 ) P(x_3) P(x3) 和使用 Belief Propagation 算法(或称作 Sum-Product Message Passing)的计算代价之间的差异(即比较乘法加法次数)。

    x1
    x3
    x2
    x4
    x5
    x6

【解】

根据网络图,联合分布概率为:
P ( x 1 ; x 2 ; x 3 ; x 4 ; x 5 ; x 6 ) = P ( x 1 ) P ( x 2 ) P ( x 3 ∣ x 1 , x 2 ) P ( x 4 ∣ x 2 ) P ( x 5 ∣ x 3 ) P ( x 6 ∣ x 3 ) P(x_1;x_2;x_3;x_4;x_5;x_6)=P(x_1)P(x_2)P(x_3|x_1,x_2)P(x_4|x_2)P(x_5|x_3)P(x_6|x_3) P(x1;x2;x3;x4;x5;x6)=P(x1)P(x2)P(x3x1,x2)P(x4x2)P(x5x3)P(x6x3)
Original 因子图如下图:

在这里插入图片描述

x 3 x_3 x3 的边缘概率为:
P ( x 3 ) = ∑ x 1 , x 2 , . . . , x 6 e x c e p t x 3 f A ( x 1 ) f B ( x 2 ) f C ( x 1 , x 2 , x 3 ) f D ( x 2 , x 4 ) f E ( x 3 , x 5 ) f F ( x 3 , x 6 ) = ∑ x 1 ∑ x 2 ∑ x 4 ∑ x 5 ∑ x 6 P ( x 1 ) P ( x 2 ) P ( x 3 ∣ x 1 , x 2 ) P ( x 4 ∣ x 2 ) P ( x 5 ∣ x 3 ) P ( x 6 ∣ x 3 ) = ( ∑ x 5 P ( x 5 ∣ x 3 ) ) ⋅ ( ∑ x 6 P ( x 6 ∣ x 3 ) ) ⋅ ( ∑ x 1 , x 2 P ( x 1 ) P ( x 2 ) P ( x 3 ∣ x 1 , x 2 ) ∑ x 4 P ( x 4 ∣ x 2 ) ) = m f E → x 3 ( x 3 ) m f F → x 3 ( x 3 ) ∑ x 1 , x 2 P ( x 3 ∣ x 1 , x 2 ) P ( x 1 ) P ( x 2 ) m f D → x 2 ( x 2 ) = m f E → x 3 ( x 3 ) m f F → x 3 ( x 3 ) ∑ x 1 , x 2 P ( x 3 ∣ x 1 , x 2 ) m f A → x 1 ( x 1 ) m f B → x 2 ( x 2 ) m f D → x 2 ( x 2 ) = m f E → x 3 ( x 3 ) m f F → x 3 ( x 3 ) ∑ x 1 , x 2 P ( x 3 ∣ x 1 , x 2 ) m x 1 → f C ( x 1 ) m x 2 → f C ( x 2 ) = m f E → x 3 ( x 3 ) m f F → x 3 ( x 3 ) m f C → x 3 ( x 3 ) \begin{aligned} P(x_3)&=\sum_{x_1,x_2,...,x_6\ except\ x_3}f_A(x_1)f_B(x_2)f_C(x_1,x_2,x_3)f_D(x2,x4)f_E(x_3,x_5)f_F(x_3,x_6)\\ &=\sum_{x_1}\sum_{x_2}\sum_{x_4}\sum_{x_5}\sum_{x_6}P(x_1)P(x_2)P(x_3|x_1,x_2)P(x_4|x_2)P(x_5|x_3)P(x_6|x_3)\\ &=\left(\sum_{x_5}P(x_5|x_3)\right)\cdot \left(\sum_{x_6}P(x_6|x_3)\right)\cdot \left(\sum_{x_1,x_2}P(x_1)P(x_2)P(x_3|x_1,x_2)\sum_{x_4}P(x_4|x_2)\right)\\ &=m_{f_E\rightarrow x_3}(x_3)m_{f_F\rightarrow x_3}(x_3)\sum_{x_1,x_2}P(x_3|x_1,x_2)P(x_1)P(x_2)m_{f_D\rightarrow x_2}(x_2)\\ &=m_{f_E\rightarrow x_3}(x_3)m_{f_F\rightarrow x_3}(x_3)\sum_{x_1,x_2}P(x_3|x_1,x_2)m_{f_A\rightarrow x_1}(x_1)m_{f_B\rightarrow x_2}(x_2)m_{f_D\rightarrow x_2}(x_2)\\ &=m_{f_E\rightarrow x_3}(x_3)m_{f_F\rightarrow x_3}(x_3)\sum_{x_1,x_2}P(x_3|x_1,x_2)m_{x_1\rightarrow f_C}(x_1)m_{x_2\rightarrow f_C}(x_2)\\ &=m_{f_E\rightarrow x_3}(x_3)m_{f_F\rightarrow x_3}(x_3)m_{f_C\rightarrow x_3}(x_3) \end{aligned} P(x3)=x1,x2,...,x6 except x3fA(x1)fB(x2)fC(x1,x2,x3)fD(x2,x4)fE(x3,x5)fF(x3,x6)=x1x2x4x5x6P(x1)P(x2)P(x3x1,x2)P(x4x2)P(x5x3)P(x6x3)=(x5P(x5x3))(x6P(x6x3))(x1,x2P(x1)P(x2)P(x3x1,x2)x4P(x4x2))=mfEx3(x3)mfFx3(x3)x1,x2P(x3x1,x2)P(x1)P(x2)mfDx2(x2)=mfEx3(x3)mfFx3(x3)x1,x2P(x3x1,x2)mfAx1(x1)mfBx2(x2)mfDx2(x2)=mfEx3(x3)mfFx3(x3)x1,x2P(x3x1,x2)mx1fC(x1)mx2fC(x2)=mfEx3(x3)mfFx3(x3)mfCx3(x3)
假设 x i x_i xi 的取值共有 n ( x i ) n(x_i) n(xi) 种,则:

直接计算需要加法 ∑ i = 1 , 2 , 4 , 5 , 6 ( n ( x i ) − 1 ) \sum_{i=1,2,4,5,6}\left(n(x_i)-1\right) i=1,2,4,5,6(n(xi)1) 次,乘法 5 × ∑ i = 1 , 2 , 4 , 5 , 6 n ( x i ) 5\times \sum_{i=1,2,4,5,6}n(x_i) 5×i=1,2,4,5,6n(xi)

使用 Belief Propagation 算法,加法仍为 ∑ i = 1 , 2 , 4 , 5 , 6 ( n ( x i ) − 1 ) \sum_{i=1,2,4,5,6}\left(n(x_i)-1\right) i=1,2,4,5,6(n(xi)1) 次,乘法变为 2 + 3 × ∑ i = 1 , 2 n ( x i ) 2+3\times\sum_{i=1,2}n(x_i) 2+3×i=1,2n(xi)

编程题 (20分)

说明:建议使用开源工具包,例如 scikit-learn 中有朴素贝叶斯函数实现。

朴素贝叶斯分类器(Naive Bayes Classifier)

数据集:Bayesian_Dataset_train.csv, Bayesian_Dataset_test.csv。

数据描述:列名分别为“年纪、工作性质、家庭收入、学位、工作类型、婚姻状况、族裔、性别、工作地点”,最后一列是标签,即收入是否大于50k每年。

任务描述:使用朴素贝叶斯(Naïve Bayesian)预测一个人的收入是否高于50K每年。

要求输出:采用不同评估方式,至少包含两种(如交叉验证和留一法等),给出结果统计,包括Accuracy、precision、recall、F1 score、ROC;

Optional:探索不同参数对结果的影响。

【代码】

import pandas as pd
from sklearn.naive_bayes import GaussianNB
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import cross_val_score, cross_val_predict
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score, roc_curve
import matplotlib.pyplot as plt# 读取数据
train_data = pd.read_csv('Bayesian_Dataset_train.csv', header=None)
test_data = pd.read_csv('Bayesian_Dataset_test.csv', header=None)# 将类别特征编码为数值
label_encoder = LabelEncoder()
for i in range(train_data.shape[1]):if train_data[i].dtype == 'object':train_data[i] = label_encoder.fit_transform(train_data[i])test_data[i] = label_encoder.transform(test_data[i])# 分离特征和标签
X_train, y_train = train_data.iloc[:, :-1], train_data.iloc[:, -1]
X_test, y_test = test_data.iloc[:, :-1], test_data.iloc[:, -1]# 初始化朴素贝叶斯分类器
naive_bayes = GaussianNB()# 1. 交叉验证accuracy_cv = cross_val_score(naive_bayes, X_train, y_train, cv=5, scoring='accuracy').mean()
precision_cv = cross_val_score(naive_bayes, X_train, y_train, cv=5, scoring='precision').mean()
recall_cv = cross_val_score(naive_bayes, X_train, y_train, cv=5, scoring='recall').mean()
f1_cv = cross_val_score(naive_bayes, X_train, y_train, cv=5, scoring='f1').mean()print("Cross Validation Accuracy:", accuracy_cv)
print("Cross Validation Precision:", precision_cv)
print("Cross Validation Recall:", recall_cv)
print("Cross Validation F1 Score:", f1_cv)y_scores = cross_val_predict(naive_bayes, X_train, y_train, cv=5, method='predict_proba')[:, 1]
fpr_cv, tpr_cv, thresholds_cv = roc_curve(y_train, y_scores)
roc_auc_cv = roc_auc_score(y_train, y_scores)
print("Cross Validation Roc-auc Score:", roc_auc_cv)plt.figure()
plt.plot(fpr_cv, tpr_cv, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc_cv)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Cross Validation Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.show()# 2. 留出法naive_bayes.fit(X_train, y_train)
y_pred = naive_bayes.predict(X_test)print(f"\nHold-out Accuracy: {accuracy_score(y_test, y_pred)}")
print(f"Hold-out Precision: {precision_score(y_test, y_pred)}")
print(f"Hold-out Recall: {recall_score(y_test, y_pred)}")
print(f"Hold-out F1 Score: {f1_score(y_test, y_pred)}")
print(f"Hold-out ROC AUC Score: {roc_auc_score(y_test, y_pred)}")# 获取测试集上的预测概率
y_scores = naive_bayes.predict_proba(X_test)[:, 1]# 计算 ROC 曲线和 AUC
fpr, tpr, thresholds = roc_curve(y_test, y_scores)
roc_auc = roc_auc_score(y_test, y_scores)# 绘制 ROC 曲线
plt.figure()
plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Hold-out Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.show()

实验结果如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年智慧教育与社会科学国际会议 (ICSSS 2024)

2024年智慧教育与社会科学国际会议 (ICSSS 2024) 2024 International Conference on Smart Education and Social Sciences 【重要信息】 大会地点&#xff1a;北京 大会官网&#xff1a;http://www.icicsss.com 投稿邮箱&#xff1a;icicssssub-conf.com 【注意&#xff1a;稿…

Stable-diffusion-WebUI 的API调用(内含文生图和图生图实例)

前情提要 在之前尝试使用Diffusers库来进行stable-diffusion的接口调用以及各种插件功能实现&#xff0c;但发现diffusers库中各复杂功能的添加较为麻烦&#xff0c;而且难以实现对采样器的添加&#xff0c;safetensors格式模型的读取。在官网上找到了webui有专门的api接口&am…

1117 数字之王

solution 判断现有数字是否全为个位数 全为个位数&#xff0c;找出出现次数最多的数字&#xff0c;并首行输出最多出现次数&#xff0c;第二行输出所有出现该次数的数值不全为个位数 若当前位数值为0&#xff0c;无需处理若当前位数值非0&#xff0c;则每位立方相乘&#xff0…

10.x86游戏实战-汇编指令lea

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

Prometheus + Grafana 监控系统搭建使用指南-redis_exporter 安装与配置

Redis 接入 Prometheus 监控系统 系列文章目录 Prometheus 的安装部署Grafana的安装部署Linux服务器接入Prometheus监控-Node Exporter 安装指南Prometheus 接入SpringBoot微服务监控Mysql 接入 Prometheus RocketMQ 接入Prometheus 监控ElasticSearch 接入 PrometheusNacos …

vue使用axios获取信息的案例

List组件&#xff08;用来展示搜索的信息&#xff09; <template><div class"row"><!-- 列表数据 --><div class"card" v-for"user in info.users" :key"user.login" v-show"info.users.length">&l…

智慧校园-资产管理系统总体概述

智慧校园资产管理系统是面向教育机构设计的一体化数字平台&#xff0c;其核心目标在于通过先进的信息技术手段&#xff0c;全面优化校园内部的资产管理流程。该系统致力于提升资产管理的效率与透明度&#xff0c;同时降低成本并确保所有操作符合财务及审计规范&#xff0c;为校…

RNN文献综述

循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一种专门用于处理序列数据的神经网络模型。它在自然语言处理、语音识别、时间序列预测等领域有着广泛的应用。本文将从RNN的历史发展、基本原理、应用场景以及最新研究进展等方面进行综述。 历…

TC3xx NvM小细节解读

目录 1.FlsLoader Driver和FlsDmu Driver 2. FlsLoader小细节 3.小结 大家好&#xff0c;我是快乐的肌肉&#xff0c;今天聊聊TC3xx NvM相关硬件细节以及MCAL针对NvM的驱动。 1.FlsLoader Driver和FlsDmu Driver 在最开始做标定的时候&#xff0c;认为标定数据既然是数据&…

比赛获奖的武林秘籍:02 国奖秘籍-大学生电子计算机类竞赛快速上手的流程,小白必看

比赛获奖的武林秘籍&#xff1a;02 国奖秘籍-大学生电子计算机类竞赛快速上手的流程&#xff0c;小白必看 摘要 本文主要介绍了大学生参加电子计算机类比赛&#xff08;电赛、光电设计大赛、计算机设计大赛、嵌入式芯片与系统设计大赛等比赛&#xff09;的流程和涉及到的知识…

3dmax全景图用什么渲染软件好?渲染100邀请码1a12

全景图是常见的效果图类型&#xff0c;常用于展示大型空间&#xff0c;如展厅、会议室等。全景图的制作需要渲染&#xff0c;下面我介绍几个常用的渲染软件分享给大家。 1、V-Ray&#xff1a;十分流行的渲染引擎&#xff0c;功能强大&#xff0c;它提供了高质量的光线追踪技术…

六、资产安全—信息分级资产管理与隐私保护练习题(CISSP)

六、资产安全—信息分级资产管理与隐私保护(CISSP): 六、资产安全—信息分级资产管理与隐私保护(C

RAM和ROM的区别

RAM和ROM的区别 RAM和ROM都是用来存东西的&#xff0c;比如我们熟悉的CPU缓存、电脑和手机的内存就是属于RAM&#xff0c;而固态硬盘、U盘&#xff0c;还有我们买手机时候说的32G、64G的存储空间&#xff0c;就属于ROM。RAM和ROM的区别&#xff0c;简单说就是RAM在断电之后&am…

正则表达式语法+常用正则表达式

1. 简介 1> 正则表达式(Regular Expression)是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字符&#xff08;称为"元字符"&#xff09;&#xff0c;可以用来描述和匹配字符串的特定模式 2> 正则表达…

沙龙回顾|MongoDB如何充当企业开发加速器?

数据不仅是企业发展转型的驱动力&#xff0c;也是开发者最棘手的问题。前日&#xff0c;MongoDB携手阿里云、NineData在杭州成功举办了“数据驱动&#xff0c;敏捷前行——MongoDB企业开发加速器”技术沙龙。此次活动吸引了来自各行各业的专业人员&#xff0c;共同探讨MongoDB的…

【MySQL】mysql访问

mysql访问 1.引入MySQL 客户端库2.C/C 进行增删改3.查询的处理细节4.图形化界面访问数据库4.1下载MYSQL Workbench4.2MYSQL Workbench远程连接数据库 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&a…

快递物流运输中的锁控系统优缺点探讨

一、物流运输中锁控系统的重要性 1.1 保障货物安全 在物流运输过程中&#xff0c;货物安全是物流公司最为关注的问题之一。传统机械锁虽然在一定程度上提供了安全保障&#xff0c;但其缺点逐渐暴露&#xff0c;成为物流运输中的一个痛点。 易被破解&#xff1a;传统机械锁通…

基于MCU平台的HMI开发的性能优化与实战(下)

继上篇《基于MCU平台的HMI开发的性能优化与实战&#xff08;上&#xff09;》深入探讨了提升MCU平台HMI开发效率和应用性能的策略后&#xff0c;本文将专注于NXP i.MX RT1170 MCU平台的仪表盘开发实践。我们将重点介绍Qt for MCUs的优化技巧&#xff0c;展示如何通过实际案例应…

Qt:7.QWidget属性介绍(cursor属性-光标形状、font属性-控件文本样式、tooltip属性-控件提示信息)

目录 一、cursor属性-光标形状&#xff1a; 1.1cursor属性介绍&#xff1a; 1.2获取当前光标形状——cursor()&#xff1a; 1.3 设置光标的形状——setCursor()&#xff1a; 1.4 设置自定义图片为光标&#xff1a; 二、font属性-控件文本样式&#xff1a; 2.1font属性介绍…

antd-Table-可视化数据滚动

代码 // 使用方式 const Index () > {useScroll();return <Table />; }import { useEffect, useRef, useState } from react;export const useScroll (() > {let timer;function start() {const [isScroll, setIsScroll] useState(true);const scrollTopRef u…