第三章
k-近邻算法
分类问题
分类问题
• 爱情片、剧情片、喜剧片、家庭片、伦理片、
文艺片、音乐片、歌舞片、动漫片、
西部片、武侠片、古装片、动作片、
恐怖片、惊悚片、冒险片、犯罪片、悬疑片、
记录片、战争片、历史片、传记片、体育片、
科幻片、魔幻片、奇幻片
Supervised learning
《统计学习方法》是机器学习领域的一本经典教材,由李航老师撰写。在第二版中,李航老师深入浅出地介绍了各种机器学习算法,包括我们今天要讨论的k-近邻(k-Nearest Neighbor,简称k-NN)算法。k-NN算法是一种非常基础且实用的监督学习方法,常用于分类和回归问题。它基于实例学习,通过查找训练集中与未知样本最接近的k个已知样本,来预测未知样本的类别或数值。 k-NN算法的核心思想是“近朱者赤,近墨者黑”,即认为一个样本的属性值应该与其周围最邻近的样本相似。在实际应用中,我们需要确定合适的k值,这通常是一个较小的整数,如3、5或7。k值的选择直接影响到算法的性能,较小的k值可能导致过拟合,而较大的k值则可能导致欠拟合。选择k值时,通常会通过交叉验证来找到最优的k值。 k-NN算法的步骤如下: 1. **数据预处理**:需要对数据进行预处理,包括数据清洗、缺失值处理、异常值处理和特征缩放等。特征缩放尤其重要,因为不同的特征尺度可能会影响距离计算,使得某些特征在计算中占据主导地位。 2. **计算距离**:选择合适的距离度量方法,如欧氏距离、曼哈顿距离、切比雪夫距离或余弦相似度等,来衡量样本之间的相似性。距离越小,说明两个样本越相似。 3. **确定k个最近邻**:根据所选的距离度量,找出测试样本在训练集中的k个最近邻。 4. **预测**:对于分类问题,通常采用多数表决原则,即k个最近邻中出现次数最多的类别作为预测结果;对于回归问题,可以取k个邻居的平均值或中位数作为预测值。 5. **评估和调优**:通过交叉验证、准确率、精确率、召回率等指标评估模型性能,并调整参数k或其他超参数以优化模型。 k-NN算法的优点包括: - 算法简单,易于理解。 - 不需要对数据做任何假设,如线性可分性等。 - 可以处理多分类问题,适用于非线性可分的数据。 但同时也存在一些缺点: - 计算复杂度高,特别是在大数据集上,需要计算每个测试样本与所有训练样本的距离。 - 对于大规模数据集,存储需求较大。 - k值的选择和距离度量对结果有很大影响,需要谨慎选择。 - 对新类别的适应性差,因为需要有足够多的同类训练样本。 k-NN算法虽然简单,但在许多实际问题中表现良好。然而,由于其计算复杂性和对数据规模的敏感性,通常会在其他更复杂的模型如决策树、支持向量机或神经网络之前被考虑。在实际应用中,k-NN经常与其他技术结合使用,以提高预测性能。