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

Nghiên cứu cây quyết định và ứng dụng vào bài toán cụ thể (bài toán đầu tư)

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 (335.33 KB, 24 trang )

1.

3


LỜI NÓI ĐẦU
Ra quyết định? Đó không là công việc duy nhất của nhà quản trị. Thực ra,
nhà quản trị nói chung không dành nhiều thời gian để ra quyết định. Tuy nhiên,
quyết định là một nhiệm vụ quản trị cụ thể và là điều mang lại kết quả/hệ quả sâu
rộng nhất. Khi nhà quản trị ra một quyết định “tốt”, thì thường dường như rằng ít
có người chú ý đến, mặt khác, khi nhà quản lý ra quyết định “tồi”, quyết định đó
có thể được nhớ hàng nhiều năm chưa nguôi ngoai.
Vậy, làm sao để có thể giúp một người quản trị ra những quyết định đúng
đắn? Khi ra quyết định với độ không chắc chắn trong trường hợp có ít các phương
án để chọn lựa thì việc xây dựng Cây quyết định để phân lớp được tập dữ liệu và
từ đó giúp một nhà quản trị có đủ cơ sở cũng như tùy vào mục đích để ra quyết
định hiệu quả.
Cụ thể trong nội dung bài tiểu luận này chúng em sẽ trình bày về lý thuyết
cây quyết định trong việc hỗ trợ ra quyết định trong một bài toán cụ thể: “Bài toán
đầu tư”. Từ đó giúp chúng ta có cái nhìn cụ thể, rõ ràng và toàn diện hơn về ứng
dụng của cây quyết định.
Trong quá trình thực hiện, rất có thể có những sai sót không thể tránh khỏi.
Kính mong thầy cô và các bạn có thể vui lòng góp ý cho nhóm chúng em được
hoàn thiện hơn.
Mọi sự góp ý xin gửi về hòm thư điện tử:

Cám ơn sự đón đọc và góp ý của mọi người.
Nhóm thực hiện.

4



CHƯƠNG I. SƠ BỘ VỀ ĐỀ TÀI
1. Phát biểu về đề tài
Để giúp người quản trị có thể dẽ dàng trong việc ra các quyết định thì việc
phân lớp dữ liệu là vô cùng quan trọng. Có nhiều phương pháp phân lớp được đề
xuất, tuy nhiên không có phương pháp tiếp cận phân loại nào là tối ưu và chính
xác hơn hẳn những phương pháp khác. Dù sao với mỗi phương pháp có một lợi
thế và bất lợi riêng khi sử dụng. Đối với các bài toán có ít các phương án lựa chọn
thì dường như việc phân tích bằng Cây quyết định để tìm ra các quy luật phân lớp
là một phương án hợp lí và hiệu quả. Với mong muốn nghiên cứu về việc
ứng dụng cây quyết định để giải quyết hiệu quả các bài toán đầu
tư, tôi đã chọn đề tài “Nghiên cứu cây quyết định và ứng
dụng vào bài toán cụ thể (bài toán đầu tư)”
2. Mục tiêu nghiên cứu
Nghiên cứu các vấn đề cơ bản của thuật toán xây dựng cây quyết định ID3,
cài đặt và đánh giá thuật toán đó; bước đầu áp dụng mô hình cây quyết định
(ID3: Decision Tree) đã xây dựng vào việc phân tích dữ liệu và giải các bài toán
đầu tư.
3. Đối tượng, phạm vi nghiên cứu
Tìm hiểu thuật toán khai phá dữ liệu ID3 để phân loại đối tượng đầu tư dựa
trên dữ liệu đã có.
Cài đặt và thử nghiệm với dữ liệu cho trước.
4. Phương pháp nghiên cứu
 Phương pháp nghiên cứu tài liệu: Phân tích và tổng hợp các tài liệu về khai
phá dữ liệu sử dụng thuật toán về Decision Tree có thuật toán ID3, phân
loại dữ liệu, mô hình dự báo.
 Phương pháp thực nghiệm: Ứng dụng kết hợp kỹ thuật phân loại và mô
hình cây quyết định để có thể chọn ra phương án tối ưu nhất dựa theo mục
đích của nhà quản trị.
5



 CHƯƠNG II. CƠ SỞ LÝ THUYẾT CÂY QUYẾT ĐỊNH
I.Tổng quan
Cây quyết định (decision tree) là một phương pháp rất mạnh và phổ biến cho
cả hai nhiệm vụ của khai phá dữ liệu là phân loại và dự báo. Mặt khác, cây quyết
định còn có thể chuyển sang dạng biểu diễn tương đương dưới dạng tri thức là các
luật If-Then.
Cây quyết định là cấu trúc biễu diễn dưới dạng cây. Trong đó, mỗi nút trong
(internal node) biễu diễn một thuộc tính, nhánh (branch) biễu diễn giá trị có thể
có của thuộc tính, mỗi lá (leaf node) biểu diễn các lớp quyết định và đỉnh trên
cùng của cây gọi là gốc (root). Cây quyết định có thể được dùng để phân lớp bằng
cách xuất phát từ gốc của cây và di chuyển theo các nhánh cho đến khi gặp nút lá.
Trên cơ sở phân lớp này chúng ta có thể chuyển đổi về các luật quyết định.
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.
Tạo cây quyết định chính là quá trình phân tích cơ sở dữ liệu, phân lớp và
đưa ra dự đoán. Cây quyết định được tạo thành bằng cách lần lượt chia (đệ quy)
một tập dữ liệu thành các tập dữ liệu con, mỗi tập con được tạo thành chủ yếu từ
các phần tử của cùng một lớp. Lựa chọn thuộc tính để tạo nhánh thông qua
Entropy và Gain.
Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá
dữ liệu. Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện
cho các phân loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới
phân loại đó. Một cây quyết định có thể được học bằng cách chia tập hợp nguồn
thành các tập con dựa theo một kiểm tra giá trị thuộc tính . Quá trình này được lặp
lại một cách đệ qui cho mỗi tập con dẫn xuất. Quá trình đệ qui hoàn thành khi
không thể tiếp tục thực hiện việc chia tách được nữa, hay khi một phân loại đơn có
thể áp dụng cho từng phần tử của tập con dẫn xuất.

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à tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu
cho trước.
6


