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

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

相关推荐

二十岁的编程男神王大...:读博吧兄弟,你这绩点太好了,何必转码,另外哈哈哈真见到有括号标出来985的,这个不标注也知道吧
点赞 评论 收藏
分享
找工作勤劳小蜜蜂:自我描述部分太差,完全看不出想从事什么行业什么岗位,也看不出想在哪个地区发展,这样 会让HR很犹豫,从而把你简历否决掉。现在企业都很注重员工稳定性和专注性,特别对于热爱本行业的员工。 你实习的工作又太传统的it开发(老旧),这部分公司已经趋于被淘汰,新兴的互联网服务业,比如物流,电商,新传媒,游戏开发和传统的It开发有天然区别。不是说传统It开发不行,而是就业岗位太少,基本趋于饱和,很多老骨头还能坚持,不需要新血液。 工作区域(比如长三角,珠三角,成渝)等也是HR考虑的因素之一,也是要你有个坚定的决心。否则去几天,人跑了,HR会被用人单位骂死。
点赞 评论 收藏
分享
评论
点赞
7
分享

创作者周榜

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