1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khai phá dữ liệu dùng thuật toán k NN ứng dụng dự đoán điểm thi cuối kỳ

27 275 6

Đ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

Định dạng
Số trang 27
Dung lượng 0,96 MB
File đính kèm khodl1.rar (2 MB)

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

Nội dung

khai phá kho dữ liệu sử dụng các thuật toán dùng trong trí tuệ nhân tạo điển hình là thuật toán K_NN vào ứng dụng dự đoán điểm thi cuối kỳ của sinh viên dựa vào 2 điểm kiểm tra số 1, số 2 và số tiết nghỉ của sinh viên.

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN ======***======

Trang 2

BÁO CÁO BÀI TẬP LỚN

MÔN KHO DỮ LIỆU VÀ CÁC PHƯƠNG PHÁP KHAI PHÁ

Giáo viên hướng dẫn : Nguyễn Mạnh Cường

Nhóm 2

Đề tài : Thuật toán phân lớp K_NN ứng dụng

Vào dự đoán điểm thi cuối kỳ.

Thànhviên : 1 Nguyễn Mạnh Toàn_1141260116

2 Trần Quang Thành_1141260163

Hà Nội - 04/2020

Lời nói đầu

Trang 3

Trong thời buổi xã hội phát triển rất nhanh hiện nay công nghệ thông tin là mộttrong những nghành đi đầu ,có những phát triển vượt bậc và có những ứng dụng cực

kỳ thông minh và đáp ứng những nhu cầu cần thiết của con người Khi xã hội pháttriển cùng với đó là rất nhiều thông tin được sinh ra và nó được lưu chữ ngày mộtnhiều lên ,tuy nhiên chúng ta đang ngập chìm trong biển thông tin mà lại khát tri thức.Chính vì vậy để khai thác dữ liệu một cách triệt để thay thế những phương phá thủcông kém hiệu quả trước kia, một khuynh hướng mới là phát hiện tri thức và khai phá

dữ liệu mới đã được ra đời

Khai phá dữ liệu đã và đàn được nghiên cứu và ứng dụng trong nhiều nước trênthế giới , ở Việt Nam cũng đang được nghiên cứu và đưa vào ứng dụng thực thế khánhiều Khai phá dữ liệu là một bước trong quá trình phát hiện tri thức được chắt lọc từnhững dữ liệu lớn để lấy ra những thông tin cần dùng

Trong bài tập lớn này chúng em tìm hiểu và trình bày về 1 thuật toán, kỹ thuật để

khai phá, phân lớp dữ liệu với đề tài “ phân lớp dữ liệu bằng thuật toán K_NN ứng dụng vào dự đoán điểm thi cuối kỳ “.

Trong quá tình tìm hiểu và xây dụng bài tập lớn chúng em xin gửi lời cảm ơn tới

thầy giáo Nguyễn Mạnh Cường Mặc dù cả nước đang trong tình trang chống dịch

covid_19 và phải giảng dạy online nhưng thầy đã hướng dẫn rất tận tình cho chúngem,những kiến thức và tài liệu thầy cung cấp rất hữu ích để chúng em hoàn thành bàitập lớn này Và chúng em cũng mong được sự góp ý của thầy

Chúng em xin chân thành cảm ơn!

MỤC LỤC

Trang 4

CHƯƠNG 1:TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 5

1.1 Khái niệm cơ bản 5

1.1.1 Thế nào là khai phá dữ liệu 5

1.1.2 Khai phá tri thức từ cơ sở dữ liệu 5

1.1.3 Các ứng dụng của khai phá dữ liệu 6

1.1.4 Các bước của khai phá dữ liệu 7

1.2 Một số kỹ thuật khai phá dữ liệu 8

1.2.1 Kỹ thuật khai phá luật kết hợp 8

1.2.2 Kỹ thuật phân lớp 8

1.2.3 Kỹ thuật phân cụm 9

CHƯƠNG 2: THUẬT TOÁN K-NN 9

