Quá trình phân lớp

Một phần của tài liệu Khai phá dữ liệu với cây quyết định (Trang 29)

Quá trình phân lớp được thực hiện theo 2 bước.

Bước đầu tiên là xây dựng mô hình (hay còn gọi là Học), thực hiện việc mô tả một tập các lớp đã xác định

- Mỗi đối tượng được giả thiết là thuộc vào một lớp đã định nghĩa trước, lớp này xác định bởi giá trị (nhãn lớp) của một trong số các thuộc tính. - Tập tất cả các đối tượng dùng cho việc xây dựng mô hình được gọi là tập

huấn luyện.

- Mô hình thường được biểu diễn dưới hình thức các luật phân lớp IF… THEN… hoặc cây quyết định hoặc các công thức toán học khác

Bước tiếp theo là sử dụng mô hình ở bước đầu tiên để phân lớp các giá trị tương lai hoặc các đối tượng chưa biết.

- Trước hết, mô hình được đánh giá tỷ lệ chính xác dựa trên tập dữ liệu kiểm tra. Nhãn của các mẫu kiểm tra là đã biết và được so sánh với kết quả phân lớp của mô hình.

o Tỷ lệ chính xác là phần trăm của tập mẫu kiểm tra được mô hình phân lớp đúng

o Tập kiểm tra là độc lập với tập huấn luyện để tránh xảy ra trường hợp quá khớp (over-fitting)

- Sau khi được đánh giá, mô hình được sử dụng để phân lớp các đối tượng chưa biết, gán các nhãn lớp cho các đối tượng này. Mô hình cũng có thể dùng để dự đoán giá trị của một thuộc tính thực tế.

Hình 2.1 mô tả một quá trình phân lớp thực tế. Với tập dữ liệu huấn luyện về các giảng viên gồm tên, chức danh, năm công tác và thuộc tính phân lớp xác định giảng viên có được bổ nhiệm làm giảng viên chính không (giá trị “Yes” hoặc “No”). Qua thuật toán phân lớp ta xây dựng được bộ phân lớp (mô hình) với luật “IF chức danh là giáo sư hoặc số năm công tác >6 THEN là giảng viên

Hình 2.1: Quá trình phân lớp

2.1.3. Các phƣơng pháp phân lớp

Các phương pháp phân lớp thường gặp: - Cây quyết định

- Mạng nơron nhân tạo - Phân lớp Bayesian

- Association-Based Classification - K-lân cận gần nhất

- Case-Based Reasoning - Thuật giải di truyền - Tập mờ

Mặc dù các phương pháp phân lớp rất đa dạng nhưng khi triển khai thực tế, ta cũng phải giải quyết những vấn đề cơ bản sau:

- Với giai đoạn chuẩn bị dữ liệu, cần: o Làm sạch dữ liệu

o Tiền xử lý dữ liệu để giảm nhiễu và khắc phục việc thiếu giá trị o Phân tích liên hệ (lựa chọn đặc tính)

o Loại bỏ các thuộc tính không thích hợp hoặc không cần thiết o Chuyển đổi dữ liệu

o Khái quát hóa hoặc bình thường hóa dữ liệu - Đánh giá phương pháp phân lớp

o Độ chính xác của dự đoán là khả năng của bộ phân lớp dự đoán chính xác dữ liệu không thấy (unseen data)

o Tốc độ: Thời gian xây dựng và sử dụng mô hình, chi phí tính toán o Sức mạnh: khả năng của bộ phân lớp tạo ra các dự đoán đúng từ dữ

liệu nhiễu và dữ liệu thiếu giá trị

o Khả năng xây dựng bộ phân lớp hiệu quả với khối lượng lớn dữ liệu

o Tính hiểu được: mức độ dễ hiểu và rõ ràng mà bộ phân lớp cung cấp

Trong chương này, chúng ta sẽ nghiên cứu kỹ thuật phân lớp dữ liệu cơ bản đó là phân lớp bằng Cây quyết định. Ngoài kỹ thuật Cây quyết định ra còn có nhiều kỹ thuật phân lớp khác chẳng hạn như: mạng nơron, thuật giải di truyền,... Nhưng do phạm vi của đề tài nên ở đây chỉ nghiên cứu chi tiết về kỹ thuật Cây quyết định.

2.2. Cây quyết định

Cây quyết định là công cụ hiệu quả cho việc phân loại và dự đoán. Sự hấp dẫn của phương pháp thiết lập cây này là vì nó thích hợp với một lượng lớn sự kiện. Ngược lại với mạng nơron, cây quyết định thể hiện rõ ràng các luật. Những luật này có thể dễ dàng diễn tả để con người có thể hiểu chúng. Việc tạo quyết định có rất nhiều ứng dụng, với một số ứng dụng, khả năng giải thích cho việc đưa ra quyết định là vấn đề cơ bản. Với những ứng dụng khác thì sự phân loại hay sự dự đoán là vấn đề được quan tâm hơn.

