当前位置: 首页 > article >正文

机器学习:二分类和多分类

1. 二分类(Binary Classification)

定义

二分类是指将输入样本分成两个互斥的类别。例如:

  • 邮件 spam 或不是 spam。
  • 病人是有病或健康。
  • 物品是正品或假货。
实现方法

二分类任务可以通过多种算法实现,包括:

  • 逻辑回归(Logistic Regression):通过sigmoid函数将输出值映射到0和1之间,用于概率预测。
  • 决策树(Decision Tree):基于特征划分数据空间,适用于分类问题。
  • 支持向量机(SVM):通过寻找最大间隔超平面来进行分类。
  • 神经网络:使用多层感知机或卷积神经网络等模型进行分类。
评估指标
  • 准确率(Accuracy):预测正确的样本数占总样本的比例。
  • 精确率(Precision):所有被预测为正类的样本中,实际是正类的比例。
  • 召回率(Recall):所有实际是正类的样本中,被正确预测的比例。
  • F1-score:精确率和召回率的调和平均数,综合衡量模型性能。

2. 多分类(Multi-Class Classification)

定义

多分类是指将输入样本分成三个或更多互斥类别。例如:

  • 图像分类:识别图片中的物体(如猫、狗、鸟等)。
  • 文本分类:将文本归类到多个主题类别中。
实现方法

多分类任务可以通过以下两种方式实现:

  1. One-vs-Rest (OvR) 或 One-vs-One (OvO)

    • One-vs-Rest:将多分类问题分解为多个二分类问题。对于每个类别,将其视为正类,其余类别视为负类,训练一个二分类模型。预测时,选择概率最大的类别。
    • One-vs-One:将所有类别两两配对,训练一个二分类模型。预测时,通过投票或概率加权确定最终类别。
  2. 专门的多分类算法

    • Softmax 回归:用于输出多个类别的概率分布。
    • 决策树/随机森林:可以直接处理多分类问题。
    • 神经网络:使用 Softmax 激活函数进行多分类预测。
评估指标

与二分类类似,多分类任务中也可以计算精确率、召回率和 F1-score,但这些指标通常需要对每个类别分别计算,并取平均值(如宏均值或微均值)。


3. 二分类与多分类的关系

  • 二分类是多分类的特例:可以认为二分类任务是多分类任务中类别数为2的情况。

  • 实现方法的共性

    • 大多数二分类算法(如逻辑回归、决策树等)可以直接扩展到多分类任务,通过调整输出类别数量或使用专门的多分类策略。
    • 神经网络模型通常需要调整输出层的神经元数量以适应多分类任务。
  • 实现方法的区别

    • 多分类任务需要处理多个类别之间的关系(如类别不平衡问题),而二分类任务不需要考虑这一点。
    • 在评估指标方面,多分类可能需要分别计算每个类别的性能,并综合这些结果。

实例:使用二分类和多分类评估和预测花的种类

案例背景

假设我们有一个数据集包含不同类型的花的特征,包括花瓣长度、花瓣宽度以及花萼长度和花萼宽度。目标是根据这些特征来预测花的种类。

由于有三种花的类型(Iris setosa, Iris versicolor, 和 Iris virginica),这是一个多分类任务。然而,我们可以将问题简化为二分类问题,例如预测是否属于 Iris virginica。

数据集描述
  • 样本数量:150个样本(50个每种花)
  • 特征变量
    • 花瓣长度 (Petal Length)
    • 花瓣宽度 (Petal Width)
    • 花萼长度 (Sepal Length)
    • 花萼宽度 (Sepal Width)
  • 目标变量:花的种类(Iris setosa, Iris versicolor, Iris virginica)

二分类:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing 

http://www.kler.cn/a/547833.html

相关文章:

  • 解锁 DeepSeek 超强能力:蓝耘智算平台搭建实战秘籍
  • k8s集群离线安装kuberay operator
  • 以若依移动端版为基础,实现uniapp的flowable流程管理
  • 【第7章:注意力机制与Transformer模型—7.3 注意力机制与Transformer模型的优化与改进策略】
  • sql sqlserver的特殊函数COALESCE和PIVOT的用法分析
  • Jenkins+maven+gitlab+shell 实现项目自动化部署
  • Sentinel 源码深度解析
  • resultType,jdbcType,parameterType区别
  • 大数据学习(46) - Flink按键分区处理函数
  • Java版PDF拼接
  • 结合实际讲NR系列5——RRCResume
  • 分享一个使用的音频裁剪chrome扩展-Ringtone Maker
  • 【css实现边框圆角渐变效果】
  • 服务器安全——日志分析和扫描
  • 力扣19题——删除链表的倒数第 N 个结点
  • 股票自动化交易
  • 【20250215】二叉树:144.二叉树的前序遍历
  • Python网络编程
  • 无人机航迹规划: 梦境优化算法(Dream Optimization Algorithm,DOA)求解无人机路径规划MATLAB
  • python学opencv|读取图像(七十)使用cv2.HoughCircles()函数实现图像中的霍夫圆形检测