Dữ liệu được cho dưới dạng các bản ghi có dạng: ( x, y )  ( x1 , x2 , x3 ,..., xk , y ) . Biến
phụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu, phân loại hay
tổng quát hóa. x1 , x2 , x3 ... là các biến sẽ giúp ta thực hiện công việc đó.
2.

Các kiểu cây quyết định:
Cây quyết định còn có hai tên khác:

¡ Cây hồi quy (Regression tree) : ước lượng các hàm giá có giá trị là số thực thay vì

được sử dụng cho các nhiệm vụ phân loại. (ví dụ: ước tính giá một ngôi nhà hoặc
khoảng thời gian một bệnh nhân nằm viện)
¡ Cây phân loại (Classification tree) : nếu y là một biến phân loại như: giới tính (nam

hay nữ), kết quả của một trận đấu (thắng hay thua).
II.CẤU TRÚC CỦA CÂY QUYẾT ĐỊNH:
Cây quyết định là một cấu trúc được sử dụng để chia liên tiếp một tập các
bản ghi lớn thành các tập con nhỏ hơn bằng cách áp dụng một chuỗi các luật đơn
giản. Với mỗi phép chia liên tiếp, các tập con thu được trong tập kết quả sẽ ngày
càng giống nhau. Nó có cấu trúc như sau :
- Mỗi nút mang một thuộc tính (biến độc lập)
- Mỗi nhánh tương ứng với một giá trị của thuộc tính
- Mỗi nút lá là một lớp (biến phụ thuộc)
Đối với cây quyết định, tại mỗi nút, một thuộc tính sẽ được chọn ra để

phân tách tập mẫu thành những lớp khác nhau nhiều nhất có thể. Tiến hành lặp lại
bước này đến khi kết thúc ta sẽ có được một tập các lớp đã được định nghĩa trước.
Một trường hợp mới sẽ được phân loại dựa vào việc tìm một đường dẫn phù hợp
tới nút lá.
III.Phương pháp xây dựng cây quyết định
 Việc tạo cây quyết định bao gồm 2 giai đoạn : Tạo cây và tỉa cây .
-

Để tạo cây ở thời điểm bắt đầu tất cả những ví dụ huấn luyện là ở gốc sau đó phân
chia ví dụ huấn luyện theo cách đệ qui dựa trên thuộc tính được chọn .

7


-

Việc tỉa cây là xác định và xóa những nhánh mà có phần tử hỗn loạn hoặc những
phần tử nằm ngoài (những phần tử không thể phân vào một lớp nào đó) .
 Có rất nhiều biến đổi khác nhau về nòng cốt của thuật toán cây quyết định,
mặc dù vậy chúng vẫn tuân theo những bước cơ bản sau :
- Cây được thiết lập từ trên xuống dưới và theo cách thức chia để trị.
- Ở thời điểm bắt đầu, các mẫu huấn luyện nằm ở gốc của cây
- Thuộc tính được phân loại (Rời rạc hóa các thuộc tính dạng phi số )
- Chọn một thuộc tính để phân chia thành các nhánh. Thuộc tính được chọn
dựa trên độ đo thống kê hoặc độ đo heuristic.
- Tiếp tục lặp lại việc xây dựng cây quyết định cho các nhánh.
 Điều kiện để dừng việc phân chia:
+ Tất cả các mẫu rơi vào một nút thuộc về cùng một lớp (nút lá)
+ Không còn thuộc tính nào có thể dùng để phân chia mẫu nữa
+ Không còn lại mẫu nào tại nút.

IV.Xây dựng cây quyết định
1. Chọn thuộc tính phân tách:
Lúc khởi đầu, ta có trong tay một tập luyện chứa tập các bản ghi được
phân loại trước – tức là giá trị của biến đích được xác định trong tất cả các trường
hợp. Cây quyết định được xây dựng bằng cách phân tách các bản ghi tại mỗi nút
dựa trên một thuộc tính đầu vào. Rõ ràng nhiệm vụ đầu tiên là phải chọn ra xem
thuộc tính nào đưa ra được sự phân tách tốt nhất tại nút đó.
Độ đo được sử dụng để đánh giá khả năng phân tách là độ tinh khiết.
Chúng ta sẽ có những phương pháp xác định để tính toán độ tinh khiết một cách
chi tiết, tuy nhiên chúng đều cố gắng đạt được hiệu quả như nhau. Một sự phân
tách tốt nhất là sự phân tách làm tăng độ tinh khiết của tập bản ghi với số lượng
lớn nhất. Một sự phân tách tốt cũng phải tạo ra các nút có kích cỡ tương tự nhau,
hay chí ít cũng không tạo ra các nút có quá ít bản ghi.

8


Dữ liệu gốc

Phép phân tách kém

Phép phân tách kém

Phép phân tách tốt

Thuật toán xây dựng cây quyết định hết sức thấu đáo. Chúng bắt đầu bằng
việc chọn mỗi biến đầu vào chưa được chọn và đo mức độ tăng độ tinh khiết trong
các kết quả ứng với mỗi biến. Sau đó một phép tách tốt nhất sẽ được sử dụng trong
phép tách khởi đầu, để tạo hai hay nhiều nút con. Nếu không phép phân tách nào
có khả năng (có thể do có quá ít bản ghi) hoặc do không có phép phân tách nào

