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

(Tiểu luận) đồ án môn học khai mỏ dữ liệu đề tài phân lớp dữ liệu

22 5 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 đề Phân Lớp Dữ Liệu
Tác giả Nguyễn Nhật Hoàng, Nguyễn Thị Hồng Phước, Nguyễn Văn Thuận
Trường học Trường Đại Học Duy Tân
Chuyên ngành Khai Mỏ Dữ Liệu
Thể loại Đồ án môn học
Năm xuất bản 2022
Thành phố Đà Nẵng
Định dạng
Số trang 22
Dung lượng 4,21 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ục tiêu và phạm vi nghiên cứu  Mục tiêu - Hiểu được mô hình Decision Tree - Hiểu được các thuật toán trong mô hình Decision Tree - Tài liệu nghiên cứu lập trình machine learning với n

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DUY TÂN



Đồ án môn học

KHAI MỎ DỮ LIỆU

ĐỀ TÀI: PHÂN LỚP DỮ LIỆU

Học Viên: Nguyễn Nhật Hoàng

Nguyễn Thị Hồng Phước

Nguyễn Văn Thuận Lớp: K24MCS1

Đà Nẵng, tháng 12 năm 2022

Trang 2

NGUYỄN NHẬT HOÀNG – K24 MCS.1

MỤC LỤC

MỞ ĐẦU 2

1 Giới thiệu đề tài 2

2 Mục tiêu và phạm vi nghiên cứu 2

3 Phương pháp nghiên cứu 3

CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY 4

1.1 Giới thiệu Học máy 4

1.2 Phân loại Học máy 4

1.3 Ứng dụng của Học máy 4

CHƯƠNG 2: TỔNG QUAN VỀ MÔ HÌNH DECISION TREE 5

2.1 Giới thiệu về Decision Tree 5

2.2 Giới thiệu về thuật toán ID3 (Iterative Dichotomiser 3) 7

2.3 Mô tả thuật toán ID3 8

2.4 Ưu điểm của mô hình Decision Tree 14

2.5 Điều kiện dừng đối với các thuật toán decision tree 15

CHƯƠNG 3: 16

3.2 Triển khai thuật toán ID3 với python 16

3.3 … 18

KẾT LUẬN ĐỀ TÀI 19

TÀI LIỆU THAM KHẢO 20

1

Trang 3

NGUYỄN NHẬT HOÀNG – K24 MCS.1

MỞ ĐẦU

1 Giới thiệu đề tài

Trong quá trình hoạt động, con người tạo ra nhiều dữ liệu nghiệp vụ Các tập dữliệu được tích lũy có kích thước ngày càng lớn, và có thể chứa nhiều thông tin ẩn dạngnhững quy luật chưa được khám phá Chính vì vậy, một nhu cầu đặt ra là cần tìm cáchtrích rút từ tập dữ liệu đó các luật về phân lớp dữ liệu hay dự đoán những xu hướng dữliệu tương lai Những quy tắc nghiệp vụ thông minh được tạo ra sẽ phục vụ đắc lực chocác hoạt động thực tiễn, cũng như phục vụ đắc lực cho quá trình nghiên cứu khoa học.Công nghệ phân lớp và dự đoán dữ liệu ra đời để đáp ứng mong muốn đó

Công nghệ phân lớp dữ liệu đã, đang và sẽ phát triển mạnh mẽ trước những khaokhát tri thức của con người Trong những năm qua, phân lớp dữ liệu đã thu hút sự quantâm các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy (machine learning),

hệ chuyên gia (expert system), thống kê (statistics) Công nghệ này cũng ứng dụng trongnhiều lĩnh vực thực tế như: thương mại, nhà băng, maketing, nghiên cứu thị trường, bảohiểm, y tế, giáo dục

Hiện nay các vấn đề liên quan đến máy học càng ngày càng phát triển, thời đại dữliệu và công nghệ xử lý dữ liệu lớn mà các ngôn ngữ lập trình khác quá khó tiếp cận với

các chuyên gia toán học và giáo sư Vì vậy đề tài “Tìm hiểu và Triển khai thuật toán

Iterative Dichotomiser 3 trong mô hình Decision Tree” sẽ giúp hiểu hơn về mô hình

cây quyết định

2 Mục tiêu và phạm vi nghiên cứu

 Mục tiêu

- Hiểu được mô hình Decision Tree

