k近邻和朴素贝叶斯分类算法详解
1. 理解k近邻算法(k - NN)
k近邻算法(k - NN)通过距离来选择与待分类观测值最接近的用户定义数量的观测值(即邻居)。在k - NN中,任何属性(包括目标属性)都可以是分类属性或数值属性。在分类时,给定观测值的分类将通过邻居的多数投票来确定,即k个最接近观测值中最常见的类别。
例如,在一个简单的示例中,有灰色轮廓的圆圈属于两个类别值:实线灰线和虚线灰线。有一个填充的灰色圆圈,其类别未知。当k取不同值时,填充灰色圆圈的分类会发生变化:
- 当k = 1时,填充圆圈的类别将是虚线灰线类别,因为其唯一邻居属于该类别。
- 当k = 3时,填充圆圈将被分类为实线灰线类别,因为三个邻居中有两个属于该类别。
- 当k = 5时,填充圆圈将被分类为虚线灰线类别,因为五个邻居中有三个属于该类别。
邻居的确定基于距离度量。常见的距离度量包括欧几里得距离和曼哈顿距离:
- 欧几里得距离是两个观测值在每个属性上差值平方和的平方根,公式为:(此处省略公式,原文未给出具体公式形式)
- 曼哈顿距离是两个观测值在每个属性上绝对差值的总和,公式为:(此处省略公式,原文未给出具体公式形式)
在本文中,我们将使用最常见的欧几里得距离。
2. 使用R手动实现k - NN分类
我们将使用鸢尾花数据集(iris)来手动实现k - NN分类,并使用 knn() 函数验证我们的结果。具体步骤如下:
1. 计算每个观测值之间的欧几里得距离,并得到完整的距离矩阵:
超级会员免费看
订阅专栏 解锁全文
12

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



