📅  最后修改于: 2023-12-03 15:08:08.009000             🧑  作者: Mango
分类器是机器学习中常用的工具之一,用于将输入的数据分成不同的类别。常见的分类器有基于规则的分类器、决策树、朴素贝叶斯、支持向量机等。本文主要介绍基于规则的分类器。
基于规则的分类器,顾名思义,是依赖于人工规则制定的分类器。对于每一个输入数据,基于规则的分类器依次执行每一个规则,判断该数据是否符合该规则的要求,从而将其分类,最终给出输出结果。
基于规则的分类器具有以下特点:
我们选取一个二分类的情境,用基于规则的分类器识别一种水果——苹果。
首先,我们需要收集一些样本数据,其中既包括属于苹果的样本,也包括不属于苹果的样本。样本特征包括:红色程度、圆形度、大小。
# 特征分别为红色程度、圆形度、大小
apple_samples = [
[0.8, 0.9, 0.5],
[0.7, 0.8, 0.4],
[0.6, 0.7, 0.3],
[0.5, 0.6, 0.2],
[0.3, 0.3, 0.1]
]
non_apple_samples = [
[0.3, 0.4, 0.2],
[0.2, 0.3, 0.1],
[0.4, 0.5, 0.3],
[0.1, 0.2, 0.05],
[0.9, 0.8, 0.4]
]
接下来,我们需要手动制定分类规则,对于每一个苹果样本,我们设置三个规则:
对于以上三条规则,只要满足其中任意一条,我们即判定该样本为属于苹果。
def is_apple(sample):
"""
判断样本是否属于苹果。
:param sample: 样本的特征列表。
:return: True if 是苹果,False if 非苹果
"""
return sample[0] > 0.5 or sample[1] > 0.5 or sample[2] > 0.3
最后,我们可以对新的样本进行分类:
# 给定的样本
test_sample = [0.6, 0.5, 0.2]
if is_apple(test_sample):
print("这是一个苹果")
else:
print("这不是一个苹果")
输出结果为:
这是一个苹果
基于规则的分类器是一种简单易用且可解释性强的分类器,适合解决一些小型、简单的分类问题。但对于大规模高维数据的分类,基于规则的分类器的规模呈指数级增长,难以应用。