- Hiểu được các thuật toán trong mô hình Decision Tree

- Tài liệu nghiên cứu lập trình machine learning với ngôn ngữ python

 Phạm vi nghiên cứu

- Nghiên cứu thuật toán ID3

- Nghiên cứu ngôn ngữ lập trình python

2

Trang 4

NGUYỄN NHẬT HOÀNG – K24 MCS.1

- Nghiên cứu thư viện hỗ trợ python

3 Phương pháp nghiên cứu

- Nghiên cứu từ lý thuyết đến thực tiễn chứng minh

3

Trang 5

NGUYỄN NHẬT HOÀNG – K24 MCS.1

CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY

1.1 Giới thiệu Học máy

1.2 Phân loại Học máy

1.3 Ứng dụng của Học máy

4

Trang 6

NGUYỄN NHẬT HOÀNG – K24 MCS.1

CHƯƠNG 2: TỔNG QUAN VỀ MÔ HÌNH DECISION TREE

2.1 Giới thiệu về Decision Tree

Trong những năm qua, nhiều mô hình phân lớp dữ liệu đã được các nhà khoa họctrong nhiều lĩnh vực khác nhau đề xuất như mạng notron, mô hình thông kê tuyến tính/bậc 2, cây quyết định, mô hình di truyền Trong số những mô hình đó, cây quyết định vớinhững ưu điểm của mình được đánh giá là một công cụ mạnh, phổ biến và đặc biệt thíchhợp cho data mining nói chung và phân lớp dữ liệu nói riêng [1] Có thể kể ra những ưuđiểm của cây quyết định như: xây dựng tương đối nhanh; đơn giản, dễ hiểu Hơn nữa cáccây có thể dễ dàng được chuyển đổi sang các câu lệnh SQL để có thể được sử dụng đểtruy nhập cơ sở dữ liệu một cách hiệu quả Cuối cùng, việc phân lớp dựa trên cây quyếtđịnh đạt được sự tương tự và đôi khi là chính xác hơn so với các phương pháp phân lớpkhác [2] Cây quyết định là biểu đồ phát triển có cấu trúc dạng cây, như mô tả trong hình

• Gốc: là node trên cùng của cây

• Node trong: biểu diễn một kiểm tra trên một thuộc tính đơn (hình chữ nhật)

• Nhánh: biểu diễn các kết quả của kiểm tra trên node trong (mũi tên)

5

Trang 7

Science None

175

Hướng dẫn chăm sóc điều trị F0 tại…

Computer

Science None

11

Khai thác internet mang lại nhiều lợi íc…

1

Trang 8

NGUYỄN NHẬT HOÀNG – K24 MCS.1

• Node lá: biểu diễn lớp hay sự phân phối lớp (hình tròn)

Để phân lớp mẫu dữ liệu chưa biết, giá trị các thuộc tính của mẫu được đưa vàokiểm tra trên cây quyết định Mỗi mẫu tương ứng có một đường đi từ gốc đến lá và lábiểu diễn dự đoán giá trị phân lớp mẫu đó

Cây quyết định là một trong những thuật toán học máy phổ biến và mạnh mẽ Đây

là một phương pháp học tập có giám sát không tham số có thể được sử dụng cho cảnhiệm vụ phân loại và hồi quy Mục tiêu là tạo ra một mô hình dự đoán giá trị của mộtbiến mục tiêu bằng cách tìm hiểu các quy tắc quyết định đơn giản được suy ra từ các tínhnăng dữ liệu Đối với mô hình phân loại, các giá trị mục tiêu có bản chất là rời rạc, trongkhi đối với mô hình hồi quy, các giá trị mục tiêu được biểu diễn bằng các giá trị liên tục.Không giống như loại thuật toán hộp đen như Neural Network, Cây quyết định tương đối

dễ hiểu hơn vì nó chia sẻ logic ra quyết định nội bộ

Mặc dù thực tế là nhiều nhà khoa học dữ liệu tin rằng đó là một phương pháp cũ và

họ có thể nghi ngờ về độ chính xác của nó do vấn đề trang bị quá mức, các mô hình dựatrên cây gần đây hơn, ví dụ: Rừng ngẫu nhiên (phương pháp đóng túi), tăng độ dốc(phương pháp tăng cường ) và XGBoost (phương pháp thúc đẩy) được xây dựng trên đỉnhcủa thuật toán cây quyết định

