1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

16 17 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu về Thuật Toán KNN: K-Nearest Neighbor Classification và Ứng dụng vào Xử lí Ảnh
Tác giả Lê Thanh Huy
Người hướng dẫn TS. Đinh Thị Thu Hương
Trường học Trường Đại Học Sài Gòn
Chuyên ngành Công Nghệ Thông Tin
Thể loại Tiểu luận học phần
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 16
Dung lượng 0,98 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 toán

Trang 1

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

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

Trang 2

Phân công

Huy

Khảo sát, thiết kế, viết báo cáo

60%

Phân tích

40%

Trang 3

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

Trang 4

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 nguyên 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 luôn là xu hướng công nghệ tương lai mà các hãng công nghệ trên toà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 toá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ự đoá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 toá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

Trang 5

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, để quá 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 toá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ự đoán được xu hướng tương lai

Quá trình khai phá dữ liệu là một quá trình phức tạp bao gồm kho dữ liệu chuyên sâu cũng như các công nghệ tính toá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 toán dự đoá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

Trang 6

 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 quá 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)

Trang 7

* 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ả quá 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

Trang 8

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 đó) Ngoài ra nó còn được ứng dụng trong lớp các bài toá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:

Trang 9

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 toá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 vuông 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 vuông đỏ nên theo giải thuật knn thì hình tam giác sẽ là hình tròn xanh

Trang 10

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 toá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

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:

Trang 11

2.4.3.Thuật toán:

Thuật toán của knn có thể được mô tả:

trong tập train

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ì

Trang 12

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ư:

(nên KNN được xếp vào loại lazy learning), mọi tính toán được thực hiện khi nó cần dự đoá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 toá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

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 toá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 toá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:

Trang 13

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

Trang 14

Đư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:

Trang 15

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

Trang 16

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

Ngày đăng: 14/06/2022, 17:58

Nguồn tham khảo

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w