CSP 202006-1 线性分类器 python

简介: CSP 202006-1 线性分类器 python

CSP 202006-1 线性分类器 python

题目描述

f9db61d990e6489c85b0d34dbe826043.png

d3a13b1d335749fd917f9b9284479cb9.png

4d736f74d6ba4d54a2bf096a2ee9afbb.png



思路


简单来说,就是判断是否能够二分类两条直线,一般来说,如果在直线两侧,分别输入两类,一个是大于0,一个是小于0,有个符号的变换


在这里,如果每次都要判断两次符号,分别计算就比较麻烦,我们可以设置一个标志,就是说如果A点是在直线上方,那么带入就是大于0,A的标志为1,B的标志就为-1,这样子就是得到直线f乘上标志位flag都是大于0的,如果每次都大于0,就说明我们是分对了。


但是我万万没想到,这样只能拿60分,因为还有一个任务,我们要判断一下,A和B是不是都出现过,如果只有一类样本,我们也是输出No


所以最后我们只需要判断f*flag < 0,小于说明没分好类,直接就break退出了


代码


#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# @File    :   202006-1.py
# @Time    :   2021/11/20 12:24:38
# @Author  :   DKJ
# @Contact :   1016617094@qq.com
# @Software:   VScode
n,m = map(int,input().split(' '))
data = []
for i in range(n):
    # 将输入数据压入data
    data.append(list(input().split(' ')))
def f(z,x,y,X,Y):
    # 得到直线方程
    return z + x*X + y*Y
for i in range(m):
    key = {}
    count = {}
    z,x,y = map(int,input().split())
    if f(z,x,y,int(data[0][0]),int(data[0][1])) > 0:
        key['A'] = 1
        key['B'] = -1
    else:
        key['A'] = -1
        key['B'] = 1
    flag = 1
    for j in range(1,n):
        # 如果是正确分类的话,满足f*key > 0,key是进行符号变换的
        if f(z,x,y,int(data[j][0]),int(data[j][1])) * key[data[j][2]] < 0:
            flag = 0
            break
        else:
            count[key[data[j][2]]] = 1
    # 子任务,A和B都要存在,如果不存在也是No
    if 'A' and 'B' not in count.keys():
        flag = 0
    if flag:
        print('Yes')
    else:
        print('No')


相关文章
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
|
1月前
|
Python
Python中的贝叶斯分类器以及如何使用Sklearn库实现它。
【4月更文挑战第23天】Sklearn库支持多种贝叶斯分类器,如高斯朴素贝叶斯、多项式朴素贝叶斯和伯努利朴素贝叶斯。以下是一个使用GaussianNB的简要示例:导入必要库,加载鸢尾花数据集,将其划分为训练集和测试集,创建高斯朴素贝叶斯分类器,训练模型,预测并评估(通过准确率)模型性能。
30 0
|
1月前
|
机器学习/深度学习 人工智能 算法
使用Python和Scikit-learn库来实现一个基本的K-最近邻(KNN)分类器
使用Python和Scikit-learn库来实现一个基本的K-最近邻(KNN)分类器
|
1月前
|
机器学习/深度学习 数据采集 算法
GEE python——基于多源遥感影像和随机森林分类器进行洪水概率预测
GEE python——基于多源遥感影像和随机森林分类器进行洪水概率预测
72 0
|
1月前
|
机器学习/深度学习 自然语言处理 JavaScript
GEE机器学习——最大熵分类器案例分析(JavaScript和python代码)
GEE机器学习——最大熵分类器案例分析(JavaScript和python代码)
68 0
|
1月前
|
机器学习/深度学习 数据采集 自然语言处理
使用Python实现一个简单的垃圾邮件分类器
使用Python实现一个简单的垃圾邮件分类器
103 0
|
1月前
|
机器学习/深度学习 Python
Python利用逻辑回归分类器对乳腺肿瘤进行良性/恶性预测实战(超详细 附源码)
Python利用逻辑回归分类器对乳腺肿瘤进行良性/恶性预测实战(超详细 附源码)
56 0
|
1月前
|
机器学习/深度学习 算法 Python
【Python机器学习】KNN进行水果分类和分类器实战(附源码和数据集)
【Python机器学习】KNN进行水果分类和分类器实战(附源码和数据集)
447 1
|
7月前
|
机器学习/深度学习 人工智能 算法
机器学习实战:用Python和Scikit-Learn构建分类器
机器学习在当今科技领域发挥着越来越重要的作用,而构建分类器是其中的一项关键任务。本文将带你进入机器学习的世界,通过使用Python编程语言和Scikit-Learn库,实际动手构建一个分类器。我们将探讨机器学习的基本概念、数据准备、模型训练以及评估分类器性能的方法。
|
机器学习/深度学习 Python
【机器学习】贝叶斯分类器代码实现(python+sklearn)
【机器学习】贝叶斯分类器代码实现(python+sklearn)
235 0