Xây dựng cây quyết định gồm 2 bước:

Bước 1: Phát triển cây quyết định: đi từ gốc, đến các nhánh, phát triển quy nạp theohình thức chia để trị

- Chọn thuộc tính “tốt” nhất bằng một độ đo đã định trước

- Phát triển cây bằng việc thêm các nhánh tương ứng với từng giá trị của thuộc tính

đã chọn

- Sắp xếp, phân chia tập dữ liệu đào tạo tới node con - Nếu các ví dụ được phânlớp rõ ràng thì dừng

- Ngược lại: lặp lại bước 1 tới bước 4 cho từng node con

Bước 2: Cắt tỉa cây: nhằm đơn giản hóa, khái quát hóa cây, tăng độ chính xác

 Hàm số entropy

6

ComputerScience None

Computer Science [ Duy Tan University ]

ComputerScience None

41

Trang 9

NGUYỄN NHẬT HOÀNG – K24 MCS.1

Cho một phân phối xác suất của một biến rời rạc x có thể nhận n giá trị khác nhau

x ,x ,…,x1 2 n Giả sử rằng xác suất để x nhận các giá trị này là pi=p(x=xi) với 0 ≤ 𝑖 ≤

Ký hiệu phân phối này là p=(p ,p ,…,p1 2 n) Entropy của phân phối này được định nghĩa là

(1)

Trong đó log là logarit tự nhiên (Một số tài liệu dùng logarit cơ số 2, nhưng giá trị của H( )p chỉ khác đi bằng cách nhân với một hằng số) và quy ước 0log(0)=0

2.2 Giới thiệu về thuật toán ID3 (Iterative Dichotomiser 3)

Trong ID3, tổng có trọng số của entropy tại các leaf-node sau khi xây dựng decision

tree được coi là hàm mất mát của decision tree đó Các trọng số ở đây tỉ lệ với số điểm dữliệu được phân vào mỗi node Công việc của ID3 là tìm các cách phân chia hợp lý (thứ tựchọn thuộc tính hợp lý) sao cho hàm mất mát cuối cùng đạt giá trị càng nhỏ càng tốt Như

đã đề cập, việc này đạt được bằng cách chọn ra thuộc tính sao cho nếu dùng thuộc tính đó

để phân chia, entropy tại mỗi bước giảm đi một lượng lớn nhất Bài toán xây dựng mộtdecision tree bằng ID3 có thể chia thành các bài toán nhỏ, trong mỗi bài toán, ta chỉ cầnchọn ra thuộc tính giúp cho việc phân chia đạt kết quả tốt nhất Mỗi bài toán nhỏ nàytương ứng với việc phân chia dữ liệu trong một non-leaf node Chúng ta sẽ xây dựngphương pháp tính toán dựa trên mỗi node này

Xét một bài toán với C class khác nhau Giả sử ta đang làm việc với một non-leaf node với các điểm dữ liệu tạo thành một tập SS với số phần tử là | =| | | | | | | | | | | | | | | Giả sử thêmrằng trong số N điểm dữ liệu này, N , c = 1, 2, …, C điểm thuộc vào class c Xác suất đểc

mỗi điểm dữ liệu rơi vào một class c được xấp xỉ bằng _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ (maximum likelihood estimation) Như vậy, entropy tại node này được tính bởi:

(2) Tiếp theo, giả sử thuộc tính được chọn là x Dựa trên x, các điểm dữ liệu trong Sđược phân ra thành K child node S1,S ,…,S2 K với số điểm trong mỗi child node lần lượt là

m ,m ,…,m1 2 K Ta định nghĩa

7

Trang 10

