Nghiên cứu phương pháp cây quyết định và cài đặt mô phỏng thuật toán ID3 - Pdf 40

1

LỜI CẢM ƠN
Để hoàn thành luận văn này tôi đã nhận được sự giúp đỡ tận tình của các
thầy cô Khoa Công nghệ thông tin – Đại học Thái Nguyên, các thầy cô viện công
nghệ thông tin – viện Khoa học và công nghệ Việt Nam, các bạn bè đông nghiệp.
Đặc biệt là PGS.TS Vũ Đức Thi, người thầy trực tiếp hướng dẫn tôi trong quá trình
nghiên cứu và thực hiện luận văn.
Nhân dịp này tôi xin được bày tỏ lời cảm ơn tới tất cả các thầy cô giáo viện
Công nghệ thông tin – Viện Khoa học và công nghệ Việt Nam, các thầy cô ở khoa
Công nghệ thông tin – Đại học Thái nguyên đã giảng dạy và tạo mọi điều kienẹ
thuận lợi giúp đỡ chúng tôi trong quá trình học tập, nghiên cứu.
Tôi xin trân trọng cảm ơn PGS.TS. Vũ Đức Thi – Viện công nghệ thông tin,
người thầy trực tiếp hướng dẫn, đưa ra ý tưởng, định hướng, đóng góp các ý kiến
chuyên môn và tận tình giúp đỡ tôi trong suốt quá trình nghiên cứu và thực hiện
luận văn này.
Tôi xin cảm ơn các bạn bè đồng nghiệp và gia đình đã giúp đỡ, đóng góp ý
kiến và động viên tôi trong suốt qua trình học, quá trình nghiên cứu và hoàn thành
luận văn này.

Tác giả
Dương Thị Nhung


2

MỤC LỤC

Phần 1: TỔNG QUAN VỀ PHÁT HIỆN TRI THỨC VÀ ........................5
KHAI PHÁ DỮ LIỆU....................................................................................5
1.1.Khái quát chung về phát hiện tri thức và khai phá dữ liệu..............................5


3

1.8.Các thách thức và hướng phát triển của KPDL.............................................15

Phần 2: CÂY QUYẾT ĐỊNH VÀ CÁC THUẬT TOÁN KHAI PHÁ DỮ
LIỆU BẰNG CÂY QUYẾT ĐỊNH..............................................................16
2.1Cây quyết định................................................................................................16
2.1.1Mô tả.......................................................................................................................16
2.1.2Định nghĩa cây quyết định......................................................................................16
2.1.3Ưu điểm của cây quyết định. .................................................................................18
2.1.4Vấn đề xây dựng cây quyết định............................................................................19
2.1.5Rút ra các luật từ cây quyết định............................................................................20

2.2Các thuật toán KPDL bằng cây quyết định....................................................20
2.2.1Thuật toán CLS......................................................................................................21
2.2.2. Thuật toán ID3 .....................................................................................................26
2.2.3. Thuật toán C4.5 ...................................................................................................41
2.2.4. Thuật toán SLIQ...................................................................................................54
2.2.5. Cắt tỉa cây quyết định...........................................................................................62
2.2.6.Đánh giá và kết luận về các thuật toán xây dựng cây quyết định.........................68

Phần 3: CÀI ĐẶT MÔ PHỎNG THUẬT TOÁN ID3..............................70
3.1. Mô tả bài toán................................................................................................70
3.2. Màn hình nhập dữ liệu của chương trình......................................................70
3.3. Màn hình phân tích dữ liệu đưa ra kết quả của chương trình......................71

Phần 4: KẾT LUẬN....................................................................................72
TÀI LIỆU THAM KHẢO............................................................................73
Tài Liệu Tiếng Việt........................................................................................................73



5

Phần 1: TỔNG QUAN VỀ PHÁT HIỆN TRI THỨC VÀ
KHAI PHÁ DỮ LIỆU

