Python学习第82天:k最近邻算法(kNN) Python学习100天(从入门到精通系列文章)文章目录Python学习100天(从入门到精通系列文章)前言一、k最近邻算法概述1.1 什么是 kNN 算法1.2 kNN 的两个关键问题二、距离的度量2.1 闵可夫斯基距离2.2 三种常见的闵氏距离三、鸢尾花数据集介绍3.1 数据集背景3.2 加载数据集3.3 划分训练集和测试集四、kNN 分类的实现4.1 基于 NumPy 手写 kNN4.2 基于 scikit-learn 实现五、模型评估5.1 混淆矩阵5.2 核心评估指标5.3 ROC 曲线与 AUC5.4 使用 scikit-learn 输出评估报告六、参数调优6.1 KNeighborsClassifier 的重要参数6.2 网格搜索与交叉验证七、kNN 回归7.1 回归原理7.2 实战:月收入预测网购支出八、常见错误与避坑指南8.1 错误一:k 值选择不当8.2 错误二:未做特征标准化8.3 错误三:忽略类别不平衡参考链接总结前言在上一篇文章中,我们初步认识了机器学习的基本概念和分类。今天,我们将深入探讨机器学习中最经典、最直观的分类算法之一——k最近邻算法(kNN)。kNN 不需要显式的训练过程,它的核心思想只有八个字:“近朱者赤,近墨者黑”。本文将从距离度量、数据集处理、算法实现到模型评估,带你全面掌握 kNN 算法,适合有 Python 基础、正在入门机器学习的读者。一、k最近邻算法概述1.1 什么是 kNN 算法k 最近邻算法(k-Nearest Neighbors,简称 kNN)是一种用于分类和回归的非参数统计方法,由美国统计学家伊芙琳·费克斯和小约瑟夫·霍奇斯于 1951 年提出。kNN 算法的核心原理非常简单:从历史数据中找到k \small{k}k