Tải bản đầy đủ (.docx) (16 trang)

TIỂU LUẬN học PHẦN KHAI PHÁ dữ LIỆU tên đề tài tìm HIỂU về THUẬT TOÁN KNN k NEAREST NEIGHBOR CLASSIFICATION và ỨNG DỤNG vào xử lí ẢNH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (997.63 KB, 16 trang )

TRƯỜNG ĐẠI HỌC SÀI GỊN
KHOA CƠNG NGHỆ THƠNG TIN

TIỂU LUẬN HỌC PHẦN KHAI PHÁ DỮ LIỆU
TÊN ĐỀ TÀI: TÌM HIỂU VỀ THUẬT TOÁN KNN: K-NEAREST
NEIGHBOR CLASSIFICATION VÀ ỨNG DỤNG VÀO XỬ LÍ ẢNH

Họ tên thành viên trong nhóm:
LÊ THANH HUY

-3118410149

GIÁO VIÊN HƯỚNG DẪN:

TS.ĐINH THỊ THU HƯƠNG

TP. Hồ Chí Minh, ngày 8 tháng 5 năm 2022


Phân công
Stt
1
2

Thành viên Nhiệm vụ
Lê Thanh
Khảo sát,
Huy
thiết kế, viết
báo cáo
Khảo sát,


Phân tích

Tỷ lệ
60%
40%


Mục lục
PHẦN 1: TỔNG QUAN................................................................................................................4
1.1.Lý do chọn đề tài:................................................................................................................4
1.2.Lịch sử nghiên cứu:.............................................................................................................4
1.2.1. Dự đoán tuổi của bào ngư:..........................................................................................4
1.2.2. Sử dụng các thuật toán KNN để xác định người nhận của chương trình học bổng
Smart Indonesia:....................................................................................................................4
PHẦN 2: CƠ SỞ LÝ THUYẾT....................................................................................................5
2.1. Khai phá dữ liệu là gì:........................................................................................................5
2.2. Các giai đoạn khai phá dữ liệu:.........................................................................................6
2.3. Các bài toán khai phá dữ liệu cơ bản:..............................................................................7
2.3.1.Bài toán khai thác các tập phổ biến:...........................................................................7
2.3.2 Phân lớp và Dự báo :....................................................................................................8
2.4.Thuật toán K-NEAREST NEIGHBOR CLASSIFICATION:.........................................8
2.4.1.Ý tưởng:.........................................................................................................................8
2.4.2.Lưu đồ giải thuật:.........................................................................................................9
2.4.3.Thuật toán:..................................................................................................................10
PHẦN 3: MỘT ỨNG DỤNG KHAI PHÁ DỮ LIỆU:..............................................................11
3.1. Bài toán:.............................................................................................................................11
3.2.Thực hiện:...........................................................................................................................11
3.3.Kết quả :.............................................................................................................................13
3.3.1.Ý nghĩa của ứng dụng:...............................................................................................13
3.3.2.Ưu nhược điểm và hướng phát triển:.......................................................................13



PHẦN 1: TỔNG QUAN
1.1.Lý do chọn đề tài:
Những năm gần đây, AI nổi lên như một cuộc cách mạng công nghiệp lần thứ tư.
Trí tuệ nhân tạo có thể được định nghĩa như một nghành của khoa học máy tính
liên quan đến việc tự động hóa các hành vi thơng minh. Trí tuệ nhân tạo là một bộ
phận của khoa học máy tính và do đó nó phải được đặt trên những ngun lí lý
thuyết vững chắc, có khả năng ứng dụng được trong lĩnh vực này
Theo đà phát triển của cơng nghệ, ứng dụng trí tuệ nhân tạo ln là xu hướng công
nghệ tương lai mà các hãng công nghệ trên tồn thế giới đua nhau sáng tạo, nó là
nền tảng cốt lõi của cuộc cách mạng công nghệ 4.0.
Xu hướng phát triển công nghệ thông tin ngày càng tăng, song song với nó lượng
dữ liệu được sinh ra ngày càng lớn. Vì vậy nhu cầu để xử lý dữ liệu cũng lớn hơn,
Machine Learning đang góp phần giải quyết các vấn đề này. Một trong những thuật
toán thường được dùng trong Machine Learning là thuật toán K-NEAREST
NEIGHBOR
Ứng dụng của thuật toán này được sử dụng rất nhiều và rất rộng rãi trong các bài
tốn phân lớp.Vì vậy nhóm chúng em muốn tìm hiểu để hiểu rõ hơn và ứng dụng
nó giải quyết các vấn đề về dữ liệu.