2.2.1. Định nghĩa

Trong lĩnh vực học máy, Cây quyết định là phương pháp xấp xỉ hóa hàm mục tiêu có 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. Trong đó mỗi nút nhánh thể hiện một sự lựa chọn trong số nhiều sự lựa chọn và mỗi nút lá là sự thể hiện của một quyết định. Cây quyết định có thể cũng được biểu diễn như là tập hợp của những luật IF THEN để tăng tính dễ đọc cho con người. Phương pháp học này thể hiện trong những giải thuật suy diễn quy nạp thông dụng nhất và được ứng dụng thành công trong những nhiệm vụ như từ việc học để chuẩn đoán bệnh trong y học đến việc định giá rủi ro trong tài chính về kinh tế,…

Với khai phá dữ liệu, cây quyết định tượng trưng cho một phương thức quyết định cho việc xác định lớp của các dữ kiện đã cho. Mỗi nút của cây chỉ ra một tên lớp hoặc là một phép thử cụ thể, phép thử này chia không gian 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 chia ra là không gian con của các dữ kiện, sẽ tương ứng với một vấn đề con của sự phân lớp, điều này sẽ được giải quyết bởi một cây con tương ứng. Một Cây quyết định có thể được mô tả như sau:

- Nút không phải lá (non-leaf node) hay còn được gọi là nút trong (inner node), nút này xác định một phép thử thuộc tính (attribute test), nhãn của nút này là tên của thuộc tính và sẽ có một nhánh nối nút này đến cây con (sub-tree) ứng với mỗi kết quả có thể có của phép thử. Nhãn của các nhánh này chính là các giá trị của thuộc tính đó. Nút nằm ở trên cùng là nút gốc (root node).

- Nút lá (leaf node) biểu thị cho một lớp các trường hợp, nhãn của nó là tên của lớp

Tại mỗi nút, một thuộc tính được chọn để phân chia tập ví dụ huấn luyện thành các lớp riêng biệt. Trong trường hợp thuộc tính là liên tục, các nút trong có thể dùng phép thử dựa vào ngưỡng.

Cây quyết định phân lớp các đối tượng bằng việc sắp xếp từ nút gốc đến những nút lá. Một đối tượng được phân loại bằng việc bắt đầu tại nút gốc của cây, kiểm tra những thuộc tính xác định của nút này sau đó chuyển xuống những nhánh tương ứng với việc đánh giá thuộc tính. Quá trình này được lặp lại cho những cây con.

Ví dụ: Cho tập ví dụ huấn luyện trong bảng dưới đây

STT Tuổi Thu nhập Là sinh viên Mua máy tính

1 <=30 Cao Sai Không

2 31..40 Cao Sai 3 >40 Thấp Sai Không 4 31..40 Cao Đúng 5 <=30 Thấp Đúng 6 >40 Thấp Sai Không 7 <=30 Cao Đúng 8 31..40 Thấp Đúng 9 31..40 Thấp Sai 10 >40 Cao Sai

Từ tập huấn luyện trên, ta xây dựng được cây quyết định như trong hình 2.2. Ở đây, các thuộc tính “Tuổi”, “Thu nhập”, “Là sinh viên” là các thuộc tính kiểm tra, thuộc tính “Mua máy tính” là thuộc tính phân lớp (hay thuộc tính quyết định)

Hình 2.2: Cây quyết định về việc mua máy tính

2.2.2. Xây dựng cây quyết định

Việc tạo cây quyết định gồm 2 pha:

- Xây dựng cây quyết định từ trên xuống (top-down): Đầu tiên, tất cả các ví dụ huấn luyện đều nằm ở nút gốc. Nếu các ví dụ là cùng một lớp thì nút trở thành một nút lá, có nhãn là nhãn lớp. Nếu không phải, tất cả các thuộc tính cho mỗi nút trong phải được kiểm tra để tìm ra phép tách tốt nhất. Thuộc tính có độ tách biệt thành các lớp riêng biệt là tốt nhất được dùng để gán nhãn cho nút tách đó và tập dữ liệu được chia ra thêm nữa theo các giá trị của thuộc tính. Tập ví dụ huấn luyện được chia đệ qui cho tới khi mọi nút lá đều có tất cả (đa số) các ví dụ thuộc cùng một lớp hoặc không còn thuộc tính nào để phân chia.

