3. Các nội dung nghiên cứu của luận văn
2.3.1. Tổng quan về cây quyết định trong học máy
Cây quyết định (decision tree) là một kiểu mô hình dự báo (predictive model) [27], 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) biểu diễn một thuộc tính, nhánh (branch) biểu diễn giá trị có thể có của một 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 có thể chuyển đổi về các luật quyết định.
Cây quyết định 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. 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 đơn giản là cây quyết định.
Học bằng cây quyết định là một phương pháp học thông dụng trong khai phá dữ liệu [28], cây quyết định 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 đến 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 hợp con dựa theo một công thức kiểm tra giá trị thuộc tính. Quá trình này lặp đi lặp lại đệ quy cho mỗi tập con dẫn xuất. Quá trình đệ quy hoàn thành khi không thể tiếp tục thực hiện việc chia tách được nữa, khi một phân loại đơn giản có thể áp dụng cho từng phần tử của tập con dẫn xuất. Tạo cây quyết đị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.
Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính toán các xác suất có điều kiện.
26
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át hiện và tổng quát hóa một tập dữ liệu cho trước.
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) [29]: ướ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át hiện. (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 lớp (Classification tree) [29]: nếu biến phụ thuộc mà ta cần
tìm hiểu là một biến cần phân lớp như: giới tính (nam hay nữ), kết quả của một trận đấu (thắng hay thua).
Cấu trúc chung 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 [30]. 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. Về cơ bả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á.
Xây dựng cây quyết định
Phương pháp chung
Xây dựng cây quyết định bao gồm 2 bước: Tạo cây và tỉa cây [30]. - Để tạo cây ở thời điểm bắt đầu huấn luyện là ở gốc sau đó phân chia huấn luyện theo cách đệ qui dựa trên thuộc tính được chọn.
27
- 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 đó).
Tùy từng thuật toán mà cây quyết định sử dụng khác nhau nhưng về cơ bản vẫn tuân theo các bước 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.
Lựa chọn các thuộc tính phân tách
Bắt đầu bài toán có một tập các bản ghi được phân loại trước, 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. Bước đầ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, có những phương pháp xác định để tính toán độ tinh khiết một cách chi tiết những quan trọng vẫn là kết quả của độ tinh khiết. 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 không tạo ra các nút có quá ít bản ghi. Mô phỏng cho sự phân tách dữ liệu được biểu diễn qua hình 2.10.
28
Hình 2.10. Mô phỏng sự phân tách trong cây quyết định
Theo thuật toán xây dựng cây quyết định bước đầu tiên chọn mỗi biến đầu vào chưa được chọn và đo mức độ tăng của độ 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. Để tăng khả năng xử lý 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 đó tạo một nhánh tương ứng với một lớp được phân loại. Về thực tế các 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 số phương pháp phổ biến hơn đó là nhóm các lớp mà dự đoán cùng
29
kết quả với nhau. Tức là 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: Cây quyết định 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 cây. Phương pháp này được thích hợp so với việc loại bỏ các bản ghi có giá trị thiếu hoặc cố gắng gắn giá trị nào đó bởi vì nhiều khi các giá trị rỗng cũng có ý nghĩa riêng của biểu thị ý nghĩa riêng. 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 áp dụng 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, 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.
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à:
+ 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.
+ 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à:
2 2 ( , ) ( p , n ) p log p n log n Info p n Entropy p n p n p n p n p n p n
30 ) , ( ) ( 1 i i v i i i Inf o p n n p n p A Entropy
+ 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)
Ưu điểm của cây quyết định
So với các phương pháp khai phá dữ liệu khác, cây quyết định có một số ưu điểm:
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 được giải thích ngắn. Việc chuẩn hóa dữ liệu cho một cây quyết định cơ bản là 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ên thể 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ại biế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 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. Mạng nơ-ron là một ví dụ về mô hình hộp đen, do lời giải thích cho kết quả quá phức tạp để có thể hiểu được.
Có thể thẩm định một mô hì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 mô hình. Cây quyết định thẩm định một mô hì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 mô hình. Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian ngắn. Có thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một thời gian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựa trên phân tích của cây quyết định.
Để phát hiện phần mềm độc hại nhanh chóng và chính xác, thuật toán cây quyết định được sử dụng trong hệ thống phát hiện mã độc. Như phần trước, dữ liệu được ghi trong khuôn mẫu.
31
Trong hệ thống phát hiện mã độc, Y là loại mã độc (Trojan, Worm, Rootkit, …), x1, x2, …, x3 là dữ liệu meta-data của tệp tin mã độc. Loại mã độc được xác định bằng dịch vụ của các hãng chống phần mềm độc hại. Hệ thống phát hiện này sử dụng các nhóm mã độc thông dụng như Trojan, Worm, Rootkit, Backdoor, Crypto, …