làm tăng độ tinh khiết thì thuật toán kết thúc và nút đó trở thành nút lá.
Phép phân tách trên các biến đầu vào kiểu số: đối với sự phân tách nhị
phân trên một biến đầu vào, mỗi giá trị mà biến đó chứa đều có thể trở thành giá
trị dự tuyển. Phép phân tách nhị phân dựa trên biến đầu vào kiểu số có dạng X <
N. Để cải thiện hiệu năng, một số thuật toán không kiểm tra hết toàn bộ các giá trị
của biến mà chỉ kiểm tra trên tập mẫu giá trị của biến đó.
9


Phép phân tách trên các biến đầu vào định tính : thuật toán đơn giản nhất
trong việc phân tách trên một biến định tính là ứng với mỗi giá trị của biến đó, ta
tạo một nhánh tương ứng với một lớp được phân loại. Phương pháp này được sử
dụng thực sự trong một số phần mềm nhưng mang lại hiệu quả thấp. Một phương
pháp phổ biến hơn đó là nhóm các lớp mà dự đoán cùng kết quả với nhau. Cụ thể,
nếu hai lớp của biến đầu vào có phân phối đối với biến đích chỉ khác nhau trong
một giới hạn cho phép thì hai lớp này có thể hợp nhất với nhau.
Phép phân tách với sự có mặt của các giá trị bị thiếu: một trong những
điểm hay nhất của cây quyết định là nó có khả năng xử lý các giá trị bị thiếu bằng
cách coi giá trị rỗng (NULL) là một nhánh của nó. Phương pháp này được ưa thích
hơn so với việc vứt các bản ghi có giá trị thiếu hoặc cố gắng gắn giá trị nào đó cho
nó bởi vì nhiều khi các giá trị rỗng cũng có ý nghĩa riêng của nó. Mặc dù phép
phân tách giá trị rỗng như là một lớp riêng rẽ khá có ý nghĩa nhưng người ta
thường đề xuất một giải pháp khác. Trong khai phá dữ liêu, mỗi nút chứa vài luật
phân tách có thể thực hiện tại nút đó, mỗi phép phân tách đó dựa vào các biến đầu
vào khác nhau. Khi giá trị rỗng xuất hiên trong biến đầu vào của phép phân tách
tốt nhất, ta sử dụng phép phân tách thay thế trên biến đầu vào có phép phân tách
tốt thứ hai.
2. Phép kiểm tra để chọn phép phân tách tốt nhất:
- Độ lợi thông tin (Information gain)





Information gain là đại lượng được sử dụng để chọn lựa thuộc tính với
information gain lớn nhất.

Cho P và N là hai lớp và S là một tập dữ liệu có p phần tử lớp P và n phần tử lớp
N.
Khối lượng thông tin cần thiết để quyết định một mẫu tùy ý có thuộc về lớp P hay
N hay không là:

Info( p, n)  Entropy (


p
n
p
p
n
n
,
)
log 2

log 2
pn pn
pn
pn pn
pn


Cho các tập {S1, S2 , …, Sv} là một phân hoạch trên tập S, khi sử dụng
thuộc tính A.
10




Cho mỗi Si chứa pi mẫu lớp P và ni mẫu lớp N



Entropy, hay thông tin mong muốn cần thiết để phân lớp các đối tượng
trong tất cả các cây con Si là:

p  ni
Entropy ( A)  � i
Info( pi , ni )
i 1 p  n




Thông tin có được bởi việc phân nhánh trên thuộc tính A là:

Gain( A)  Info( p, n)  Entropy ( A)
V.Biến đổi cây quyết định thành luật
- Biểu diễn tri thức dưới dạng luật IF-THEN .
- Mỗi luật tạo ra từ mỗi đường dẫn từ gốc đến lá.
- Mỗi cặp giá trị thuộc tính dọc theo đường dẫn tạo nên phép kết (phép
AND – và)

- Các nút lá mang tên của lớp
VI.Thuật toán phân lớp học cây quyết định
1. Giới thiệu:
Giải thuật quy nạp cây ID3 (gọi tắt là ID3) là một giải thuật học đơn giản
nhưng tỏ ra thành công trong nhiều lĩnh vực.
ID3 biểu diễn các khái niệm (concept) ở dạng các cây quyết định (decision
tree). Biểu diễn này cho phép chúng ta xác định phân loại của một đối tượng bằng
cách kiểm tra các giá trị của nó trên một số thuộc tính nào đó.
Như vậy, nhiệm vụ của giải thuật ID3 là học cây quyết định từ một tập các
ví dụ rèn luyện (training example) hay còn gọi là dữ liệu rèn luyện (training data).
Hay nói khác hơn, giải thuật có:
 Đầu vào: Một tập hợp các ví dụ. Mỗi ví dụ bao gồm các thuộc tính mô
tả một tình huống, hay một đối tượng nào đó, và một giá trị phân loại
của nó.

11


 Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong
tập dữ liệu rèn luyện, và hy vọng là phân loại đúng cho cả các ví dụ
chưa gặp trong tương lai.
2. Giải thuật ID3 xây dựng cây quyết định từ trên xuống
ID3 xây dựng cây quyết định (cây QĐ) theo cách từ trên xuống. Lưu ý rằng đối
với bất kỳ thuộc tính nào, chúng ta cũng có thể phân vùng tập hợp các ví dụ rèn
luyện thành những tập con tách rời, mà ở đó mọi ví dụ trong một phân vùng
(partition) có một giá trị chung cho thuộc tính đó. ID3 chọn một thuộc tính để
kiểm tra tại nút hiện tại của cây và dùng trắc nghiệm này để phân vùng tập hợp các
ví dụ; thuật toán khi đó xây dựng theo cách đệ quy một cây con cho từng phân
vùng. Việc này tiếp tục cho đến khi mọi thành viên của phân vùng đều nằm trong
cùng một lớp; lớp đó trở thành nút lá của cây.