1.1. Khái quát chung về phát hiện tri thức và khai phá dữ liệu.
Trong vài thập kỷ gần đây, khả năng tạo sinh và lưu trữ dữ liệu của con
người đã tăng lên nhanh chóng. Lượng dữ liệu lớn được lưu trữ dẫn đến một đòi hỏi
cấp bách phải có những kỹ thuật mới, những công cụ tự động mới trợ giúp con
người một cách thông minh trong việc chuyển đổi một lượng lớn dữ liệu thành
thông tin hữu ích và tri thức. Vì vậy mà kỹ thuật khám phá tri thức (Knowledge
Discovery) đã ra đời và ngày càng phát triển để đáp ứng nhu cầu của con người
trong việc xử lý các kho dữ liệu lớn.
Vậy tri thức ở đây là gì? Thông thường chúng ta coi dữ liệu như là một dãy
các bit, các số và các ký hiệu, hoặc các “đối tượng” được gửi cho một chương trình
dưới một định dạng nhất định nào đó. Chúng ta sử dụng các bit để đo lường thông
tin và xem nó như là dữ liệu đã được lọc bỏ dư thừa, được rút gọn tới mức tối thiểu.
Bít được dùng làm đơn vị đặc trưng cho dữ liệu. Chúng ta có thể xem tri thức như là
các thông tin tích hợp, bao gồm các sự kiện và các mối quan hệ giữa chúng. Các
mối quan hệ này có thể được hiểu, được phát hiện ra, hoặc có thể được học. Nói
cách khác, tri thức có thể coi là dữ liệu có độ trừu tượng và tổ chức cao.
Hiện nay khám phá tri thức đang phát triển mạnh mẽ trong nhiều ngành học
thuật. Nó được kết hợp cùng với việc quản lý cơ sở dữ liệu, khoa học thống kê, học
máy, nghiên cứu mối quan hệ giữa các lĩnh vực nhằm rút ra các tri thức có ích từ
tập hợp lớn dữ liệu.
Khám phá tri thức là quá trình nhận biết cái logic, cái mới lạ, những tri thức
tiềm tàng hữu ích từ cơ sở dữ liệu, và cuối cùng là việc hiểu được các mẫu các mô
hình trong dữ liệu.

7

1.2.1. Hình thành và định nghĩa bài toán
Đây là bước tìm hiểu lĩnh vực ứng dụng và hình thành bài toán, bước này quyết
định cần rút ra những tri thức dạng như thế nào, đồng thời lựa chọn các phương
pháp KPDL thích hợp với mục đích ứng dụng và bản chất của dữ liệu.
1.2.2. Thu thập và tiền xử lý dữ liệu
Trong bước này dữ liệu được thu thập ở dạng thô (nguồn dữ liệu thu thập có thể
là từ các kho dữ liệu hay nguồn thông tin internet). Trong giai đoạn này dữ liệu
cũng được tiền xử lý để biến đổi và cải thiện về chất lượng cho phù hợp với phương
pháp KPDL được chọn lựa trong bước một.
Bước này thường chiếm nhiều thời gian nhất trong quá trình khám phá tri thức.
Các công việc tiền xử lý dữ liệu bao gồm :
1. Xử lý dữ liệu bị mất/ thiếu: Các dữ liệu bị thiếu sẽ được thay thế bởi các
giá trị thích hợp.
2. Khử sự trùng lặp: các đối tượng dữ liệu trùng lặp sẽ bị loại bỏ. Kỹ thuật
này không được sử dụng cho các tác vụ có quan tâm đến phân bố dữ liệu.
3. Giảm nhiễu: dữ liệu nhiễu và các đối tượng tách rời khỏi phân bố chung
sẽ bị loại bỏ khỏi tập dữ liệu.
4. Chuẩn hoá: thông thường là chuẩn hoá miền giá trị của dữ liệu cho phù
hợp.
5. Rời rạc hoá: chính là việc biến đổi các dữ liệu dạng số về dữ liệu với các
giá trị rời rạc.
6. Rút trích và xây dựng đặc trưng mới từ các thuộc tính đã có.
7. Giảm chiều: là loại bỏ bớt các thuộc tính chứa ít thông tin.
1.2.3. KPDL và rút ra các tri thức
Đây là bước quan trọng nhất trong tiến trình khám phá tri thức. Kết quả của
bước này là trích ra được các mẫu và/hoặc các mô hình ẩn dưới một khối lượng lớn
dữ liệu. Một mô hình có thể là một biểu diễn cấu trúc tổng thể một thành phần của



Hình 1.2. Quá trình KPDL
Quá trình KPDL bắt đầu với kho dữ liệu thô và kết thúc với tri thức được chiết
xuất ra. Các bước của quá trình như sau:
1.3.1. Gom dữ liệu ( gatherin )
Tập hợp dữ liệu là bước đầu tiên trong KPDL. Bước này lấy dữ liệu từ trong một
cơ sở dữ liệu, một kho dữ liệu, thậm chí dữ liệu từ những nguồn cung ứng web.
1.3.2. Trích lọc dữ liệu ( selection )
Ở giai đoạn này dữ liệu được lựa chọn và phân chia theo một số tiêu chuẩn
nào đó.
1.3.3. Làm sạch và tiền xử lý dữ liệu ( cleansing preprocessing preparation ).
Giai đoạn thứ ba này là giai đoạn hay bị sao lãng, nhưng thực tế nó là một bước
rất quan trọng trong quá trình KPDL. Một số lỗi thường mắc phải trong khi gom dữ
liệu là dữ liệu không đầy đủ hoặc không thống nhất, thiếu chặt chẽ. Vì vậy dữ liệu
thường chứa các giá trị vô nghĩa và không có khả năng kết nối lại với nhau.


