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')


相关文章
|
3月前
|
机器学习/深度学习 数据采集 人工智能
使用Python实现简单的机器学习分类器
【8月更文挑战第37天】本文将引导读者了解如何利用Python编程语言构建一个简单的机器学习分类器。我们将从基础概念出发,通过代码示例逐步深入,探索数据预处理、模型选择、训练和评估过程。文章旨在为初学者提供一条清晰的学习路径,帮助他们理解并实现基本的机器学习任务。
|
4月前
|
机器学习/深度学习 人工智能 开发者
使用Python实现简单的机器学习分类器
【8月更文挑战第31天】在这篇文章中,我们将探索如何使用Python来创建一个简单的机器学习分类器。通过使用scikit-learn库,我们可以快速构建和训练模型,而无需深入了解复杂的数学原理。我们将从数据准备开始,逐步介绍如何选择合适的模型、训练模型以及评估模型的性能。最后,我们将展示如何将训练好的模型应用于新数据的预测。无论你是机器学习的初学者还是有一定经验的开发者,这篇文章都将为你提供一个实用的指南,帮助你入门并理解基本的机器学习概念。
|
4月前
|
机器学习/深度学习 人工智能 算法
如何使用Scikit-learn在Python中构建一个机器学习分类器
如何使用Scikit-learn在Python中构建一个机器学习分类器
51 3
|
4月前
|
算法 Python
在线问诊 Python、FastAPI、Neo4j — 构建问题分类器
在线问诊 Python、FastAPI、Neo4j — 构建问题分类器
51 0
|
6月前
|
机器学习/深度学习 监控 算法框架/工具
用Python实现简单的图像分类器
用Python实现简单的图像分类器
81 0
|
7月前
|
机器学习/深度学习 数据采集 数据可视化
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
Python众筹项目结果预测:优化后的随机森林分类器可视化|数据代码分享
|
7月前
|
Python
Python中的贝叶斯分类器以及如何使用Sklearn库实现它。
【4月更文挑战第23天】Sklearn库支持多种贝叶斯分类器,如高斯朴素贝叶斯、多项式朴素贝叶斯和伯努利朴素贝叶斯。以下是一个使用GaussianNB的简要示例:导入必要库,加载鸢尾花数据集,将其划分为训练集和测试集,创建高斯朴素贝叶斯分类器,训练模型,预测并评估(通过准确率)模型性能。
86 0
|
7月前
|
机器学习/深度学习 算法 TensorFlow
使用Python实现基于深度学习的图像分类器
本文介绍了如何使用Python编写一个基于深度学习的图像分类器。我们将使用TensorFlow框架和Keras库来建立模型,并使用MNIST手写数字数据集进行训练和测试。通过本文,您将了解到如何设计和训练一个卷积神经网络(CNN),并将其应用于图像分类任务中。
|
7月前
|
机器学习/深度学习 人工智能 算法
使用Python和Scikit-learn库来实现一个基本的K-最近邻(KNN)分类器
使用Python和Scikit-learn库来实现一个基本的K-最近邻(KNN)分类器
112 0
|
7月前
|
机器学习/深度学习 数据采集 算法
GEE python——基于多源遥感影像和随机森林分类器进行洪水概率预测
GEE python——基于多源遥感影像和随机森林分类器进行洪水概率预测
190 0