Vì thứ tự của các trắc nghiệm là rất quan trọng đối với việc xây dựng một cây
QĐ đơn giản, ID3 phụ thuộc rất nhiều vào tiêu chuẩn chọn lựa trắc nghiệm để làm
gốc của cây.
* ID3 xây dựng cây quyết định theo giải thuật sau:
Function induce_tree(tập_ví_dụ, tập_thuộc_tính)
begin
if mọi ví dụ trong tập_ví_dụ đều nằm trong cùng một lớp then
return một nút lá được gán nhãn bởi lớp đó
else if tập_thuộc_tính là rỗng then
return nút lá được gán nhãn bởi tuyển của tất cả các lớp trong tập_ví_dụ
else
begin
chọn một thuộc tính P, lấy nó làm gốc cho cây hiện tại;
xóa P ra khỏi tập_thuộc_tính;
với mỗi giá trị V của P
begin
tạo một nhánh của cây gán nhãn V;
Đặt vào phân_vùngV các ví dụ trong tập_ví_dụ có giá trị V tại thuộc
tính P;
Gọi induce_tree(phân_vùngV, tập_thuộc_tính), gắn kết quả vào nhánh
12


V
end
end
end

 Các khả năng có thể có của các phân vùng (partition):
Trong quá trình xây dựng cây QĐ, phân vùng của một nhánh mới có thể có các

dạng sau:
 Có các ví dụ thuộc các lớp khác nhau, chẳng hạn như có cả ví dụ âm
và dương.
 Tất cả các ví dụ đều thuộc cùng một lớp, chẳng hạn như toàn âm hoặc
toàn dương.
 Không còn ví dụ nào => giải thuật trả về mặc nhiên
 Không còn thuộc tính nào => nghĩa là dữ liệu bị nhiễu, khi đó giải
thuật phải sử dụng một luật nào đó để xử lý, chẳng hạn như luật đa số
(lớp nào có nhiều ví dụ hơn sẽ được dùng để gán nhãn cho nút lá trả
về).
Từ các nhận xét này, ta thấy rằng để có một cây QĐ đơn giản, hay một cây có
chiều cao là thấp, ta nên chọn một thuộc tính sao cho tạo ra càng nhiều các phân
vùng chỉ chứa các ví dụ thuộc cùng một lớp càng tốt. Một phân vùng chỉ có ví dụ
13


thuộc cùng một lớp, ta nói phân vùng đó có tính thuần nhất. Vậy, để chọn thuộc
tính kiểm tra có thể giảm thiểu chiều sâu của cây QĐ, ta cần một phép đo để đo
tính thuần nhất của các phân vùng, và chọn thuộc tính kiểm tra tạo ra càng nhiều
phân vùng thuần nhất càng tốt. ID3 sử dụng lý thuyết thông tin để thực hiện điều
này.
3. Thuộc tính nào là thuộc tính dùng để phân loại tốt nhất?
a. Entropy đo tính thuần nhất của tập ví dụ
Khái niệm entropy của một tập S được định nghĩa trong Lý thuyết thông tin là số
lượng mong đợi các bít cần thiết để mã hóa thông tin về lớp của một thành viên rút
ra một cách ngẫu nhiên từ tập S. Trong trường hợp tối ưu, mã có độ dài ngắn nhất.
Theo lý thuyết thông tin, mã có độ dài tối ưu là mã gán –log 2p bits cho thông điệp
có xác suất là p.
Trong trường hợp S là tập ví dụ, thì thành viên của S là một ví dụ, mỗi ví dụ
thuộc một lớp hay có một giá trị phân loại.

 Entropy có giá trị nằm trong khoảng [0..1],
 Entropy(S) = 0  tập ví dụ S chỉ toàn ví dụ thuộc cùng một loại, hay S
là thuần nhất.
 Entropy(S) = 1  tập ví dụ S có các ví dụ thuộc các loại khác nhau với
độ pha trộn là cao nhất.
 0 < Entropy(S) < 1  tập ví dụ S có số lượng ví dụ thuộc các loại khác
nhau là không bằng nhau.
Để đơn giản ta xét trường hợp các ví dụ của S chỉ thuộc loại âm (-) hoặc dương
(+).
Cho trước:
• Tập S là tập dữ liệu rèn luyện, trong đó thuộc tính phân loại có hai giá trị,
giả sử là âm (-) và dương (+)
• p+ là phần các ví dụ dương trong tập S.
14


• p- là phần các ví dụ âm trong tập S.
Khi đó, entropy đo độ pha trộn của tập S theo công thức sau:
Entropy(S) = -p+log2p+ - p-log2pMột cách tổng quát hơn, nếu các ví dụ của tập S thuộc nhiều hơn hai loại,
giả sử là có c giá trị phân loại thì công thức entropy tổng quát là:
Entropy(S) =
b. Lượng thông tin thu được đo mức độ giảm entropy mong đợi
Entropy là một số đo đo độ pha trộn của một tập ví dụ, bây giờ chúng ta sẽ
định nghĩa một phép đo hiệu suất phân loại các ví dụ của một thuộc tính. Phép đo
này gọi là lượng thông tin thu được, nó đơn giản là lượng giảm entropy mong đợi
gây ra bởi việc phân chia các ví dụ theo thuộc tính này.
Một cách chính xác hơn, Gain(S,A) của thuộc tính A, trên tập S, được định nghĩa
như sau:

