k近邻与朴素贝叶斯分类算法详解
在数据分类领域,k近邻(k-NN)和朴素贝叶斯是两种常用且有效的算法。本文将深入探讨这两种算法的原理、实现及应用。
1. 理解k近邻算法(k-NN)
k近邻算法的核心思想是基于距离来选择与待分类观测值最近的k个邻居,并通过多数表决来确定其类别。在聚类分析中,我们曾了解到距离矩阵在k-means聚类中的应用,而在k-NN中,距离同样起着关键作用。在k-NN算法中,任何属性都可以是分类或数值型的,包括目标属性。为了便于讨论,这里主要关注分类目标属性(即类别属性)。
例如,有一个填充的灰色圆圈,其类别未知。当k = 1时,其邻居的类别为虚线灰线,所以该填充圆圈会被分类为虚线灰线类别;当k = 3时,三个邻居中有两个属于实线灰线类别,因此该填充圆圈会被分类为实线灰线类别;当k = 5时,五个邻居中有三个属于虚线灰线类别,所以该填充圆圈会被分类为虚线灰线类别。
邻居的确定依赖于距离度量。常见的距离度量包括欧几里得距离和曼哈顿距离。欧几里得距离是两个观测值在每个属性上差值平方和的平方根,公式为:$d_{euclidean}=\sqrt{\sum_{i = 1}^{n}(x_{i}-y_{i})^{2}}$;曼哈顿距离是两个观测值在每个属性上绝对差值的和,公式为:$d_{manhattan}=\sum_{i = 1}^{n}|x_{i}-y_{i}|$。在本文中,我们将使用最常见的欧几里得距离。
2. 使用R语言手动实现k-NN算法
为了更好地理解k-NN算法,我们将使用鸢尾花(iris)数据集手动进行分类,并通过 knn() 函数验证结果。具体步骤如下:
1
超级会员免费看
订阅专栏 解锁全文
39

被折叠的 条评论
为什么被折叠?



