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ó
Trang 11.
Trang 2LỜ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
Trang 3CHƯƠ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ị
Trang 4CHƯƠ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ácluậ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 đượcmụ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 quaEntropy 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ệncho 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ớiphâ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ồnthà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ặplại một cách đệ qui cho mỗi tập con dẫn xuất Quá trình đệ qui hoàn thành khikhô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ệucho trước
6
Trang 5Dữ liệu được cho dưới dạng các bản ghi có dạng:( , ) ( , , , , , )x y x x x1 2 3 x y k Biếnphụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu, phân loại haytổng quát hóa x x x1, , 2 3 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ặckhoả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 (namhay 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ácbả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 đơngiả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àycà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ạibướ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ợptớ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ânchia ví dụ huấn luyện theo cách đệ qui dựa trên thuộc tính được chọn
- 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ữngphần tử nằm ngoài (những phần tử không thể phân vào một lớp nào đó)
Trang 6 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ọndự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 đượcphâ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ườnghợ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útdự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 xemthuộ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áchchi tiết, tuy nhiên chúng đều cố gắng đạt được hiệu quả như nhau Một sự phântá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ượnglớ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
Trang 7có 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àolà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 đó
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 đó, tatạ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ử
Trang 8dụ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ươngphá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 trongmộ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épphân tách giá trị rỗng như là một lớp riêng rẽ khá có ý nghĩa nhưng người tathườ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ậtphâ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 đầuvà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áchtố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áchtố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ớiinformation 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
• 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ượngtrong tất cả các cây con Si là:
p n Entropy A Info p n
Trang 9• Thông tin có được bởi việc phân nhánh trên thuộc tính A là:
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épAND – 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
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ạicủa nó
Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trongtậ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
Gain A Info p n Entropy A
Trang 10ID3 xây dựng cây quyết định (cây QĐ) theo cách từ trên xuống Lưu ý rằng đốivớ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ènluyệ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ânvù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 trongcù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àmgố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ộctí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
Trang 11 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ácdạ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ặctoà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ảithuậ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ânvù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ụ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ộctí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 để đotí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ềuphâ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ềunà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 –log2p bits cho thông điệp
có xác suất là p
Trang 12Trong 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
Khi đó, entropy đo độ pha trộn của tập S theo công thức sau:
Entropy(S) = -p + log 2 p + - p - log 2 p
-Mộ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à: