# 利用sklearn KNN实现手写数字识别
import numpy as np
import pandas as pd
from PIL import Image
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split,GridSearchCV
def imgTovector(filename):
img=plt.imread(filename)
img_data=np.array(img)
# Minmax=MinMaxScaler()
# img_union=Minmax.fit_transform(img_data)
img_vector=img_data.reshape(1,-1)
return img_vector
from os import listdir
def collectFiledataset():
img_labels = list()
# 样本数据文件列表
FileList = listdir('knn_num_data')
f = len(FileList)
# 设置初始矩阵
c = 28 * 28
dataSet = np.zeros((5000, c))
for i in range(f):
path = 'knn_num_data/' + FileList[i]
trainingFilelist = listdir(path)
t = len(trainingFilelist)
for j in range(t):
fileNameStr = trainingFilelist[j]
fileStr = fileNam