- Tỉa cành cây quyết định từ dưới lên (bottom-up): lọai bỏ các cây con hoặc các nhánh theo cách từ dưới lên để cải thiện độ chính xác được đánh giá trong trường hợp phân loại mới. Bước này được sử dụng để tối ưu hóa cây kết quả, tối ưu về độ lớn của cây và độ chính xác của sự phân lớp bằng cách cắt tỉa các nhánh không phù hợp. Vì cây được sinh ra sẽ hoạt động tốt trên tập huấn luyện, nhưng có thể hoạt động không chính xác đối với tập dữ liệu không thấy (unseen data) do tập dữ liệu huấn luyện có thể có dữ liệu bị nhiễu hoặc bị thiếu giá trị. Bước cắt tỉa này cố gắng loại bỏ các nhánh bị lỗi khỏi cây và giữ nguyên hoặc thậm chí cải tiến độ chính xác của sự phân lớp. Độ chính xác của cây kết quả được xác định bằng cách

Tuổi?

Sinh viên Thu nhập

Sai Đúng Thấp Cao <=30 Không Có Không Có Có 31..40 >40

sử dụng một tập dữ liệu không thấy độc lập để kiểm tra. Bước này khá đơn giản, cây được áp dụng cho từng dữ kiện vào và nhãn của lớp đã dự đoán được so sánh với nhãn lớp thực tế. Tiêu chuẩn để đánh giá là số các mẫu được phân lớp chính xác.

Ở đay, ta nhận thấy việc chọn thuộc tính khác nhau sẽ cho ta các cây có hình dạng khác nhau, có độ sâu hay độ rộng khác nhau. Như vậy, việc chọn thuộc tính nào rất quan trọng vì sẽ ảnh hưởng đến độ phức tạp của cây và sẽ cho ta các cây kết quả khác nhau. Vì vậy, vấn đề được đặt ra ở đây là chọn thuộc tính nào là tốt nhất ở mỗi lần chọn, để cuối cùng ta có cây tối ưu nhất. Ta sẽ xem xét các giải thuật xây dựng cây quyết định trên cơ sở đánh giá các thuộc tính theo mức độ tách rời các lớp của tập ví dụ huấn luyện.

2.2.3. Giải thuật ID3

ID3 (Interactive Dichotomizer 3) là một giải thuật xây dựng cây quyết định được phát triển bởi J.Ross Quinlan (1986) trên cơ sở của giải thuật CLS (Concept Learning System). Ý tưởng cơ bản của giải thuật ID3 là xây dựng cây quyết định theo kiểu từ trên xuống (top-down) bằng cách tìm kiếm trên những tập dữ liệu cho trước để kiểm tra mỗi thuộc tính tại mỗi nút của cây. Các kết quả của phép kiểm tra này được sử dụng để chia tập đối tượng ra thành các tập con theo các kết quả đó. Qui trình này được thực hiện đệ qui cho tới khi tập đối tượng trong cây con được sinh ra là thuần nhất theo một tiêu chí phân lớp nào đó tức là nó bao gồm các đối tượng thuộc cùng một loại hay thuộc dạng giống nhau. Các lớp hay các dạng này sẽ trở thành nhãn của các nút lá.

Để tìm ra một cách tối ưu để phân loại một tập hợp thông tin, vấn đề đặt ra là chúng ta cần phải làm tối thiểu hóa (Chẳng hạn, tối thiểu chiều cao của cây). Như vậy chúng ta cần một số hàm có thể đánh giá trường hợp nào cho ra một sự phân chia cân bằng nhất. Ở đây, thuộc tính dùng để kiểm tra được chọn dựa vào lượng Information Gain thông qua hàm Entropy, thuộc tính nào có lượng Information Gain lớn nhất sẽ được chọn. [13][19][20][23].

Trước khi trình bày thuật toán ID3, ta định nghĩa hai đại lượng Information Gain và Entropy.

2.2.3.1. Entropy

Để định nghĩa thông tin tìm được một cách chính xác chúng ta cần phải tìm hiểu về hàm entropy. Entropy được dùng để đo tính không đồng nhất của một tập hợp.

Đầu tiên không mất tính tổng quát giả sử rằng kết quả việc phân loại những trường hợp của cây quyết định phụ thuộc vào hai loại giá trị chúng ta gọi chúng là Positive (dương, +) và Nagative (âm, -).

Cho trước một tập hợp S, bao gồm những mẫu có những giá trị dương và âm, hàm entropy của S liên quan đến sự phân loại là :

Entropy(S) = -P+ log 2 P+ – P- log 2 P- (2.1) P+ : tỉ lệ của những trường hợp dương trong S.

P- : tỉ lệ của những trường hợp âm trong S.

Trường hợp đặc biệt, nếu S có số thành viên của hai lớp dương và âm bằng nhau thì Entropy(S) là 1:

