第四范式,秋招笔试,贝叶斯分类

import math

if __name__ == "__main__":
    m = int(input())
    train = []
    for i in range(m):
        t = [int(x) for x in input().strip().split(' ')]
        train.append(t)

    # 计算先验概率
    py_ = []
    label = [t[-1] for t in train]
    py_1 = sum(label) / m
    py_0 = 1 - py_1
    py_.append(py_0)
    py_.append(py_1)

    # 计算似然函数
    py = []
    for c in range(2):
        t1 = [t[0] for t in train if t[-1] == c]
        t2 = [t[1] for t in train if t[-1] == c]
        t3 = [t[2] for t in train if t[-1] == c]
        t4 = [t[3] for t in train if t[-1] == c]
        p_t1 = []
        for i in range(3):
            p = len([x for x in t1 if x == i+1]) / m
            if p == 0:
                p_t1.append(0.0001)
                continue
            p_t1.append(p)
        p_t2 = []
        for i in range(3):
            p = len([x for x in t2 if x == i+1]) / m
            if p == 0:
                p_t1.append(0.0001)
                continue
            p_t2.append(p)
        p_t3 = []
        for i in range(2):
            p = len([x for x in t3 if x == i]) / m
            if p == 0:
                p_t1.append(0.0001)
                continue
            p_t3.append(p)
        p_t4 = []
        for i in range(2):
            p = len([x for x in t4 if x == i]) / m
            if p == 0:
                p_t1.append(0.0001)
                continue
            p_t4.append(p)
        py.append((p_t1, p_t2, p_t3, p_t4))

    # 测试阶段
    n = int(input())
    res = []
    # gamma = 0.00001
    for i in range(n):
        test = [int(x) for x in input().strip().split(' ')]
        ans = []
        for c in range(2):
            p_t1, p_t2, p_t3, p_t4 = py[c]
            pt = math.log(p_t1[test[0]-1]) + math.log(p_t2[test[1]-1]) + math.log(p_t3[test[2]]) + math.log(p_t4[test[3]]) + math.log(py_[c])
            ans.append(pt)
        if ans[0] > ans[1]:
            res.append(0)
        else:
            res.append(1)
    res1 = [str(x) for x in res]
    print(' '.join(res1))

#笔试题目##第四范式#
全部评论
有人是完全平方数和求矩阵1的面积的吗
点赞 回复 分享
发布于 2019-09-16 23:06
能过多少?
点赞 回复 分享
发布于 2019-09-16 22:53
不是不能导入包吗?
点赞 回复 分享
发布于 2019-09-16 21:23

相关推荐

不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
苍蓝星上艾露:给它们能的,一群dinner牛马挥刀向更弱者罢了。我写的开源求职AI co-pilot工具,优化你的简历,找到你匹配的岗位,定制你的简历,并让你做好面试准备https://github.com/weicanie/prisma-ai
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
评论
点赞
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务