Trong đó Values(A) là tập hợp có thể có các giá trị của thuộc tính A, và S V

là tập con của S chứa các ví dụ có thuộc tính A mang giá trị v.
4. Tìm kiếm không gian giả thuyết trong ID3
Cũng như các phương pháp học quy nạp khác, ID3 cũng tìm kiếm trong một
không gian các giả thuyết một giả thuyết phù hợp với tập dữ liệu rèn luyện. Không
gian giả thuyết mà ID3 tìm kiếm là một tập hợp các cây quyết định có thể có. ID3
thực hiện một phép tìm kiếm từ đơn giản đến phức tạp, theo giải thuật leo-núi (hill
climbing), bắt đầu từ cây rỗng, sau đó dần dần xem xét các giả thuyết phức tạp
hơn mà có thể phân loại đúng các ví dụ rèn luyện. Hàm đánh giá được dùng để
hướng dẫn tìm kiếm leo núi ở đây là phép đo lượng thông tin thu được.

15


Từ cách nhìn ID3 như là một giải thuật tìm kiếm trong không gian các giả
thuyết, ta có một số nhận xét như sau:
 Không gian giả thuyết các cây quyết định của ID3 là một không gian
đầy đủ các cây quyết định trên các thuộc tính đã cho trong tập rèn
luyện. Điều này có nghĩa là không gian mà ID3 tìm kiếm chắc chắn có
chứa cây quyết định cần tìm.
 Trong khi tìm kiếm, ID3 chỉ duy trì một giả thuyết hiện tại. Vì vậy,
giải thuật này không có khả năng biểu diễn được tất cả các cây quyết
định khác nhau có khả năng phân loại đúng dữ liệu hiện có.

 Vì ID3 sử dụng tất cả các ví dụ ở mỗi bước để đưa ra các quyết định
dựa trên thống kê, nên kết quả tìm kiếm của ID3 rất ít bị ảnh hưởng
bởi một vài dữ liệu sai (hay dữ liệu nhiễu).
 Trong quá trình tìm kiếm, giải thuật ID3 có xu hướng chọn cây quyết
định ngắn hơn là những cây quyết định dài.
5. Đánh giá hiệu suất của cây quyết định:


16


Một cây quyết định sinh ra bởi ID3 được đánh giá là tốt nếu như cây này có
khả năng phân loại đúng được các trường hợp hay ví dụ sẽ gặp trong tương lai,
hay cụ thể hơn là có khả năng phân loại đúng các ví dụ không nằm trong tập dữ
liệu rèn luyện.
Để đánh giá hiệu suất của một cây quyết định người ta thường sử dụng một tập
ví dụ tách rời, tập này khác với tập dữ liệu rèn luyện, để đánh giá khả năng phân
loại của cây trên các ví dụ của tập này. Tập dữ liệu này gọi là tập kiểm tra
(validation set). Thông thường, tập dữ liệu sẵn có sẽ được chia thành hai tập: tập
rèn luyện thường chiếm 2/3 số ví dụ và tập kiểm tra chiếm 1/3.
6. Khi nào nên sử dụng ID3
Giải thuật ID3 là một giải thuật học đơn giản nhưng nó chỉ phù hợp với một
lớp các bài toán hay vấn đề có thể biểu diễn bằng ký hiệu. Chính vì vậy, giải thuật
này thuộc tiếp cận giải quyết vấn đề dựa trên ký hiệu (symbol – based approach).
VIII.Thuật toán phân lớp học cây quyết định
1. Giới thiệu:
- Cây quyết định là phương pháp xấp xỉ hóa bằng hàm mục tiêu những giá
trị rời rạc trong đó những hàm được học được thể hiện bằng cây quyết định . Học
cây quyết định là một trong những phương pháp thực dụng và được sử dụng rộng
rãi nhất cho phương pháp suy diễn qui nạp.
- Giải thuật học cây quyết định được sử dụng thành công trong hệ chuyên
gia trong việc nắm bắt kiến thức. Công việc chính sử dụng trong các hệ thống này
là việc sử dụng phương pháp qui nạp cho những giá trị cho trước của những thuộc
tính của một đối tượng chưa biết để xác định sự phân loại xấp xỉ theo những luật
của cây quyết định. Cây quyết định sẽ phân loại các trường hợp bằng cách duyệt
từ nút gốc đến những nút lá. Chúng ta sẽ bắt đầu từ nút gốc của cây quyết định,
kiểm tra thuộc tính xác định bởi nút này sau đó chuyển xuống những nhánh của
cây theo giá trị thuộc tính trong tập hợp cho trước. Quá trình này được lặp lại tại

những cây con.
- Giải thuật cây quyết định thích hợp cho những điều dưới đây:
17