2.1 Tổng quan về thuật toán K_NN 9

2.2 Mô tả thuật toán K_NN 9

2.2.1 Mô tả các bước thực hiện 9

2.2.2 Minh họa về K_NN 10

2.3 Nhận xét đánh giá ưu nhược điểm của thuật toán K_NN 11

2.3.1 Ưu điểm: 11

2.3.2 Nhược điểm: 11

2.4 Lấy ví dụ về thuật toán K_NN 12

2.4.1 Ví dụ: 12

CHƯƠNG 3: THU THẬP VÀ XỬ LÝ DỮ LIỆU 15

3.1 Thu thập dữ liệu 15

3.2 Tiền xử lý dữ liệu 18

3.2.1 Làm sạch dữ liệu 20

3.2.2 Rút gọn dữ liệu 22

Trang 5

3.2.3 Rời rạc dữ liệu 22

CHƯƠNG 4: CÀI ĐẶT THUẬT TOÁN VÀ ĐÁNH GIÁ THỰC NGHIỆM 22

4.1 Thuật toán 22

4.2 Đánh giá thực nghiệm 26

4.2.1 Thực nghiệm 26

4.2.2 Đánh giá kết quả 27

CHƯƠNG 1:TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

Trang 6

1.1 Khái niệm cơ bản

1.1.1 Thế nào là khai phá dữ liệu

Khai phá dữ liệu là quá trình xác định các mẫu tiềm ẩn có tính hơp lệ đượcrút trích tổng hợp dựa trên một khối dữ liệu lớn,và nó có độ chính xác cao

1.1.2 Khai phá tri thức từ cơ sở dữ liệu

Khai phá tri thức từ cơ sở dữ liệu gồm 5 bước:

B1: Lựa chọn cơ sở dữ liệu

B2: Tiền xử lý dữ liệu

B3: Chuyển đổi

B4: Khai phá dữ liệu

B5: Diễn giải và đánh giá thực nghiệm

1.1.3 Các ứng dụng của khai phá dữ liệu

Phát hiện tri thức và khai phá dữ liệu liên quan đến nhiều ngànhnghề,nhiều lĩnh vực:Thống kê,cơ sở dũ liệu,trí tuệ nhân tạo, thuật toán,tính toán

Trang 7

song song và tốc độ cao,thu thâp tri thức cho các hệ chuyên gia,quan sát dữliệu… Đặc biệt phát hiện tri thức và khai phá dữ liệu rất gần gũi với lĩnh vụcthống kê ,sử dụng phương pháp thông kê để mô hình dữ liệu và phát hiện cácmẫu,luật ,ngân hàng dữ liệu và các công cụ phân tích trực tuyến cũng liên quanrất chặt chẽ với phát hiện tri thức và khai phá dữ liệu

Khai phá dữ liệu có nhiều ứng dụng thực tế ví dụ như:

 Bảo hiểm ,tài chính, thị trường chứng khoán : Phân tích tính hình tàichính dự báo giá cổ phiếu trong thị trường chứng khoán, danh mụcvốn và giá, lãi suất,phát hiện gian lận

 Thống kê phân tích dữ liệu và hỗ trợ đưa ra quyết định

 Chuẩn đoán bệnh,y học ,cham soc y tế: Một số thông tin về chuẩnđoán bệnh trong bệnh viện Phân tích mối liên hệ giữa triệu chứngbệnh ,chuẩn đoán phương pháp điều trị(chế độ dinh dưỡng…)

 Sản xuất chế biến: Quy trình phương pháp chế biến và sử lý sự cố

 Lĩnh vực khoa học:Quan sát thiên văn dữ liệu gene,dữ liệu sinh vậthọc, tìm kiếm ,so sánh các hệ gene và thông tin di truyền,một sốbệnh di truyền…

 Text mining và Web mining: Phân lớp văn bản và các trangweb ,tóm tắt văn bản…

 Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thốnggiám sát lỗi, sự cố ,chất lượng dịch vụ…

