机器学习中用Python模拟K近邻算法的实现与应用

作者: 曹光忠

机器学习中用Python模拟K近邻算法的实现与应用0

关键词:模拟;K近邻算法;机器学习

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)21-0036-04

K近邻算法是机器学习的入门算法,因为其思想极度简单,应用数学知识少,效果好,可以解释机器学习算法使用过程中很多细节问题,更完整刻画机器学习的流程,所以用此算法来进行机器学习的入门研究和学习比较合适。

1 K 近邻算法

1.1 K 近邻算法简介

K近邻算法[1-5]是一种基于实例的学习,或者说是懒惰学习的一种方法。其核心思想是,如果一个样本在特征空间中的k 个最相邻的样本中的大多数属于某一个类别,那么该样本也属于这个类别。

K近邻算法的主要步骤有:

1) 准备数据集:收集包含特征与对应类别标签的数据集,并进行预处理,如数据清洗、归一化等。

2) 选择k 值:选择一个合适的k 值,即确定最近邻居的个数。

3) 选择距离度量方法:确定用于比较样本之间相似性的度量方法,如欧几里得距离、曼哈顿距离等。

4) 确定最近邻居:选择与待分类样本距离最近的k 个训练样本。

5) 预测:对于分类任务,查看k 个最近邻居中最常见的类别,作为预测结果。对于回归任务,预测结果可以是k 个最近邻居的平均值或加权平均值。

x= [8.093607318, 3.365731514],其中,raw_data_x表示的是平面直角坐标系上的10个样本点,raw_y表示这些点的标记(分类),让根据10个样本点判断或预测新的样例点x属于哪个分类,用Python语言的数据可视化[2]功能把它们画到坐标系里并用不同的颜色来标记,如图1所示。

在图1中,要根据分成2类(0类用红色表示,1类用蓝色表示)的10个样本点,判断绿色的新样例点属于哪一类,这时我们还要指定一个k 值,这个k 值是指取离绿色点最近的k 个点作为判断的依据,如图1,假如取k=6,取离新样例点(标记为绿色)最近的6个点,将取到5个蓝色点和1个离得最近的红色点,因为蓝色点数量多于红色点,将要进行投票表决,经过投票此算法会认为绿色点属于蓝色1类点。一般情况下k值选取得不同,得出的结果也可能会不一样。

经典小说推荐

杂志订阅