+ Mỗi trường hợp được biểu diễn bởi cặp những giá trị thuộc tính.
Ví dụ thuộc tính “nhiệt độ“ có những giá trị “nóng”, “mát”, “lạnh”.
Chúng cũng đồng thời liên quan đến thuộc tính mở rộng , giá trị tiếp theo,
dữ liệu được tính toán ( giá trị thuộc tính bằng số) trong dự án của chúng ta.
+ Hàm mục tiêu có giá trị đầu ra là những giá trị rời rạc. Nó dễ dàng
liên hệ đến trường hợp mà được gán vào một quyết định đúng hoặc sai. Nó
cũng có thể mở rộng hàm mục tiêu đến giá trị đầu ra là những giá trị thực.
+ Những dữ liệu đưa vào có thể chứa đựng nhiều lỗi điều này liên
quan đến kĩ thuật giản lược những dữ liệu thừa.
- Trong các thuật toán học cây quyết định thì ID3 và C4.5 là hai thuật toán
phổ dụng nhất.
- Những thiếu sót của giải thuật ID3:
+ Một thiếu sót quan trọng của ID3 là không gian phân chia hợp lệ
tại một node là cạn kiệt . Một sự phân chia là sự phân hoạch của mỗi
trường hợp của không gian mà kết quả đạt được từ việc thử nghiệm tại một
node quyết định. ID3 và con cháu của nó cho phép sự kiểm tra tại tại một
thuộc tính đơn và nhánh trong kết quả cho ra từ sự kiểm tra này.
+ Một thiếu sót nữa mà ID3 mắc phải là nó dựa vào rất nhiều vào số
lượng của những tập hợp dữ liệu đưa vào. Quản lý sự tạp nhiễu của tập dữ
liệu vào là vô cùng quan trọng khi chúng ta ứng dụng giải thuật học cây
quyết định vào thế giới thực . Ví dụ như Khi có sự lẫn tạp trong tập dữ liệu
đưa vào hoặc khi số lượng ví dụ đưa vào là quá nhỏ để tạo ra một ví dụ điển
hình của hàm mục tiêu đúng, ID3 có thể dẫn đến việc tạo quyết định sai.
+ Trong thuật toán ID3, giá trị các thuộc tính là rời rạc, trong khi đó ở
thế giới thực còn tồn tại các thuộc tính có giá trị liên tục (giá trị số).

+ Trong thuật toán ID3, nếu các thuộc tính có nhiều giá trị mà mỗi giá
trị lại duy nhất, sẽ dẫn tới tạo cây phức tạp, không đưa ra được quyết định
cho các trường hợp trong thực tế.
- C4.5 là sự mở rộng của giải thuật ID3 trên một số khía cạnh sau:
+ Trong việc xây dựng cây quyết định, chúng có thể liên hệ với tập
huấn luyện mà có những records với những giá trị thuộc tính không được
biết đến bởi việc đánh giá việc thu thập thông tin hoặc là tỉ số thu thập

18


thông tin , cho những thuộc tính bằng việc xem xét chỉ những record mà ở
đó thuộc tính được định nghĩa.
+ Trong việc xây dựng cây quyết định, giải thuật C4.5 có thể giải
quyết tốt đối với trường hợp giá trị của các thuộc tính là giá trị thực.
+ Trong việc xây dựng cây quyết đinh, C4.5 có thể giải quyết tốt đối
với trường hợp thuộc tính có nhiều giá trị mà mỗi giá trị này lại duy nhất.
2. Thuật toán xây dựng cây quyết định:
Dữ liệu vào: Tập dữ liệu D, tập danh sách thuộc tính, tập nhãn lớp
Dữ liệu ra: Mô hình cây quyết định
Thuật toán: Tạocây(Tập dữ liệu E, tập danh sách thuộc tính F, tập nhãn lớp)
1 Nếu điều_kiện_dừng(E,F) = đúng
2
nútlá = CreateNode()
3
nútlá.nhãnlớp=Phânlớp(E)
4
return nútlá
5 Ngược lại
6

Nútgốc = CreateNode()
7
Nútgốc.điềukiệnkiểmtra = tìm_điểm_chia_tốt_nhất(E, F)
8
Đặt F = F \ {Nút chọn phân chia}
9
Đặt V = {v| v thoả điều kiện là phần phân chia xuất phát từ Nútgốc}
10
Lặp qua từng tập phân chia v V
11
Đặt Ev = {e | Nútgốc.điềukiệnkiểmtra(e) = v và e E}
12
Nútcon = Tạocây(Ev, F, tập nhãn lớp)
13
Dừng lặp
14 End if
15 Trả về nútgốc.
Hàm chính
Gọi hàm Tạocây (E, tập danh sách thuộc tính của E, tập nhãn lớp).
Giải thích thuật toán: Đây là một thuật toán kiểu đệ qui tạo cây quyết định.
+ Tại hàm chính, gọi hàm đệ qui Tạocây() với ba tham số vào là tập dữ liệu
E, tập danh sách thuộc tính của E và tập nhãn. Thuật toán làm việc bằng cách đệ
qui chọn giá trị thuộc tính tốt nhất để chia, lưu ý là chọn giá trị của thuộc tính sao
cho điều kiện chia tốt nhất (bước 7), tiếp tục tiến hành mở rộng nút con bằng cách

19


gọi đệ qui cho đến khi điều kiện dừng (ở bước 1) được thỏa mãn. Dưới đây là
phần giải thích chi tiết thuật toán:

+ Dòng đầu tiên sẽ kiểm tra điều kiện dừng, nếu được thỏa mãn nghĩa là đã
đệ qui để tạo ra được đến nút lá. Điều kiện dừng chỉ xảy ra khi:
 Tất cả các dòng trong tập dữ liệu E thuộc về cùng một lớp duy
nhất (1).


 Không có bất cứ dòng nào trong tập E, điều này có thể xảy ra khi

