Professional Documents
Culture Documents
TrinhThiCuc TH3
TrinhThiCuc TH3
TrinhThiCuc TH3
Hà Nội – 2022
Đề bài: Thực hiện bài toán nhận dạng chữ số bằng thuật toán KNN với dữ liệu cho
trước.
Thông tin về dữ liệu:
a. trainingSet: Thư mục này chứa mười thư mục con được gán nhãn từ 0 đến
9. Mỗi thư mục con chứa hình ảnh tương ứng với nhãn của nó. Tổng cộng,
có 100 hình ảnh trong bộ đào tạo.
b. testingSet: Thư mục này chứa các hình ảnh kiểm thử. Tổng cộng, có 350
hình ảnh trong bộ kiểm thử
Bài làm:
Bước 1: Import các thư viện sẽ sử dụng
# %reset
import cv2
import numpy as np
import matplotlib.pyplot as plt
from sklearn import neighbors
from sklearn.metrics import accuracy_score
import time
import os
import cv2 as cv
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
pathTrain ='dataset\\trainingSet'
filename = os.listdir(pathTrain)
dataTrain = []
labelTrain = []
for i in filename:
labelPathTrain = pathTrain + "\\" + i
listPathIm = os.listdir(labelPathTrain)
for k in listPathIm:
files = labelPathTrain + "\\" + k
image = cv2.imread(files, 0)
image = image.reshape(-1).tolist()
dataTrain.append(image)
labelTrain.append(int(i))
dataTrain = np.array(dataTrain)
labelTrain = np.array(labelTrain)
Kết quả
k = 5
predictY = predict(np.array(dataTrain), np.array(labelTrain), np.array(dataTest),
k)
acc = accuracy_score(y_true= labelTest, y_pred = predictY)
print(" Accurency score is: ", acc)
Bước 4: Kiểm tra bằng việc sử dụng model KNN trong thư viện sklearn
model = KNeighborsClassifier(n_neighbors= 5)
model.fit(dataTrain, labelTrain)
Y_predict = model.predict(dataTest)
acc = accuracy_score(y_true=labelTest, y_pred= Y_predict)
print("Accurency score is: ", acc)