1.1.4 Các bước của khai phá dữ liệu.

Quy trình phát hiện tri thức thường tuân theo các bước sau:

Bước thứ 1: Xác định định nghĩa bài toán Là tìm hiểu lĩnh vực ứng dụng

từ đó hình thành bài toán ,xác định nhiệm vụ cần phải hoàn thành Bước nàyquyết định việc rút ra được những tri thức hữu ích và cho phép lựa chọn các

Trang 8

phướng pháp khai phá phù hợp với mục đích của ứng dụng và bản chất của dữliệu.

Bước thứ 2:Thu thập và tiền xử lý dữ liệu Là thu thập và xử lý thô, còn

được gọi là tiền xử lý dữ liệu nhằm loại bỏ nhiễu(làm sạch dữ liệu), xử lý việcthiếu dữ liệu(làm giàu dữ liệu) biến đổi dữ liệu và rút gọn dữ liệu nếu cần thiết,bước này thường chiếm nhiều thời gian nhất trong toàn bộ quy trình phát hiện trithức Do dữ liệu được lấy từ nhiều nguồn khác nhau không đồng nhất, Có thểxảy ra những nhầm lẫn Sau bước này dữ liệu được nhất quán đầy đủ được rútgọn và rời rạc hóa

Bước thứ 3: Khai phá dữ liệu rút ra tri thức Là khai phá dữ liệu hay nói

cách khác là trích ra các mẫu hoặc các mô hình ẩn dưới dữ liệu Giai đoạn nàyrất quan trọng ,bao gồm các công đoạn như: Chức năng ,nhiệm vụ và mục đíchcủa khai phá dữ liệu,dùng phương pháp nào để khai phá? Thông thường các bàitoán khai phá dữ liệu bao gồm : Các bài toán mang tính mô tả - đưa ra tính chấtchung nhất của dữ liệu, các bài toán dự báo-bao gồm cả việc phát hiện suy diễn

từ bộ dữ liệu đã có Tùy theo bài toán xác định được mà ta lựa chọn các phướngpháp khai phá phù hợp

Bước thứ 4: Sử dụng các tri thức phát hiện được Là hiểu tri thức đã tìm

được, đặc biệt là làm sáng tỏ các mô tả và dự đoán Các bước trên có thể lặp đilặp lại một số lần kế quả thu được có thể lấy trung bình trên tất cả các lần thựchiện Các kết quả của quá trình phát hiện tri thức có thể được đưa vào úng dụngtrong các lĩnh vực khác nhau do các kết quả có thể là các dự đoán

1.2 Một số kỹ thuật khai phá dữ liệu

1.2.1 Kỹ thuật khai phá luật kết hợp.

Trang 9

Trong khai phá dữ liệu mục đích của luật kết hợp là tìm ra mối quan hệ giữa cácđối tượng trong khối lượng dữ liệu lớn.

Để khai phá luật kết hợp có rất nhiều thuật toán ,nhưng dùng phổ biến nhất làthuật toán Apriori Đây là thuật toán khai phá tập phổ biến trong dữ liệu giao dịch đểphát hiện các luật kết hợp dạng khẳng định nhị phân và được sử dụng để xác định tìm

ra các luật kết hợp trong dữ liệu giao dịch

Ngoài ra ,còn có các thuật toán FPtree…

1.2.2 Kỹ thuật phân lớp.

Trong kỹ thuật phân lớp bao gồm các thuật toán :

 Phân lớp bằng cây quyết định ID3 : Phân lớp dữ liệu dựa trên việc lập câyquyết định , nhìn vào cây quyết định có thể đưa ra quyết định dữ liệuthuộc lớp nào

 Phân lớp dự trên xác xuât(Bayes): Dựa trên việc giả định các thuộc tínhđộc lập mạnh với nhau qua việc sử dụng định lý Bayes

 Phân lớp dựa trên khoảng cách(K_NN): Làm như láng giềng ,dữ liệu sẽđược phân vào lớp của k đối tượng gần với dữ liệu đó nhất

 Phân lớp bằng SVM: phân lớp dữ liệu dựa trên việc tìm một siêuphẳng”tốt nhất"