10

Ví dụ Sinh viên có tuổi =200. Giai đoạn thứ ba này nhằm xử lý các dữ liệu như
trên. Những dữ liệu dạng này thường được xem là thông tin dư thừa, không có giá
trị. Bởi vậy đây là một quá trình rất quan trọng. Nếu dữ liệu không được làm sạchtiền xử lý - chuẩn bị trước thì sẽ gây nên những kết quả sai lệch nghiêm trọng về
sau.
1.3.4. Chuyển đổi dữ liệu ( transformation )
Trong giai đoạn này, dữ liệu có thể được tổ chức và sử dụng lại. Mục đích của
việc chuyển đổi dữ liệu là làm cho dữ liệu phù hợp hơn với mục đích KPDL.
1.3.5. Phát hiện và trích mẫu dữ liệu ( pattern extraction and discovery)
Đây là bước tư duy trong KPDL. Ở trong giai đoạn này nhiều thuật toán khác
nhau đã được sử dụng để trích ra các mẫu từ dữ liệu. Thuật toán thường dùng để
trích mẫu dữ liệu là thuật toán phân loại dữ liệu, kết hợp dữ liệu, thuật toán mô hình

trên cơ sở dữ liệu hiện thời. Một số kỹ thuật khai phá trong nhóm này là: phân
lớp (Classification), hồi quy (Regression), cây quyết định (Decision tree),
thống kê (statictics), mạng nơron (neural network), luật kết hợp (association
rules),….
Một số kỹ thuật phổ biến thường được sử dụng để KPDL hiện nay là :
1.5.1. Phân lớp dữ liệu:
Mục tiêu của phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu. Quá
trình gồm hai bước: xây dựng mô hình, sử dụng mô hình để phân lớp dữ liệu. Mô
hình được sử dụng để dự đoán nhãn lớp khi mà độ chính xác của mô hình chấp
nhận được.
1.5.2. Phân cụm dữ liệu:
Mục tiêu của phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong tập
dữ liệu vào các cụm, sao cho những đối tượng thuộc cùng một lớp là tương đồng
nhau.
1.5.3. Khai phá luật kết hợp:
Mục tiêu của phương pháp này là phát hiện và đưa ra mối liên hệ giữa các giá
trị dữ liệu trong cơ sở dữ liệu. Đầu ra của giải thuật luật kết hợp là tập luật kết hợp
tìm được. Phương pháp khai phá luật kết hợp gồm có hai bước:


12

-

Bước 1: Tìm ra tất cả các tập mục phổ biến. Một tập mục phổ biến được xác
định thông qua việc tính độ hỗ trợ và thoả mãn độ hỗ trợ cực tiểu.

-

Bước 2: Sinh ra các luật kết hợp mạnh từ tập mục phổ biến, luật phải thoả mãn

-

CSDL quan hệ

-

CSDL đa chiều

-

CSDL giao dịch

-

CSDL quan hệ - đối tượng

-

CSDL không gian và thời gian

-

CSDL đa phương tiện.

1.7. Các lĩnh vực liên quan và ứng dụng của KPDL
1.7.1. Các lĩnh vực liên quan đến khám phá tri thức và KPDL
Khám phá tri thức và KPDL được ứng dụng trong nhiều ngành và lĩnh vực
khác nhau như: tài chính ngân hàng, thương mại, y tế, giáo dục, thống kê, máy học,
trí tuệ nhân tạo, cơ sở dữ liệu, thuật toán toán học, tính toán song song với tốc độ
cao, thu thập cơ sở tri thức cho hệ chuyên gia,…Trong đó KPDL rất gần gũi với


