请你在仅使用 numpy pandas的前提下,手写实现高斯朴素贝叶斯(Gaussian Naive Bayes,GNB),并对给定测试样本输出类别预测。具体流程: 1. 读取数据 • train 字段:二维列表,每行最后一列为类别标签 y∈{0,1},其余为数值特征 • test 字段:二维列表,仅包含与训练集同维度的特征 2. 参数估计 • 对每个类别 c 计算先验 • 对每个特征计算类条件独立假设下的 均值 与 方差 (总体方差 ddof=0;若方差为 0,令 ) 3. 预测 • 使用对数后验: \Bigl[-\tfrac12\log(2\pi\sigma_{cj}^2)-\frac{(x_j-\mu_{cj})^2}{2\sigma_{cj}^2}\Bigr]" • 取 作为预测标签 4. 结果输出 • 预测值保留整数 01,以 JSON 数组形式一次性输出,顺序与输入 test 保持一致
输入描述:
标准输入为 一行 JSON:    •    n 行训练样本,m 维特征,最后一列为标签    •    所有值均为浮点数 整数,无额外空行


输出描述:
标准输出仅含一行:即测试集中每个样本的预测标签(整数),使用单行 JSON 数组表示。
示例1

输入

{"train": [[1,1,0],[1.1,0.9,0],[4,4,1],[4.2,3.8,1]], "test": [[1,1],[4,4]]}

输出

[0, 1]

备注:
1. 流程无需随机数;若实现中使用随机过程,必须固定为 np.random.seed(42)。2. 为确保通过全部测试用例,请使用仅Numpy与Pandas库实现本题。3. 计算方差使用总体方差 (np.var(..., ddof=0))。4. 方差为 0 的特征设为 1e-9 防止除零。
加载中...