1.2.Lịch sử nghiên cứu:
1.2.1. Dự đoán tuổi của bào ngư:
Tuổi của bào ngư có thể được tìm thấy bằng cách cắt vỏ của nó và đếm số vịng
trên vỏ. Trong Bộ dữ liệu bào ngư, bạn có thể tìm thấy các số đo tuổi của một số
lượng lớn các con bào ngư cùng với rất nhiều các phép đo vật lý khác.
Mục tiêu của dự án là phát triển một mô hình có thể dự đốn tuổi của một con bào
ngư hoàn toàn dựa trên các phép đo vật lý khác. Điều này sẽ cho phép các nhà
nghiên cứu ước tính tuổi của bào ngư mà không cần phải cắt vỏ và đếm số vịng.
1.2.2. Sử dụng các thuật tốn KNN để xác định người nhận của chương trình

học bổng Smart Indonesia:
Chương trình học bổng Thẻ thơng minh Indonesia (KIP) là một chương trình học
bổng của chính phủ
thơng qua Bộ Tơn giáo của Cộng hòa Indonesia, được trao cho những sinh viên có
học lực khá nhưng kinh tế yếu kém. Đại học Nhà nước Hồi giáo Sultan Syarif
Kasim, Riau nhận sinh viên mới hàng năm, nhưng chỉ tiêu cho chương trình học


bổng KIP có giới hạn. Với hạn ngạch giới hạn cho chương trình KIP, cần có một hệ
thống có thể phân loại dữ liệu gửi từ các sinh viên đăng ký chương trình KIP, để
q trình lựa chọn có thể
được thực hiện nhanh chóng, chính xác và phù hợp với hạn ngạch yêu cầu. Trong
nghiên cứu này, các thuật toán KModes và K-Nearest Neighbor (KNN) đã được sử
dụng bằng cách sử dụng dữ liệu về thành tựu, học bạ và điểm thi quốc gia khi học
cấp 3, thu nhập của bố, tình trạng của bố và tình trạng sở hữu nhà. Quá trình được
thực hiện bằng cách thực hiện các giai đoạn ban đầu, cụ thể là phân nhóm bằng
thuật tốn K Modes, sau đó xác thực hoặc kiểm tra dữ liệu bằng cách áp dụng
phương pháp Xác thực chéo Tìm kiếm trong Lưới (GSCV) và cuối cùng là dự đoán
bằng thuật toán KNN. Thử nghiệm cho kết quả giá trị hiệu suất là 66,79% ..

PHẦN 2: CƠ SỞ LÝ THUYẾT
2.1. Khai phá dữ liệu là gì:
Data mining – khai phá dữ liệu là quá trình phân loại, sắp xếp các tập hợp dữ liệu
lớn để xác định các mẫu và thiết lập các mối liên hệ nhằm giải quyết các vấn đề
nhờ phân tích dữ liệu. Các MCU khai phá dữ liệu cho phép các doanh nghiệp có
thể dự đốn được xu hướng tương lai.
Q trình khai phá dữ liệu là một quá trình phức tạp bao gồm kho dữ liệu chun
sâu cũng như các cơng nghệ tính tốn. Hơn nữa, Data Mining khơng chỉ giới hạn
trong việc trích xuất dữ liệu mà còn được sử dụng để chuyển đổi, làm sạch, tích
hợp dữ liệu và phân tích mẫu.

Có nhiều tham số quan trọng khác nhau trong Data Mining, chẳng hạn như quy tắc
kết hợp, phân loại, phân cụm và dự báo. Một số tính năng chính của Data Mining:
 Dự đoán các mẫu dựa trên xu hướng trong dữ liệu.
 Tính tốn dự đốn kết quả
 Tạo thơng tin phản hồi để phân tích
 Tập trung vào cơ sở dữ liệu lớn hơn.


 Phân cụm dữ liệu trực quan