1.7.2. Ứng dụng của KPDL
KPDL được vận dụng trong nhiều lĩnh vực khác nhau nhằm khai thác nguồn
dữ liệu phong phú được lưu trữ trong các hệ thống thông tin. Tuỳ theo bản chất của
từng lĩnh vực, việc vận dụng KPDL có những cách tiếp cận khác nhau.
KPDL được vận dụng có hiệu quả để giải quyết các bài toán phức tạp trong
những ngành đòi hỏi kỹ thuật cao như: tìm kiếm mỏ dầu từ ảnh viễn thám, xác định
vùng gãy trong ảnh địa chất để dự đoán thiên tai, cảnh báo hỏng hóc trong các hệ
thống sản xuất.
Phân nhóm và dự đoán là những công cụ rất cần thiết cho việc quy hoạch và
phát triển hệ thống quản lý và sản xuất trong thực tế như: dự đoán tải sử dụng điện
năng cho các công ty cung cấp điện, lưu lượng viễn thông cho các công ty điện
thoại, mức độ tiêu thụ sản phẩm cho các nhà sản xuất, giá trị của sản phẩm trên thị
trường cho các công ty tài chính hay phân nhóm khách hàng tiềm năng.
Ngoài ra KPDL còn được áp dụng trong việc giải quyết các vấn đề xã hội
như: phát hiện tội phạm hay tăng cường an ninh xã hội và mang lại những hiệu quả
thiết thực cho các hoạt động trong đời sống hàng ngày.
Một số ứng dụng cụ thể như sau :
- KPDL được sử dụng để phân tích dữ liệu, hỗ trợ ra quyết định.
- Trong sinh học: nó dùng để tìm kiếm, so sánh các hệ gen và thông tin di
truyền, tìm mối liên hệ giữa các hệ gen và chuẩn đoán một số bệnh di truyền.
- Trong y học: KPDL giúp tìm ra mối liên hệ giữa các triệu chứng, chuẩn đoán
bệnh.
- Tài chính và thị trường chứng khoán: KPDL dùng để phân tích tình hình tài
chính, phân tích đầu tư, phân tích cổ phiếu.
- Khai thác dữ liệu web.
- Trong thông tin kỹ thuật: KPDL dùng để phân tích các sai hỏng, điều khiển và
lập lịch trình.





16

Phần 2: CÂY QUYẾT ĐỊNH VÀ CÁC THUẬT TOÁN KHAI PHÁ DỮ LIỆU
BẰNG CÂY QUYẾT ĐỊNH
2.1 Cây quyết định
2.1.1 Mô tả
Cây quyết định (decision tree) là công cụ dùng để phân lớp dữ kiện, nó có
cấu trúc cây. Mỗi cây quyết định là một tượng trưng cho một sự quyết định của một
lớp các dữ kiện nào đó. Mỗi nút trong cây là tên của một lớp hay một phép thử
thuộc tính c ụ thể nào đó, phép thử này phân chia không gian trạng thái các dữ kiện
tại nút đó thành các kết quả có thể đạt được của phép thử. Mõi tập con được phân
chia của phép thử là không gian con của các sự kiện, nó tương ứng với một vấn đề
con của sự phân lớp.
2.1.2 Định nghĩa cây quyết định
Trong lý thuyết quyết định, một cây quyết định (decision tree) là một đồ thị
của các quyết định và hậu quả có thể của nó (bao gồm cả rủi ro và hao phí tài
nguyên ). Cây quyết định được sử dụng để xây dựng một kế hoạch nhằm đạt được
mục tiêu mong muốn. Các cây quyết định được dùng để hỗ trợ quá trình ra quyết
định. Cây quyết định là một dạng đặc biệt của cấu trúc cây.
Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự báo
(predictive model), nghĩa là một ánh xạ từ các quan sát về một sự vật /hiện tượng tới
các kết luận về giá trị mục tiêu của sự vật/hiện tượng. Mỗi nút trong (internal node)
tương ứng với một biến; đường nối giữa nó với nút con của nó thể hiện giá trị cụ thể
cho biến đó. Mỗi nút lá đại diện cho giá trị dự đoán của biến mục tiêu, cho trước
các giá trị dự đoán của biến được biểu diễn bởi đường đi từ nút gốc tới nút lá đó. Kỹ
thuật học máy dùng trong cây quyết định được gọi là học bằng cây quyết định, hay
chỉ gọi với cái tên ngắn gọn là cây quyết định.
Cây quyết định có thể được mô tả như là sự kết hợp của các kỹ thuật toán học và

3
40
7
Good
4
55
40
Bad
5
55
100
Good
6
45
60
good
Bảng 2.1 : Tập dữ liệu huấn luyện quyết định phân lớp mức lương
Cây quyết định phân lớp mức lương có dạng như sau:


18

Age?

≤ 35

> 35

salary


- Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số, liên tục và dữ liệu

dạng phân loại rời rạc. Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu


19