1.2.3 Kỹ thuật phân cụm

Phân cụm dữ liệu là cách phân bố các đối tượng dữ liệu vào các nhóm,cụm saocho các đối tượng trong cùng 1 cụm thì giống nhau hơn các phân tử khác cụm.Gồm cómột số phương pháp phân cụm như sau

 Phân cụm bằng phương pháp K_Means: Tìm ra tâm của các cụm màkhoảng cách từ tâm đến các đối tượng ,dữ liệu khác ngắn hơn các cụmkhác

 Phân cụm trên đồ thị

CHƯƠNG 2: THUẬT TOÁN K-NN

Trang 10

2

2.1 Tổng quan về thuật toán K_NN

 KNN (K-Nearest Neighbors) là một trong những thuật toán học có giám sát đơngiản nhất được sử dụng nhiều trong khai phá dữ liệu và học máy Ý tưởng của thuậttoá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ạilazy 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.      Thuật toán K_NN dựa trên kết quả của việc tính toán khoảng cách giữa dữ liệu của

1 đối tượng cần dự đoán với tất cả dữ liệu trong tập dữ liệu có và sắp xếp theo chiềutăng dần Sau đó đếm trong khoảng k phần tử lớp nào xuất hiện nhiều nhất thì đốitượng dự đoán thuộc lớp đó

2.2 Mô tả thuật toán K_NN

2.2.1 Mô tả các bước thực hiện.

Các mẫu được mô tả bằng n_chiều thuộc tính số mỗi mẫu đại diện cho 1 điểmtrong không gian n chiều

Thứ tự các bước:

 Chọn tham số k là số lượng hàng xóm gần nhất

 Tính khoảng cách từ đối tượng cần xác định đến các đối tượng khác trongtập dữ liệu

 Sắp xếp các đối tượng theo khoảng cách

 Lấy tất cả các đổi tượng thuộc trong khoảng k

 Đếm trong khoảng k thuộc tính nào xuất hiện nhiều nhất thì đối tượng cầnxác định thuộc lớp đó

Trang 11

2.2.2 Minh họa về K_NN

 Giả sử ta có D là tập các dữ liệu đã được phân loại thành 2 nhãn (+) và (-) được biểu diễn trên trục tọa độ như hình vẽ và một điểm dữ liệu mới A chưa biết nhãn Vậy làm cách nào để chúng ta có thể xác định được nhãn của A là (+) hay (-)?

      Có thể thấy cách đơn giản nhất là so sánh tất cả các đặc điểm của dữ liệu A với tất

cả tập dữ liệu học đã được gắn nhãn và xem nó giống cái nào nhất, nếu dữ liệu (đặc điểm) của A giống với dữ liệu của điểm mang nhãn (+) thì điểm A mang nhãn (+), nếu

dữ liệu A giống với dữ liệu nhãn (-) hơn thì nó mang nhãn (-), trông có vẻ rất đơn giản nhưng đó là những gì mà K_NN làm

      Trong trường hợp của KNN, thực tế nó không so sánh dữ liệu mới (không được phân lớp) với tất cả các dữ liệu khác, thực tế nó thực hiện một phép tính toán học để đo khoảng cách giữa dữ liệu mới với tất cả các điểm trong tập dữ liệu học D để thực hiện phân lớp Phép tính khoảng cách giữa 2 điểm có thể là Euclidian, Manhattan, trọng số, Minkowski, …

Với tham số k= 5 ta thấy trong 5 hàng xóm có khoảng cách gần nhất với đổitượng cần tìm có 3=(-) 2=(+)

Trang 12

Vậy đối tượng cần xác định thuộc lớp (-).