tập con được tạo ở bước phân chia các tập con là rỗng (2).
Trong trường hợp (1) chỉ việc tiến hành tạo nút lá bằng hàm createNode()
và tiến hành gán nhãn cho nút lá này bằng cách gán nhãn duy nhất cho thuộc tính
nhãn của nút vừa được tạo này.
Trường hợp (2) sẽ trả về nút lá bằng rỗng và tiến hành gán nhãn cho nút cha
là nhãn lớp xuất hiện nhiều nhất như sau:
Nhãn lớp = max (tổng của từng giá trị nhãn lớp riêng biệt trong E).
Hàm Phânlớp(E) thực hiện việc xác định nhãn cho một tập dữ liệu E, nó tự động
xác định và trả về đúng giá trị nhãn cho cả hai trường hợp trên.
+ Dòng 3 và 4 xảy ra khi chỉ còn một thuộc tính trong nút cha (lưu ý nút
cha là nút sau khi đã phân chia tạo ra tập dữ liệu D này). Nếu sau khi phân chia
trên nút cha mà tập D không còn chứa thuộc tính để phân chia, trả về nút lá là giá
trị nhãn xuất hiện nhiều nhất trong D.
+ Xét dòng 5, nếu thuật toán chưa thỏa mãn điều kiện để dừng, tiếp tục xét
bằng cách tìm kiếm điểm chia tốt nhất. Để tìm điểm chia tốt nhất cần sử dụng một
hàm đánh giá, kết quả của hàm này sẽ trả về thuộc tính được chọn tương ứng. Về
các tiêu chuẩn đánh giá cũng như chọn điểm chia sẽ được giải thích rõ hơn trong
các phần bên dưới.
+ Xét dòng 7 và 8, sau khi đã chọn được điểm chia tốt nhất, tiến hành phân
chia tập D thành các tập con Di, cập nhật lại danh sách các thuộc tính.
+ Dòng 9 và 10: lặp qua danh sách các tập con D i và tiến hành gọi đệ qui
hàm Tạocây() với tham số mới tương ứng.

3. Độ đo sử dụng để xác định điểm chia tốt nhất:
 Entropy: Đại lượng đo tính đồng nhất hay tính thuần nhất của các mẫu.
Trong đó:
20


 S là tập dữ liệu huấn luyện.
 Ci là một nhãn lớp bất kỳ trong tập dữ liệu S.
 Pi là xác suất của một bộ bất kỳ trên S thuộc về nhãn Ci.
Giả sử phân chia các bộ trong S trên một thuộc tính A bất kỳ, để không mất
tính tổng quát có thể xem như A có các giá trị phân biệt {a 1, a2, …, av}. Nếu thuộc
tính A được sử dụng để chia thành v tập con, những tập con này sẽ tương ứng với
các nhánh con của nút hiện tại, độ đo thông tin có được sau khi phân lớp theo v tập
con trên sẽ được tính như sau:
Trong đó: là tổng số bộ dữ liệu được phân chia vào tập con thứ j.
 Information gain: độ đo xác định ảnh hưởng của một thuộc tính trong mẫu
đó trong việc phân lớp gọi là độ lợi thông tin.
Độ lợi thông tin dựa trên phân nhánh bằng thuộc tính A:
 SplitInformation: Thông tin tiềm ẩn được tạo ra bằng cách chia tập dữ liệu
trong một số tập con nào đó.
Splitinfomation(S,A) = Trong đó Si là tập con của S chứa các ví dụ có thuộc tính A mang giá trị V i. Để
ý rằng Splitinfomation thực sự chính là Entropy của S với sự liên quan trên những
giá trị của thuộc tính A.
 GainRatio: Sự đánh giá thay đổi các giá trị của thuộc tính.
Gain(S,A)

GainRation(S,A) =
SplitInformation(S,A)

Tất cả các thuộc tính sẽ được tính toán độ đo tỷ lệ Gain, thuộc tính nào có

độ đo tỷ lệ Gain lớn nhất sẽ được chọn làm thuộc tính phân chia.

21


Chương 3 - THỬ NGHIỆM VÀ ĐÁNH GIÁ
3.1 Giới thiệu bài toán
Cây quyết định được ứng dụng rất nhiều trong thực tế bởi cuộc sống hằng
ngày, mỗi người trong chúng ta đều phải ra không biết bao nhiêu quyết định liên
quan đến các sinh hoạt cá nhân từ ăn gì, uống gì, làm gì, khi nào, ở đâu,... là các
quyết định rất bình thường, quyết định đó có thể được suy tính kỹ càng, cũng có
thể chỉ là quyết định theo cảm xúc tức thời. Tuy nhiên, đối với những nhà quản lý
hay những người làm các công việc liên quan đến: đầu tư chứng khoán, đầu tư tài
chính,... một quyết định đưa ra rất quan trọng, nó có thể gây ảnh hưởng lơn đến
công ty hay thậm trí là làm phá sản, vì vậy quyết định được lựa chọn phải là quyết
định có độ tin cây lớn nhất và an toàn nhất
Vậy, làm thế nào để giúp các nhà quản lí có một quyết định một cách đúng
đắn khi ra quyết định đầu tư vào đâu? Dựa vào tập dữ liệu cho trước ta sẽ xây
dựng một cây quyết định, từ cây quyết định rút ra các luật quyết định. Dựa cào các
luật quyết định đó ta sẽ phân lớp được tập dữ liệu mới và tập dữ liệu sau khi phân
lớp sẽ hỗ trợ cho các nhà quản lí, nhà đầu tư ra quyết định là có nên đầu tư vào
ngành đấy hay không.
Xin hãy xét một tình huống đầu tư cần phải ra quyết định như sau: Một nhà
đầu tư đang xem xét có nên đầu tư 10 tỷ đồng vào thị trường chứng khoán hay gửi
toàn bộ số tiền này vào ngân hàng với lãi suất cố định 9%/năm. Nếu thị trường
chứng khoán được cho là lạc quan (optimistic) thì sau một năm nhà đầu tư sẽ thu
được một khoản lợi tức là 14% trên số tiền đầu tư ban đầu. Nếu thị trường bình
thường (moderate) thì sau một năm đầu tư tỷ suất lợi tức sẽ là 9% như gửi tiền
ngân hàng. Còn nếu thị trường diễn biến theo hướng bi quan (Pessimistic) thì sau
một năm đầu tư thì nhà đầu tư này sẽ không thu được khoản lợi tức nào cả song