chỉ gồm các thuộc tính có giá trị hoặc liên tục (dạng số) hoặc rời rạc. Chẳng hạn,
các luật quan hệ chỉ có thể dùng cho các biến tên loại rời rạc, 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
cho trướ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.
- Có thể thẩm định một mô hình cây quyết định bằng các kiểm tra thống kê.
Điều này làm cho ta có thể tin tưởng vào kết quả của mô hình.
Cây quyết định có thể xử lý một lượng rất lớn dữ liệu và đưa ra các kết quả
phân tích trong thời gian đủ ngắn. Chính vì vậy nó giúp cho các nhà chiến lược đưa
ra các quyết định kịp thời nhanh chóng dựa vào việc phân tích cây quyết định, trong
thời đại công nghệ thông tin mà ai có được thông tin và đưa ra quyết định sớm thì
người đó gần như nắm chắc phần thắng trong kinh doanh.
2.1.4 Vấn đề xây dựng cây quyết định
Xây dựng cây quyết định là việc làm quan trọng nhất trong việc sử dụng cây
quyết định để KPDL. Có nhiều thuật toán khác nhau để xây dựng cây quyết định.
Một số thuật toán cơ bản là: CLS, ID3, C4.5, SLIQ, SPRINT, EC4.5, C5.0…Quá
trình xây dựng cây quyết định dù được thực hiện bằng thuật toán nào, thì nói chung
đều chia ra làm ba giai đoạn cơ bản như sau.
a. Xây dựng cây

Trong giai đoạn này, tập dữ liệu huấn luyện được chia một cách đệ quy cho
đến khi các mẫu dữ liệu huấn luyện ở mỗi nút lá là thuộc cùng một lớp, hay còn gọi

IF (Age<=35) AND (salary>40) THEN class = good
IF (Age>35) AND (salary 35) AND(salary>50) THEN class = good
2.2 Các thuật toán KPDL bằng cây quyết định
Kỹ thuật khai phá dữ liệu bằng cây quyết định là kỹ thuật thuật được trình bày
trọng tâm trong luận văn này.


21

Từ rất lâu, người ta đã quan tâm đến việc phân loại dữ liệu bằng cây quyết
định. Mỗi cách phân loại được ghi chép lại và sau đó được công bố như là một kỹ
thuật KPDL. Mỗi kỹ thuật theo thời gian và theo nhu cầu cần sử dụng đã dần bộc lộ
những điểm mạnh và điểm yếu của mình, cũng như không ngừng được cải tiến để
phục vụ mục đích KPDL.
2.2.1 Thuật toán CLS
Xây dựng cây quyết định lần đầu tiên được Hoveland và Hint giới thiệu trong
Concept Learning System (CLS) vào cuối những năm 50 của thế kỷ 20. Sau đó gọi
tắt là thuật toán CLS. Thuật toán CLS được thiết kế theo chiến lược chia để trị từ
trên xuống và gồm các bước sau:
1)

Tạo một nút T, nút này gồm tất cả các mẫu của tập huấn luyện.

2)

Nếu tất cả các mẫu trong T có thuộc tính quyết định mang giá trị "yes"

(hay thuộc cùng một lớp), thì gán nhãn cho nút T là "yes" và dừng lại. T lúc
này là nút lá.


Wind

Play tennis

D1

Sunny

Hot

High

Weak

No

D2

Sunny

Hot

High

Strong

No

D3


Weak

Yes

D6

Rain

Cool

Normal

Strong

No

D7

Overcast

Cool

Normal

Strong

Yes

D8


Weak

Yes

D11

Sunny

Mild

Normal

Strong

Yes

D12

Overcast

Mild

High

Strong

Yes

D13

sau:
-

Chọn thuộc tính outlook = {sunny, overcast, rain} ta có cây như sau:


23

Outlook
[ D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14 ]

Sunny

[D1,D2,D8,D9,D11]

(Cần mở rộng)

Overcast

Rain

[ D3,D7,D12,D13]

yes

[D4,D5,D6,D10,D14]

(cần mở rộng)

Hình 2.2


High

normal

no

yes

Hình 2.3
-

Chọn thuộc tính wind ={weak, strong} để mở rộng cho nhánh bên phải, chúng ta
được cây con sau:


25

Outlook
[ D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14 ]

Sunny

Overcast

Rain
Wind

[ D3,D7,D12,D13]


Ví dụ: khi ta áp dụng thuật toán CLS để xây dựng cây với thứ tự các thuộc tính
được chọn là: Outlook, temperature, wind, humarity thì cây kết quả sẽ có hình dạng
như sau:



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status