2.3 Nhận xét đánh giá ưu nhược điểm của thuật toán K_NN

Thuật toán toán K_NN là một thuật toán giám sát có học đơn giản nhất nó có cách thực hiện rất rễ hiểu, tuy nhiên đối với tập dữ liệu lớn thì tính toán mất hơi nhiều thời gian

2.3.1 Ưu điểm:

 Độ phức tạp tính toán của quá trình training là bằng 0

 Việc dự đoán kết quả của dữ liệu mới rất đơn giản

 Không cần giả sử gì về phân phối của các class

2.3.2 Nhược điểm:

 KNN rất nhạy cảm với nhiễu khi K nhỏ

 Như đã nói, KNN là một thuật toán mà mọi tính toán đều nằm ở khâutest Trong đó việc tính khoảng cách tới từng điểm dữ liệu trong trainingset sẽ tốn rất nhiều thời gian, đặc biệt là với các cơ sở dữ liệu có số chiềulớn và có nhiều điểm dữ liệu Với K càng lớn thì độ phức tạp cũng sẽtăng lên Ngoài ra, việc lưu toàn bộ dữ liệu trong bộ nhớ cũng ảnh hưởngtới hiệu năng của KNN

2.4 Lấy ví dụ về thuật toán K_NN

Chúng ta sẽ đi vào chi tiết thuật toán K_NN Đầu tiên chúng ta phải chuẩn bị 1tập dữ liệu đã được phân lớp toàn bộ Người dùng sẽ đưa ra một đối tượng mà chưađược sắp xếp vào lớp nào Thuật toán K_NN sẽ tính khoảng cách giữa đối tượng đóvới các đối tượng trong tập dữ liệu Sau đó sắp xếp tăng dần So sánh k đối tượng xemthuộc tính nào xuất hiện nhiều nhất thì đối tượng thuộc lớp đó

Trang 13

2.4.1 Ví dụ:

Chuẩn đoán 2 người có bị béo phì hay không dựa trên lượng calo hấp thụ mỗi năm và

số giờ tập thể dục của người đó Oử đây chúng ta có tập dữ liệu gồm thông tin của 1 sốngười với lượng calo và số giờ đã được phân loại “béo” hoặc “gầy” Một đối tượng cóthông tin về lượng calo hấp thụ và số giờ tập thể dục mỗi năm -> cần xác định thuộcloại nào.(Lưu ý dữ liệu chỉ áp dụng cho những người thuộc độ tuổi 18+) Xác đinhNam với lượng calo=800000 và số giờ hoạt động mạnh =60 thuộc loại nào

Tên Lượng calo hấp thụ Số giờ vân động

mạnh

Tình trạng

Vì dữ liệu ở khoảng khách nhau nên ta đồng bộ hóa dữ liệu về dạng % để đảm bảo độ quan trọng của các thuộc tính là như nhau

Trang 14

Công thức: %x = (x-min)/(max-min) ta có bảng sau:

thụ

%Số giờ vân động mạnh

Tiếp theo ta sẽ tính toán khoảng cách từ đối tượng cần xác định với các đối tượng trong tập dữ liệu ta có một số cách tính như sau:

Trong bài này sử dụng cách tính Euclidean

Sau khi tính ta được

Trang 15

Tên %Lượng calo

hấp thụ

%Số giờ vân động mạnh

Chọn k=4 ta sắp xếp theo chiều tăng dần của khoảng cách Vậy ta thu được

Trang 16

CHƯƠNG 3: THU THẬP VÀ XỬ LÝ DỮ LIỆU

3

3.1 Thu thập dữ liệu

Dữ liệu được thu thập thực tế “ bảng điểm môn Kỹ Thuật Lập Trình của sinh viên lớp Hệ ThốngThông Tin 2 –khóa 11-Trường Đại Học Công nghiệp Hà Nội”

Ở đây chúng ta quan tâm đến những thuộc tính là:

 Điểm kiểm tra 1

 Điểm kiểm tra 2

 Số tiết nghỉ học