𝑖∗ = , ) = ( ( ( ( , )

tức thuộc tính khiến cho information gain đạt giá trị lớn nhất

Xây dựng cây quyết định trong thuật toán ID3

Bước Bước 1: Tính toán entropy cho tập dữ liệu

Bước 2: Đối với mọi attribute/feature

Tính entropy cho tất cả giá trị khác Entropy(Attribute)

Lấy entropy thông tin trung bình cho thuộc tính hiện tại

Tính giá trị trung bình

Tính information Gain:

Gain = Entropy(S) – I (Attribute) Bước 3: Chọn thuộc tính information Gain cao nhất

Bước 4: Lặp lại cho đến khi có được cây mong muốn

2.3 Mô tả thuật toán ID3

Ví dụ ta có bảng dữ liệu sau đây

ID Outlook Temperature Humidity Wind PlayGolf

8

Trang 11

NGUYỄN NHẬT HOÀNG – K24 MCS.1

6 Rainy Cool Normal Strong No

7 Overcast Cool Normal Strong Yes

10 Rainy Mild Normal Weak Yes

11 Sunny Mild Normal Strong Yes

12 Overcast Mild High Strong Yes

13 Overcast Hot Normal Weak Yes

14 Rainy Mild High Strong No

Xây dựng cây quyết định ID3 với bảng dữ liệu trên

Bước 1: Tính entropy cho tập dữ liệu

Ta thấy rằng bảng dữ liệu có 9 dữ liệu được dán nhãn yes và 5 dữ liệu được dán nhãn no

Bước 2: Tính entropy cho từng thuộc tính của dữ liệu

 Chọn thuộc tính Outlook có các giá trị “Sunny”, “Overcast”, “Rainy” ta đitính entropy cho từng giá trị đó

9

Trang 12

NGUYỄN NHẬT HOÀNG – K24 MCS.1

Ta thống kê theo thuộc tính Outlook được bảng sau:

Tính entropy trung bình của thuộc tính Outlook

Information Gain: Gain = Entropy(S) – I(Attribute)

Gain(Outlook) = 0.65 – 0.48 = 0.17

 Tiếp tục tính entropy thuộc tính Temperature: “Hot”, “Mild”, “Cool”

10

Trang 13

NGUYỄN NHẬT HOÀNG – K24 MCS.1

Tính entropy trung bình của thuộc tính Temperature

Information Gain: Gain = Entropy(S) – I(Attribute)

Gain(Temperature) = 0.65 – 0.631 = 0.019

 Tương tự với thuộc tính Humidity (“Normal”, “High”) và Wind (“Weak”,

“Strong”) lần lượt là:

) = 0.547((((((((((((((( , Gain(Humidity) = 0.102

) = 0.618((((((((((((((( , Gain(Wind) = 0.032

Bước 3: Ta có thể thấy được Information Gain của thuộc tính Outlook là lớn nhấtnên suy ra thuộc tính Outlook sẽ là gốc của cây

Bước 4: Tiếp tục lặp lại với từng dữ liệu con của thuộc tính Outlook để ta có thểtạo được cây mong muốn

- Outlook = Overcast

11

Trang 15

NGUYỄN NHẬT HOÀNG – K24 MCS.1

Từ đó ta được cây quyết định sau

- Outlook: Rainy

Ta đi tính:

I(Rainy|Temperature), I(Rainy |Humidity), I(Rainy |Windy)

Gain(Rainy |Temperature), Gain(Rainy |Humidity), Gain(Rainy |Windy)

Ta được cây quyết định hoàn thiện sau:

13

Trang 16

NGUYỄN NHẬT HOÀNG – K24 MCS.1

2.4 Ưu điểm của mô hình Decision Tree

- Cây quyết định dễ hiểu Người ta có thể hiểu mô hình cây quyết định sau khi đượcgiải thích ngắn

- Việc chuẩn bị dữ liệu cho một cây quyết định là cơ bản hoặc không cần thiết Các

kỹ thuật khác thường đòi hỏi chuẩn hóa dữ liệu, cần tạo các biến phụ (dummy variable)

và loại bỏ các giá trị rỗng

- Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá trị là tênthể loại Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu chỉ gồm một loạibiến Chẳng hạn, các luật quan hệ chỉ có thể dùng cho các biến tên, trong khi mạng nơ-ron chỉ có thể dùng cho các biến có giá trị bằng số

- Cây quyết định là một mô hình hộp trắng Nếu có thể quan sát một tình huống chotrước trong một mô hình, thì có thể dễ dàng giải thích điều kiện đó bằng logic Boolean

14

Trang 17

2.5 Điều kiện dừng đối với các thuật toán decision tree

Trong các thuật toán decision tree nói chung và ID3 nói riêng, nếu ta tiếp tục phânchia các node chưa tinh khiết, ta sẽ thu được một tree mà mọi điểm trong tập huấn luyệnđều được dự đoán đúng (giả sử rằng không có hai input giống nhau nào cho output khácnhau) Khi đó, tree có thể sẽ rất phức tạp (nhiều node) với nhiều leaf node chỉ có một vàiđiểm dữ liệu Như vậy, nhiều khả năng overfitting sẽ xảy ra

 Để tránh overfitting, một trong số các phương pháp sau có thể được sử dụng Tạimột node, nếu một trong số các điều kiện sau đây xảy ra, ta không tiếp tục phân chia node

đó và coi nó là một leaf node:

 Nếu node đó có entropy bằng 0, tức mọi điểm trong node đều thuộc một class

 Nếu node đó có số phần tử nhỏ hơn một ngưỡng nào đó Trong trường hợp này, tachấp nhận có một số điểm bị phân lớp sai để tránh overfitting Class cho leaf node này cóthể được xác định dựa trên class chiếm đa số trong node

 Nếu khoảng cách từ node đó đến root node đạt tới một giá trị nào đó Việc hạn chế

chiều sâu của tree này làm giảm độ phức tạp của tree và phần nào giúp tránh overfitting

 Nếu tổng số leaf node vượt quá một ngưỡng nào đó

 Nếu việc phân chia node đó không làm giảm entropy quá nhiều (information gainnhỏ hơn một ngưỡng nào đó)

Ngoài các phương pháp trên, một phương pháp phổ biến khác được sử dụng đểtránh overfitting là pruning, tạm dịch là cắt tỉa

15

Trang 18

NGUYỄN NHẬT HOÀNG – K24 MCS.1

CHƯƠNG 3:

THỰC NGHIỆM THUẬT TOÁN ID3 TRONG MÔ HÌNH

DECISION TREE

3.2 Triển khai thuật toán ID3 với python

Dựa vào mô hình trên ta sử dụng thư viện sklearn trong python để triển khai kiểm

chứng Đầu tiên gọi đến thư viện cần:

import pandas as pd

from sklearn.tree import DecisionTreeClassifier

Thư viện pandas sử dụng để đọc dữ liệu từ file

Thư viện sklearn được sử dụng để xây dựng cây quyết định

Trang 19

NGUYỄN NHẬT HOÀNG – K24 MCS.1

Kết quả ta thu được:

Bây giờ ta đi xây dựng cây quyết định với giá trị X và y với phương thức fit Một

số tham số của hàm DecisionTreeClassifier

Với criterion= “entropy” có nghĩa là sử dụng entropy để đưa ra quyết định.Max_depth là chiều dài tối đa của cây quyết định có thể

Sau khi train dữ liệu ta tạo tập dữ liệu mới để kiểm tra hoặc sử dụng lại tập dữ liệu cũ đểkiểm tra tính chính xác với phương thức predict

[ , , , , ] =>[id = 1, outlook = rainy,

temperature = mild, humidity = high, wind = strongsX_new = [[1 1 2 0 0, , , , ]] print(dtree.predict(X_new))

Kết quả dự đoán là No vì như phân tích ở trên thì outlook = rainy thì sẽ phụ thuộc vàowind Nếu Wind = weak thì sẽ là yes, strongs thì sẽ no và kết quả cũng như vậy

from six import StringIO dot_data

Trang 20

NGUYỄN NHẬT HOÀNG – K24 MCS.1

3.3 ….

18

Trang 21

NGUYỄN NHẬT HOÀNG – K24 MCS.1

KẾT LUẬN ĐỀ TÀI

- Đã tìm hiểu được mô hình Decision Tree

- Hiểu được thuật toán ID3 và CART trong mô hình Decision Tree

- Sử dụng được các thư viện pandas, sklearn, matplotlib của ngôn ngữ lập trìnhpython

- Hiểu được điểm mạnh của ngôn ngữ python trong việc hỗ trợ lập trình các bài toánkhó

- Tài liệu nghiên cứu lập trình machine learning với ngôn ngữ python

19

Trang 22

NGUYỄN NHẬT HOÀNG – K24 MCS.1

TÀI LIỆU THAM KHẢO

[1] John Shafer, Rakesh Agrawal, Manish Mehta SPRINT- A Scalable Paralllel Classifierfor Data mining In Predeeings of the 22nd International Conference on Very Large Database, India, 1996

[2] Mohammed J Zaki, Ching-Tien Ho, Rekesh Agrawal Parallel Classification for Data Mining on Shared-Memory Multiprocessors IVM Almaden Research Center, San Jose, CA 95120

[3]https://scikit-learn.org/

[4] https://machinelearningcoban.com/2018/01/14/id3/#-gioi-thieu

20

Ngày đăng: 19/12/2023, 15:19

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