Thuật toán SLIQ[5]

Một phần của tài liệu 28064_1712202001934994LUANVANPHAMDINHBON (Trang 41 - 45)

5. Cấu trúc luận văn

2.2.4. Thuật toán SLIQ[5]

Thuật toán SLIQ (Supervised Learning In Quest) đƣợc gọi là thuật toán phân lớp leo thang nhanh. Thuật toán này có thể áp dụng cho cả hai kiểu thuộc liên tục và thuộc tính rời rạc[4][5].

Thuật toán này có sử dụng kỹ thuật tiền xử lý phân loại(Pre sorting) trƣớc khi xây dựng cây, do đó giải quyết đƣợc vấn đề bộ nhớ cho thuật toán ID3.

Thuật toán SLIQ có thể phân lớp rất hiệu quả đối với các tập dữ liệu lớn và không phụ thuộc vào số lƣợng lớp, số lƣợng thuộc tính và số lƣợng mẫu trong tập dữ liệu.

Xây dựng cây quyết định theo thuật toán này chia ra làm 2 giai đoạn: 1. Giai đoạn tạo cây

 Vào: tập dữ liệu học T

 Ra: cây đƣợc phân loại trên tập T Hàm

MakeTree(TrainningData T) {partition (T) ;}

2. Giai đoạn phân chia tập dữ liệu S

Thủ tục phân loại tập S có giả mã nhƣ sau: Function partition (Data S)

{

If <tất cả các giá trị của tập S đều thuộc cùng một lớp> Then <kết thúc>

Else{ <Đánh giá mỗi thuộc tính A để phân chia>;

<Tách tập S thành 2 tập con S1 và S2 theo thuộc tính A mà có giá trị chia tách tốt nhất>;

<Gọi đệ qui thủ tục Partition(S1)>; <Gọi đệ qui thủ tục Partition(S2)>; }

Chỉ số chia tách (Spliting index):

Vấn đề đặt ra trong thủ tục Partition(S) trên là làm thế nào để đánh giá thuộc tính tốt nhất cho việc lựa chọn thuộc tính để chia tách. Để đánh giá thuộc tính tốt nhất đó, thuật toán SLIQ đƣa vào một đại lƣợng, gọi là chỉ số hàm Gini, chỉ số gini đƣợc định nghĩa nhƣ sau:

 Nếu tập dữ liệu T gồm n lớp thì giá trị gini của tập T ký hiệu Gini(T) đƣợc xác định bởi công thức:

2

( ) 1 j

Gini T  P (2.14) Trong đó Pj là tần suất xuất hiện của lớp j trong tập mẫu T.

 Nếu tập T đƣợc tách ra làm 2 tập con T1 và T2 thì chỉ số Gini của tập T khi đƣợc chia tách ký hiệu là gini(T)spiit đƣợc xác định bởi công thức sau: 1 2 1 2 | | | | ( ) ( ) ( ) | | | | split T T

Gini T gini T gini T

T T

  (2.15)

Sau khi tính toán chỉ số gini cho các nút, thuộc tính nào có chỉ số gini nhỏ nhất sẽ đƣợc chọn để thực hiện tiếp việc triển khai cây.

Kỹ thuật tiền xử lý phân loại(Pre_sorting Technique)

Kỹ thuật này tạo ra một lƣợc đồ, lƣợc đồ này đƣợc tạo ra bằng cách sắp xếp dữ liệu tạo ra tại mỗi nút. Ứng với mỗi thuộc tính có một danh sách riêng tạo ra bởi tập giá trị của thuộc tính và định danh các mẫu dữ liệu. Mỗi danh sách riêng gọi là danh sách lớp (class list). Các danh sách riêng sẽ tạo ra tƣơng ứng nhãn của cây gắn với các mẫu học.

Thuật toán SLIQ yêu cầu tại một thời điểm có một danh sách lớp và chỉ một danh sách thuộc tính đƣợc lƣu trữ trong bộ nhớ của máy tính, các danh sách còn lại lƣu trên đĩa.

Đánh giá sự phân chia:

Thuật toán đánh giá phân chia: EvaluateSplits ()

{

For <Với mỗi thuộc tính A> do {

< Duyệt danh sách các giá trị của thuộc tính A>; For <với mỗi giá trị v trong danh sách thuộc tính > do

<Tìm một mục tƣơng ứng trong danh sách lớp, sau đó hãy tìm lớp tƣơng ứng với nút lá 1>;

<Cập nhật biểu đồ lớp vào trong nút lá 1>;

If <A là thuộc tính số> Then for <với mỗi nút lá trong cây> do <Tìm tập con của tập A mà có chỉ số tách là tốt nhất>

} }

Cập nhật danh sách lớp:

Thuật toán cập nhật danh sách lớp: UpdateLabels()

{ for<Với mỗi thuộc tính A đƣợc sử dụng trong một phép tách> do { <Duyệt danh sách các thuộc tính của A>;

For <Với môi giá trị v trong danh sách các thuộc tính của A> do {<Tìm một mục tƣơng ứng với danh sách lớp e>;

<Tìm lớp c chứa giá trị v bằng cách áp dụng sự kiểm tra phân chia tại nút c đƣợc tham chiếu từ e>;

<Cập nhật nhãn của lớp cho lớp e vào lớp mới c>;

<Cập nhật nút đƣợc tham chiếu trong e vào nút con tƣơng ứng cho lớp c>;

} }

}

Một phần của tài liệu 28064_1712202001934994LUANVANPHAMDINHBON (Trang 41 - 45)

Tải bản đầy đủ (PDF)

(107 trang)