机器学习:二分类和多分类
1. 二分类(Binary Classification)
定义
二分类是指将输入样本分成两个互斥的类别。例如:
- 邮件 spam 或不是 spam。
- 病人是有病或健康。
- 物品是正品或假货。
实现方法
二分类任务可以通过多种算法实现,包括:
- 逻辑回归(Logistic Regression):通过sigmoid函数将输出值映射到0和1之间,用于概率预测。
- 决策树(Decision Tree):基于特征划分数据空间,适用于分类问题。
- 支持向量机(SVM):通过寻找最大间隔超平面来进行分类。
- 神经网络:使用多层感知机或卷积神经网络等模型进行分类。
评估指标
- 准确率(Accuracy):预测正确的样本数占总样本的比例。
- 精确率(Precision):所有被预测为正类的样本中,实际是正类的比例。
- 召回率(Recall):所有实际是正类的样本中,被正确预测的比例。
- F1-score:精确率和召回率的调和平均数,综合衡量模型性能。
2. 多分类(Multi-Class Classification)
定义
多分类是指将输入样本分成三个或更多互斥类别。例如:
- 图像分类:识别图片中的物体(如猫、狗、鸟等)。
- 文本分类:将文本归类到多个主题类别中。
实现方法
多分类任务可以通过以下两种方式实现:
-
One-vs-Rest (OvR) 或 One-vs-One (OvO):
- One-vs-Rest:将多分类问题分解为多个二分类问题。对于每个类别,将其视为正类,其余类别视为负类,训练一个二分类模型。预测时,选择概率最大的类别。
- One-vs-One:将所有类别两两配对,训练一个二分类模型。预测时,通过投票或概率加权确定最终类别。
-
专门的多分类算法:
- 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