在Begin-End部分补充代码。 任务描述:假设给定训练数据集 (X,Y),其中每个样本 x 都包括 n 维特征,即 x=(x1,x2,x3,…,xn),类标签集合含有 k 个类别,即 y=(y1,y2,…,yk) 。给定样本 x′ ,使用Python语言编程,求样本 x′ 属于第一个类别的概率 P(x′∣y0) 。 任务1:根据条件独立假设,计算样本 xx 属于第一个类别的概率。提示:numpy.sum(a) 可实现对数组 a 求和;numpy.where(condition, x, y) 满足条件(condition),输出 x,不满足输出 y 。 测试输入: 无 预期输出: 样本 xx = [0,1,0,1,1] 属于类别 0 的概率为: 0.023134412779181757 开始你的任务吧,祝你成功! # 导入库 import numpy as np # 共 100 个样本,每个样本 x 都包括 5 个特征 np.random.seed(0) x = np.random.randint(0,2,(100, 5)) # 共 100 个样本,每个样本 x 都属于 {0,1} 类别中的一个 np.random.seed(0) y = np.random.randint(0,2,100) # 给定 xx = [0,1,0,1,1] xx = np.array([0,1,0,1,1]) # setx_0 表示属于第一个类别的 x 的集合 setx_0 = x[np.where(y==0)] # 初始化 p_0,p_0 表示 xx 属于类别 0 的概率 p_0 = setx_0.shape[0] / 100 # 任务1:根据条件独立假设,求样本 xx 属于第一个类别的概率 ########## Begin ########## for i in range(5): p_0 = ########## End ########## # 打印结果 print("样本 xx = [0,1,0,1,1] 属于类别 0 的概率为:", p_0)
时间: 2024-04-29 18:19:56 浏览: 98
# 导入库
import numpy as np
# 共 100 个样本,每个样本 x 都包括 5 个特征
np.random.seed(0)
x = np.random.randint(0,2,(100, 5))
# 共 100 个样本,每个样本 x 都属于 {0,1} 类别中的一个
np.random.seed(0)
y = np.random.randint(0,2,100)
# 给定 xx = [0,1,0,1,1]
xx = np.array([0,1,0,1,1])
# setx_0 表示属于第一个类别的 x 的集合
setx_0 = x[np.where(y==0)]
# 初始化 p_0,p_0 表示 xx 属于类别 0 的概率
p_0 = setx_0.shape[0] / 100
# 任务1:根据条件独立假设,求样本 xx 属于第一个类别的概率
########## Begin ##########
for i in range(5):
p_0 *= np.sum(setx_0[:,i]==xx[i]) / setx_0.shape[0]
########## End ##########
# 打印结果
print("样本 xx = [0,1,0,1,1] 属于类别 0 的概率为:", p_0)
相关问题
编程要求 根据提示,在Begin-End部分补充代码。 任务描述:假设给定训练数据集 (X,Y),其中每个样本 x 都包括 n 维特征,即 x=(x 1 ,x 2 ,x 3 ,…,x n ),类标签集合含有 k 个类别,即 y=(y 1 ,y 2 ,…,y k ) 。给定样本 x′ ,使用Python语言编程,求样本 x′ 属于第一个类别的概率 P(x′∣y 0 ) 。 任务1:根据条件独立假设,计算样本 xx 属于第一个类别的概率。提示:numpy.sum(a) 可实现对数组 a 求和;numpy.where(condition, x, y) 满足条件(condition),输出 x,不满足输出 y 。 测试说明 平台会对你编写的代码进行测试: 测试输入: 无 预期输出: 样本 xx = [0,1,0,1,1] 属于类别 0 的概率为: 0.023134412779181757 开始你的任务吧,祝你成功! # 导入库 import numpy as np # 共 100 个样本,每个样本 x 都包括 5 个特征 np.random.seed(0) x = np.random.randint(0,2,(100, 5)) # 共 100 个样本,每个样本 x 都属于 {0,1} 类别中的一个 np.random.seed(0) y = np.random.randint(0,2,100) # 给定 xx = [0,1,0,1,1] xx = np.array([0,1,0,1,1]) # setx_0 表示属于第一个类别的 x 的集合 setx_0 = x[np.where(y==0)] # 初始化 p_0,p_0 表示 xx 属于类别 0 的概率 p_0 = setx_0.shape[0] / 100 # 任务1:根据条件独立假设,求样本 xx 属于第一个类别的概率 ########## Begin ########## for i in range(5): p_0 = ########## End ########## # 打印结果 print("样本 xx = [0,1,0,1,1] 属于类别 0 的概率为:", p_0)
任务1的代码如下:
```
for i in range(5):
p_0 *= np.sum(setx_0[:, i] == xx[i]) / setx_0.shape[0]
```
其中 `setx_0[:, i] == xx[i]` 表示第 i 维特征值相同的样本数,除以 `setx_0.shape[0]` 得到条件概率。最后将所有条件概率相乘即为样本 xx 属于第一个类别的概率。
编程要求 根据提示,在Begin-End部分补充代码。 任务描述:假设给定训练数据集 (X,Y),其中每个样本 x 都包括 n 维特征,即 x=(x1,x2,x3,…,xn),类标签集合含有 k 个类别,即 y=(y1,y2,…,yk) 。给定样本 x′ ,使用Python语言编程,求样本 x′ 属于第一个类别的概率 P(x′∣y0) 。 任务1:根据条件独立假设,计算样本 xx 属于第一个类别的概率。提示:numpy.sum(a) 可实现对数组 a 求和;numpy.where(condition, x, y) 满足条件(condition),输出 x,不满足输出 y 。 测试说明 平台会对你编写的代码进行测试: 测试输入: 无 预期输出: 样本 xx = [0,1,0,1,1] 属于类别 0 的概率为: 0.023134412779181757 开始你的任务吧,祝你成功! # 导入库 import numpy as np # 共 100 个样本,每个样本 x 都包括 5 个特征 np.random.seed(0) x = np.random.randint(0,2,(100, 5)) # 共 100 个样本,每个样本 x 都属于 {0,1} 类别中的一个 np.random.seed(0) y = np.random.randint(0,2,100) # 给定 xx = [0,1,0,1,1] xx = np.array([0,1,0,1,1]) # setx_0 表示属于第一个类别的 x 的集合 setx_0 = x[np.where(y==0)] # 初始化 p_0,p_0 表示 xx 属于类别 0 的概率 p_0 = setx_0.shape[0] / 100 # 任务1:根据条件独立假设,求样本 xx 属于第一个类别的概率 ########## Begin ########## for i in range(5): p_0 = ########## End ########## # 打印结果 print("样本 xx = [0,1,0,1,1] 属于类别 0 的概率为:", p_0)
任务1的代码如下:
```
for i in range(5):
p_0 *= np.sum(setx_0[:, i] == xx[i]) / setx_0.shape[0]
```
其中 `setx_0[:, i] == xx[i]` 表示第 i 维特征值相同的样本数,除以 `setx_0.shape[0]` 得到条件概率。最后将所有条件概率相乘即为样本 xx 属于第一个类别的概率。
阅读全文