2.2. Các giai đoạn khai phá dữ liệu:
1) Nghiên cứu lĩnh vực
Ta cần nghiên cứu lĩnh vực cần sử dụng Data mining để xác định được những tri
thức ta cần chắt lọc, từ đó định hướng để tránh tốn thời gian cho những tri thức
không cần thiết.
2) Tạo tập tin dữ liệu đầu vào
Ta xây dựng tập tin để lưu trữ các dữ liệu đầu vào để máy tính có thể lưu trữ và xử
lý.
3) Tiền xử lý, làm sạch, mã hóa
Ở bước này ta tiến hành bỏ bớt những dữ liệu rườm rà, không cần thiết, tinh chỉnh
lại cấu trúc của dữ liệu và mã hóa chúng để tiện cho q trình xử lý.
4) Rút gọn chiều
Thơng thường một tập dữ liệu có chiều khá lớn sẽ sinh ra một lượng dữ liệu khổng
lồ, ví dụ với n chiều ta sẽ có 2^n tổ hợp. Do đó, đây là một bước quan trọng giúp
giảm đáng kể hao tổn về tài nguyên trong quá trình xử lý tri thức. Thơng thường ta
sẽ dùng Rough set để giảm số chiều.
5) Chọn tác vụ khai thác dữ liệu
Để đạt được mục đích ta cần, ta cần chọn được tác vụ khai thác dữ liệu sao cho phù
hợp. Thơng thường có các tác vụ sau:
* Đặc trưng (feature): Chọn ra các đặc trưng quan trọng, kết hợp tốt với nhau để

gia tăng kết
quả.
* Phân biệt (discrimination)
* Kết hợp (association)


* Phân lớp (classification)
* Gom cụm (clusterity)
* Xu thế (trend analysis)
* Phân tích độ lệch
* Phân tích hiếm
6) Chọn các thuật giải Khai thác dữ liệu
7) Khai thác dữ liệu: Tìm kiếm tri thức
Sau khi tiến hành các bước trên thì đây là bước chính của cả q trình, ta sẽ tiến
hành khai thác và tìm kiếm tri thức.
8) Đánh giá mẫu tìm được
Ta cần đánh giá lại xem trong các tri thức tìm được, ta sẽ sử đụng được những tri
thức nào, những tri thức nào dư thừa, không cần thiết
9) Biểu diễn tri thức
Ta biểu diễn tri thức vừa thu thập được dưới dạng ngôn ngữ tự nhiên và hình thức
sao cho người dùng có thể hiểu được những tri thức đó.
10) Trình bày thơng tin :
Trong bước cuối cùng, thông tin sẽ được thể hiện dưới dạng cây, bảng, biểu đồ và
ma trận.

2.3. Các bài toán khai phá dữ liệu cơ bản:
2.3.1.Bài toán khai thác các tập phổ biến:
Bài toán khai thác tập phổ biến (frequent itemset) là lớp bài toán rất quan trọng
trong lĩnh vực khai phá dữ liệu. Mục tiêu của nó là tìm tất cả các tập mẫu, liên kết,
tương quan hoặc cấu trúc nhân quả có độ phổ biến cao trong tập hợp tất cả các hạng



mục hoặc đối tượng trong cơ sở dữ liệu giao dịch, cơ sở dữ liệu quan hệ và các kho
thông tin dữ liệu khác.
Bài toán khai thác các tập phổ biến được ứng dụng trong rất nhiều vấn đè, nổi tiếng
nhất là Basket data analysis (dự đoán, gợi ý các món hàng thường được cho cùng
vào giỏ hàng với món đồ A đã được chọn mua trước đó). Ngồi ra nó cịn được ứng
dụng trong lớp các bài tốn: tiếp thị chéo, thiết kế danh mục, phân tích thua lỗ, phân
cụm, phân loại, hệ thống khuyến nghị, v.v. Và đặc biệt nó cịn thể ứng dụng cho
thiết kế các dịch vụ tiện ích trong nhà thơng minh
2.3.2 Phân lớp và Dự báo :
Xây dựng các mơ hình (chức năng) để mô tả và phân biệt khái niệm cho các lớp
hoặc khái niệm để dự đoán trong tương lai .Chẳng hạn, phân lớp quốc gia dựa theo
khí hậu, hoặc phân lớp ô tô dựa theo tiêu tốn xăng
Dự đoán giá trị số chưa biết hoặc đã mất

