一、实验目的及要求
1、理解监督学习,掌握 KNN 算法
2、利用 sklearn.neighbors。KNeighborsClassifier 分类器实现对学生成绩数据进行分类。
3、并对交叉验证涉及到的概念及其意义进行描述分析。
二、实验设备(环境)及要求
硬件:PC(PII 以上,256M 以上内存);
软件:Windows XP 操作系统或更高版本、jupyter 软件。
实验学时:2 学时
其他要求:完成验证题目和设计题目;完成实验报告
三、实验内容与步骤
目标:已知学生成绩有 100 个样本数据, 挑选其中的 80%作为训练数据集进行学习,
利用建立的模型对剩余的 20%的数据进行预测分类。利用交叉验证得分对该模型进行评
价。
1. KNN 算法
K 近邻(k-Nearest Neighbor,KNN)分类算法的核心思想是如果一个样本在特征空间中
的 k 个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于
这个类别。KNN 算法可用于多分类,KNN 算法不仅可以用于分类,还可以用于回归。通
过找出一个样本的 k 个最近邻居,将这些邻居的属性的平均值赋给该样本,作为预测值。
KNeighborsClassifier 在 scikit-learn 在 sklearn.neighbors 包之中。
在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中
对应的特征进行相互比较,找到训练集中与之最为相似的前 K 个数据,则该测试数据对应
的类别就是 K 个数据中出现次数最多的那个分类,其算法的描述为:
1)计算测试数据与各个训练数据之间的距离;
2)按照距离的递增关系进行排序;
3)选取距离最小的 K 个点;
4)确定前 K 个点所在类别的出现频率;
5)返回前 K 个点中出现频率最高的类别作为测试数据的预测分类。
2、实验过程
(1) 使用算法: KNN 算法
(2) 交叉验证:将已经划分好的训练集和测试集中的训练集进行再次划分,把它划分为训
练集和验证集。交叉验证用于评估模型的预测性能,尤其是训练好的模型在新数据上