Trang 18

3.2 Tiền xử lý dữ liệu.

Dữ liệu thô

Trang 20

3.2.1 Làm sạch dữ liệu

3.2.1.1Bổ sung,loại bỏ dữ liệu thiếu

Vì dữ liệu được lấy thực tế từ trang web trên trang sv.dhcnhn.vn và trong bộ dữliệu không bị thiếu trường nào Vì điểm số hoặc số buổi nghỉ chỉ có thể bằng 0 hoặckhác 0 ,không có ngoại lệ

Ta thấy thuộc tính họ tên không cần thiết trong quá trình khai phá dữ liệu nênloại bỏ

3.2.1.2Chuẩn hóa dữ liệu

Trong bộ dữ liệu các thuộc tính như điểm và số tiết nghỉ có khoảng cách khácnhau nên làm cho độ quan trọng của từng thuộc tính bị lệch đi Vì vậy chúng ta cầnphải chuẩn hóa dữ liệu , đưa chúng về cùng một đoạn giá trị từ 0-1

Ta có công thức : X=(X-max)/(max-min)

Trang 21

3.2.2 Rút gọn dữ liệu

3.2.3 Rời rạc dữ liệu

Trang 22

CHƯƠNG 4: CÀI ĐẶT THUẬT TOÁN VÀ ĐÁNH GIÁ THỰC NGHIỆM

4

4.1 Thuật toán

Được thực hiện trên công cụ visual studio với ngôn ngữ C++

Dữ liệu sẽ được đọc từ file

Trong quá trình code thuật toán có tích hợp luôn chuẩn hóa dữ liệu về dạng đồngnhất 0-1 nên dữ liệu đầu vào có thể qua bước chuẩn hóa

Trang 25

Màn hình khi tiến hành dự đoán điểm cuối kỳ của sinh viên:

4.2 Đánh giá thực nghiệm.

4.2.1 Thực nghiệm

T sẽ thực nghiệm với 5 khoảng để xem kết quả

Trang 26

Tương tự ta có bảng kết quả thực nghiệm với k=15.

Với kết quả thực nghiệm thu được ở trên về mặt phân giải điểm theo chữ thực tế:

 0-3.9 điểm F so với {1,2,4} => điểm F

 4-4.4 điểm D

 4.5-6.4 điểm C so với {3,4,0} => điểm C và so với {4,5,0} => điểm C

 6.5-8.4 điểm B so với {7,8,6} => điểm B

 8.5-10 điểm A so với {9,8,0} => điểm A

Trang 27

Ta thấy về cơ bản thì khoảng điểm dự đoán có tỷ lệ đúng rất cao với khoảng điểm theo thang điêm quy đinh Tuy nhiên vẫn có một số trường hợp sai khác như khoảng điểm {3,4}=> dự đoán điểm C đó không phải là sai mà do tập dữ liệu thu thậpđược có một số trường hợp như vậy và đó là những đột biết có thể xảy ra nhưng với mật độ thấp.

Trong bài toán này thuật toán K_NN khai phá khá hiệu quả với tập dữ liệu nhỏ được trình bày bằng ngôn ngữ C++ và có tốc độ khá nhanh Kết quả thu được có thể chấp nhận

TÀI LIỆU THAM KHẢO

https://vi.wikipedia.org/wiki/Khai_ph%C3%A1_d%E1%BB%AF_li%E1%BB%87uhttps://ongxuanhong.wordpress.com/2015/08/20/tien-xu-ly-du-lieu-horse-colic-

dataset/

phan-lop-du-lieu-so-bang-giai-thuat-k-nn.htm

https://123doc.net/document/3551707-bao-cao-bai-tap-lon-mon-khai-pha-du-lieu-https://vi.wikipedia.org/wiki/H%E1%BB%8Dc_m%C3%A1y

Ngày đăng: 12/04/2020, 10:17

TỪ KHÓA LIÊN QUAN

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

w