2.4.Thuật toán K-NEAREST NEIGHBOR CLASSIFICATION:
2.4.1.Ý tưởng:
Thuật toán KNN cho rằng những dữ liệu tương tự nhau sẽ tồn tại gần nhau trong
một không gian, từ đó cơng việc của chúng ta là sẽ tìm k điểm gần với dữ liệu cần
kiểm tra nhất. Việc tìm khoảng cách giữa 2 điểm củng có nhiều cơng thức có thể sử
dụng, tùy trường hợp mà chúng ta lựa chọn cho phù hợp. Đây là 3 cách cơ bản để
tính khoảng cách 2 điểm dữ liệu x, y có k thuộc tính:


Từ đó ta có thể xác định được output của một dữ liệu mới dựa trên output của
K điểm gần nhất xung quanh nó.
Ý tưởng của thuật tốn này là nó khơng học một điều gì từ tập dữ liệu học (nên
KNN được xếp vào loại lazy learning
Lấy ví dụ: trong 1 tập các hình vng màu đỏ và hình trịn màu xanh, ta có một

hình tam giác và cần xác định nó thuộc màu nào trong tập đó

Ta lấy 3 giá trị có khoảng cách gần hình tam giác nhất. Trong 3 hình gần hình tam
giác có 2 hình màu trịn xanh và 1 hình vng đỏ nên theo giải thuật knn thì hình
tam giác sẽ là hình trịn xanh.


Thuật toán sẽ lấy các giá trị x, y trên trục tọa độ của hình tam giác để tiến hành tính
tốn khoảng cách đến các hình có giá trị x,y trên trục tọa độ theo cơng thức tính
khoảng cách:

Ví dụ tọa độ hình tam giác là 2,3. Và có 1 điểm ở gần là 4,5. Cơng thức tính
khoảng cách được áp dụng là: =2.8
Thực hiện tương tự với hết tất cả các hình cịn lại và lựa chọn ra k khoảng cách gần
nhất và theo ta chọn là 3. Nên cuối cùng ta xác định được nó là hình trịn xanh.

2.4.2.Lưu đồ giải thuật:


2.4.3.Thuật tốn:
Thuật tốn của knn có thể được mơ tả:


Xác định tham số K số láng giềng gần nhất

Tính khoảng cách của đối tượng cần phân lớp tới tất cả các đối tượng có
trong tập train

Lấy k đối tượng cho khoảng cách nhỏ nhất





Trong các giá trị vừa lấy, ta thống kê số lượng của mỗi lớp, chọn phân lớp
cho số lượng lớn nhất
Một vấn đề được đặt ra đó là có phải cứ chọn K càng lớn thì càng tốt, thì câu trả lời
đó là cịn tùy thuộc vào dữ liệu đó như thế nào. Khơng phải lúc nào K càng lớn thì


cho kết quả tốt và ngược lại. Việc lựa chọn tham số K của mơ hình sẽ tiến hành
thơng qua thực nghiệm nhiều lần để chọn ra kết quả tốt nhất.

Ưu điểm: Với các bước như trên, chúng ta nhận thấy rằng thuật toán của KNN rất
đơn giản, dễ thực hiện, dễ cài đặt. Việc dự đoán kết quả thật là dễ dàng, độ phức
tạp của thuật toán nhỏ.
Nhược điểm:
Bên cạnh đó sẽ tồn tại nhiều nhược điểm như:
Ý tưởng của thuật tốn này là nó khơng học một điều gì từ tập dữ liệu học
(nên KNN được xếp vào loại lazy learning), mọi tính tốn được thực hiện khi nó
cần dự đốn nhãn của dữ liệu mới.Nếu tập train của chúng ta có kích thước rất lớn,
thì việc duyệt qua tất cả các điểm dữ liệu để tính tốn là rất mất thời gian, đặt biệt
là trong thời kỳ hiện nay thì dữ liệu thu thập được rất lớn

KNN rất nhạy cảm với dữ liệu nhiễu, đặc biệt là khi ta chọn K nhỏ. Việc này
sẽ dẫn đễn kết quả không tốt.


PHẦN 3: MỘT ỨNG DỤNG KHAI PHÁ DỮ LIỆU:
3.1. Bài tốn:
Xây dựng 1 chương trình nhận diện chữ số bằng hình ảnh:

Từ 1 hình ảnh chứa chữ số nhất định có thể cho máy nhận diện được đó là chữ số
bao nhiêu

3.2.Thực hiện:
Ngôn ngữ thực hiện: python
Ý tưởng: ta sử dụng dữ liệu train là 1 hình ảnh chứa nhiều kí tự, ta cắt dữ liệu hình
ảnh đó ra thành các hình ảnh nhỏ là các dữ liệu train và gán các dữ liệu nhận dạng
cho nó. Khi ta đưa vào 1 hình ảnh cần nhận dạng là số bao nhiêu thì hệ thống sẽ
xác định được chính xác nó là số bao nhiêu dựa và việc thực hiện thuật tốn knn để
tính khoảng cách từ hình ảnh cần xác nhận đến các hình ảnh trong dữ liệu train
(lưu ý : chỉ nhận diện được các số từ 0 đến 9)
Triển khai:


Với hình ảnh dữ liệu chứa dữ liệu train là digits.png

Ta cho chương trình đọc hình ảnh ra dưới dạng ảnh xám:

Ta cắt các ảnh nhỏ tương ứng với các số từ ảnh digits.png:

Chuyển dữ liệu ảnh về dạng array:

Tiến hành tạo các dữ liệu train và dữ liệu test, các dữ liệu sẽ được chuyển thành
dạng mảng 1 chiều dưới dạng float :

Tiến hành gán nhãn cho dữ liệu train, ví dụ khi đó là hình số 0 sẽ được gán là 0


Đưa vào dữ liệu nhận dạng(hình ảnh cần nhận dạng) ta cũng thực hiện việc chuyển
đổi dữ liệu như dữ liệu train


Áp dụng thuật toán knn tiến hành nhận dạng , trong trường hợp này k là 5 (lấy 5
giá trị gần với dữ liệu cần nhận dạng nhất)

3.3.Kết quả :
Khi ta đưa hình ảnh số 3 thì chương trình sẽ in ra kết quả nhận dạng là 3.
Ảnh nhận dạng:

Kết quả khi nhận diện với k=1:

Phần trăm chính xác:


Kết quả khi nhận diện với k=5:

Phần trăm chính xác:
3.3.1.Ý nghĩa của ứng dụng:
Ứng dụng có thể nhận diện được 1 hình ảnh là chữ số bao nhiêu có thể áp dụng
trong việc nhận dạng các loại hình ảnh khác khi có những dữ liệu train mới và mở
rộng hơn.
3.3.2.Ưu nhược điểm và hướng phát triển:
Ưu điểm :
Nhận diện được chữ số tương đối chính xác
Nhược điểm:
Ứng dụng cịn hạn chế chỉ nhận diện được chữ số từ 0 đến 9
Ứng dụng chưa có giao diện chỉ sửa các thơng số trong code để thay đổi kết quả.

Hướng phát triển:
-Có thể áp dụng để nhận dạng hình ảnh chữ kí, nhận diện bảng số xe khi có thêm
dữ liệu train phù hợp



Tài liệu tham khảo:
[1] Jiawei Han, Micheline Kamber, “Data Mining: Concepts and Techniques”,
Second Edition, Morgan Kaufmann Publishers, 2006.
[2] David Hand, Heikki Mannila, Padhraic Smyth, “Principles of Data Mining”,
MIT Press, 2001.
[3] David L. Olson, Dursun Delen, “Advanced Data Mining Techniques”,
Springer-Verlag, 2008.
[4] Graham J. Williams, Simeon J. Simoff, “Data Mining: Theory, Methodology,
Techniques, and Applications”, Springer-Verlag, 2006.
[5] Hillol Kargupta, Jiawei Han, Philip S. Yu, Rajeev Motwani, and Vipin Kumar,
“Next Generation of Data Mining”, Taylor & Francis Group, LLC, 2009.
[6] Daniel T. Larose, “Data mining methods and models”, John Wiley & Sons, Inc,
2006.
[7] Ian H.Witten, Eibe Frank, “Data mining : practical machine learning tools and
techniques”, Second Edition, Elsevier Inc, 2005.
[8] Florent Messeglia, Pascal Poncelet & Maguelonne Teisseire, “Successes and
new directions in data mining”, IGI Global, 2008.
[9] Oded Maimon, Lior Rokach, “Data Mining and Knowledge Discovery
Handbook”, Second Edition, Springer Science + Business Media, LLC 2005, 2010.



×