Entropy(S) = - 1/2 . log2(1/2) - 1/2 . log2(1/2) =1/2 + 1/2 = 1

Nếu S bao gồm tất cả các mẫu có cùng giá trị dương hoặc âm thì Entropy(S) =0, ví dụ tất cả các thành viên của S đều thuộc lớp dương:

Entropy(S) = -1. log2(1) - 0. log2(0) = -1.0 – 0.log2(0) =0

Một cách tổng quát hơn, nếu các mẫu của tập S thuộc nhiều hơn hai loại, giả sử là có n giá trị phân loại thì công thức entropy tổng quát là:

Entropy(S) =

n

i 1

- pi log2pi (2.2)

Để ý rằng nếu khả năng phân bố ở nhiều dạng khác nhau thì entropy của nó sẽ lớn.

2.2.3.2. Information Gain

Entropy là một số đo đo độ pha trộn của một tập hợp, 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 mẫu của một thuộc tính. Phép đo này gọi là Information Gain, nó đơn giản là lượng giảm entropy mong đợi gây ra

bởi việc phân chia các mẫu theo thuộc tính này. Trong thuật toán ID3, để tính toán đại lượng này, người ta dùng hàm Gain:

Gain(S,A)=Entropy(S) -  Value(A) v |S| | Sv | Entropy(Sv) (2.3)

Với A là thuộc tính đang xem xét

Value(A) là tập tất cả các giá trị của thuộc tính A Sv là tập con của S ứng với thuộc tính A có giá trị là V |Sv| là số phần tử trong Sv

|S| là số phần tử trong S

Thuộc tính có giá trị Gain lớn nhất thì được xem là “tốt nhất” và được chọn trước trong quá trình xây dựng cây quyết định. Tại mỗi nút, ta sẽ tìm thuộc tính có Gain lớn nhất trong những thuộc tính chưa được xem xét trong đường đi từ gốc. Việc sắp thứ tự theo Gain như vậy giúp tạo ra cây quyết định nhỏ mà những nút lá có thể được xác định sau chỉ một vài lần cây quyết định phân chia và giúp tối thiểu hóa quá trình tạo quyết định.

2.2.3.3. Giải thuật ID3

ID3 xây dựng cây quyết định theo giải thuật sau:

Input : Tập các ví dụ huấn luyện (được thể hiện bởi các thuộc tính có giá trị rời rạc) tập_ví_dụ; Tập các thuộc tính ứng viên tập_thuộc_tính

Output: Một Cây quyết định.

Function induce_tree(tập_ví_dụ, tập_thuộc_tính) begin

Tạo một nút N

if mọi ví dụ trong tập_ví_dụ đều nằm trong cùng một lớp then returnN như 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 như một nút lá được gán nhãn bởi lớp phổ biến nhất trong

xóa A ra khỏi tập_thuộc_tính; với mỗi giá trị V của A

begin

tạo một nhánh của cây gán nhãn V; Đặt vào phân_vùng V các ví dụ trong tập_ví_dụ có giá trị V tại thuộc tính A; if phân_vùng V là rỗng then Gán vào nhánh V một nút lá có nhãn là lớp phổ biến nhất trong tập_ví_dụ else Gọi induce_tree(phân_vùng V, tập_thuộc_tính), gắn kết quả vào nhánh V end end end

Ví dụ : Để mô tả hoạt động của ID3 chúng ta sử dụng ví dụ về phân loại khách hàng trong một công ty Bưu chính cung cấp các dịch vụ gửi hàng hóa, tài liệu và dịch vụ sản xuất phong bì theo mẫu của các cá nhân, doanh nghiệp. Yêu cầu ở đây là xác định khách hàng có đặt mua phong bì của Công ty hay không. Các thuộc tính được xem xét là:

Doanh thu: có các giá trị {<1triệu; 1..3 triệu; >3 triệu} Lọai hàng gửi: Hàng hóa, Tài liệu

Lọai khách hàng: Công ty, cá nhân Lọai dịch vụ: gửi nhanh hay gửi thường

Hình thức thanh toán: Tiền mặt, chuyển khoản Bảng dưới đây có 20 mẫu dữ liệu:

STT Loại khách hàng Doanh thu Lọai hàng Lọai dịch vụ Hình thức thanh toán Mua phong

1 Cá nhân < 1 triệu Tài liệu Nhanh Chuyển khoản Không 2 Công ty > 3 triệu Tài liệu Thường Tiền mặt Có 3 Cá nhân > 3 triệu Hàng hóa Nhanh Tiền mặt Không 4 Cá nhân 1..3 triệu Tài liệu Thường Tiền mặt Không

Một phần của tài liệu Khai phá dữ liệu với cây quyết định (Trang 29)