一、利用sklearn中自带的手写数据集做KNN分类。它包含了1797幅数字图像,每幅图像大小是8*8像素。
1、数据加载和数据探索
from sklearn.datasets import load_digits
digits = load_digits() #加载数据
data = digits.data
2、训练集和测试集的划分
1) 因为没有专门的训练集和测试集,需要对数据集进行划分,划分成训练集和测试集。训练集是图像,每个图像都是8*8的矩阵,所以不需要对它进行特征选择,将全部的图像数据作为特征矩阵。
from sklearn.model_selection import train_test_split
train_x,test_x,train_y,test_y = train_test_split(data,digits.target,test_size = 0.3,random_state = 33)
2) KNN 算法和距离定义相关,我们需要对数据进行规范化处理,采用Z-score规范化。