代码实现
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import seaborn as sns
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
#数字识别
concat_list = []
#目标值
list_label = []
#循环拼接外层文件夹
for i in range(0,10):
path = 'knn_num_data/'+ str(i) + '/' + str(i) + '_'
#循环内层500张照片
for j in range(1,501):
path1 = path + str(j) + '.bmp'
#读取图片
img = plt.imread(path1)
#压缩为1维
img = img.ravel()
df = DataFrame(data=img).T
concat_list.append(df)
#拼接目标值
list_label.append(i)
#合并df
df = pd.concat(concat_list,axis=0)
#重置索引
df = df.reset_index(drop=True)
#数据集 9 * 500个
data = df
#目标值
label = np.array(list_label)
X_train,X_test,y_train,y_test = train_test_split(data,label,test_size=0.1)
knn = KNeighborsClassifier()
knn.fit(X_train,y_train)
knn.score(X_train,y_train)
knn.score(X_test,y_test)
knn.predict(X_test)