vẫn bảo toàn vốn. Bằng kinh nghiệm của mình nhà đầu tư ước tính xác suất để thị
trường có viễn cảnh lạc quan, bình thường và bi quan xảy ra tương ứng là 0,3; 0,5
và 0,2.
22


3.2 Các bước tiến hành
Để ra quyết định đầu tư cần tiến hành những bước như sau:
 Bước 1.
Vấn đề đặt ra ở tình huống này chính là nhà đầu tư cần phải ra quyết định có nên
đầu tư khoản tiền này trên thị trường tài chính hay không và nếu có thì đầu tư vào
chứng khoán hay gửi tiền vào ngân hàng.
 Bước 2. Các phương án có thể chọn lựa là:
Phương án 1: Gửi toàn bộ số tiền vào ngân hàng
Phương án 2: Đầu tư chứng khoán
Phương án 3. Không đầu tư.
 Bước 3. Các tình huống kết quả có thể xảy ra:
Thị trường lạc quan
Thị trường bình thường
Thị trường bi quan
 Bước 4. Xác định những lợi ích hay chi phí của từng khả năng kết hợp giữa
những phương án và các tình huống kết quả có thể xảy ra.
Bất kỳ nhà đầu tư nào cũng hướng đến mục tiêu tối đa hoá lợi tức và tối thiểu hoá
rủi ro trong đầu tư. Lợi tức mà nhà đầu tư có được theo các phương án và các tình
huống kết quả có thể được biểu diễn qua bảng sau (gọi là bảng ra quyết định –
Decision Table)
Gửi ngân hàng
Mua chứng khoán
Không đầu tư


Lạc quan
Bình thường
0,9
0,9
1,4
0,9
0
0
Bảng 1. Bảng ra quyết định

Bi quan
0,9
0
0

 Bước 5. Xác định môi trường ra quyết định: rủi ro, tính dễ bị tổn thương,
thông tin hoàn hảo...
 Bước 6. Lựa chọn mô hình ra quyết định phù hợp và ra quyết định sau
cùng.
23


3.2.1 Tiêu chuẩn ra quyết định dựa trên giá trị kỳ vọng (Expected Value)
Kỳ vọng của biến ngẫu nhiên là giá trị trung bình mà biến ngẫu nhiên nhận được,
hay nói cách khác kỳ vọng của biến ngẫu nhiên là trọng tâm của phân phối xác
suất với khối lượng là 1. Kỳ vọng của biến ngẫu nhiên được xác định như sau:
Tiêu chuẩn ra quyết định dựa trên giá trị kỳ vọng được diễn tả dưới dạng giá trị
bằng tiền hay độ hữu ích. Tiêu chuẩn và giá trị kỳ vọng được đưa ra dựa trên giả
thuyết rằng việc ra quyết định có thể được lặp lại rất nhiều lần. Giá trị kỳ vọng của
các phương án được tính bằng tổng có trọng số các giá trị của sự trả giá (payoff)

của phương án đó với trọng số chính là xác suất xảy ra của trạng thái tự nhiên
tương ứng.
Trong đó:
EMVi : giá trị kỳ vọng của phương án i
POj,i : giá trị sự trả giá của trạng thái tự nhiên j ứng với phương án i
i : phương án thứ i, với
j : trạng thái tự nhiên thứ j, với
Theo các dữ liệu đã cho ta xác định được EMV như sau:
Phương án 1: EMV1 = 0,9x0,3 + 0,9x0,5 + 0,9x0,2 = 0,9
Phương án 2: EMV2 = 1,4x0,3 + 0,9x0,5 + 0x0,2 = 0,87
Phương án 3: EMV3 = 0
Căn cứ theo tiêu chuẩn giá trị kỳ vọng thì phương án 1 (gửi tiền vào ngân hàng) là
phương án tốt nhất nên được chọn.

KẾT LUẬN
24


Những nghiên cứu về xây dựng cây quyết định và ứng 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, qua đó chọn lọc ra được các phương án tối ưu.
Trong khuôn khổ khóa luận tốt nghiệp này, chúng em đã nghiên cứu, phân
tích, đánh giá các thuật toán phân lớp dữ liệu dựa trên cây quyết định. Tiêu biểu là
thuật toán ID3 và C4.5. Hai thuật toán này có cách thức lưu trữ dữ liệu và xây
dựng cây quyết định dựa trên những độ đo khác nhau. Do đó các thuật toán này có
phạm vi ứng dụng vào các cơ sở dữ liệu có kích thước khác nhau. C4.5 là sự mở
rộng của giải thuật ID3 trên một số khía cạnh. C4.5 là thuật toán xử lý đầy đủ các
vấn đề của quá trình phân lớp dữ liệu: lựa chọn thuộc tính tốt nhất, lưu trữ phân
chia dữ liệu, xử lý giá trị thiếu, tránh quá vừa, cắt tỉa cây,…Qua đó phân tích và
ứng dụng vào bài toán thực tế (Bài toán đầu tư), chúng em đã có bước đầu nghiên

cứu, thiết kế, phân tích và chạy thử nghiệm chương trình ứng dụng qua đó thu
được kết quả tích cực.

25


TÀI LIỆU THAM KHẢO
[1] ThS. Lưu Minh Tuấn Bài giảng Hệ hỗ trợ ra Quyết định BM CNTT
[2] Võ Văn Huy & Huỳnh Ngọc Liễu Máy tính trong kinh doanh
NXB KHKT,2002

[3]www.ebook.edu.vn
[4] Cây quyết định tháng
11/2016
[5] />
26



×