VerboseC4.5 và VerboseC4.5Rules được dùng để thông dịch các dữ liệu ra của C4.5 và C4.5Rules. Hai file cuối cùng đó là Consult và Consultr sử dụng một cây quyết định và sử dụng một tập hợp các luật để phân lớp các ví dụ huấn luyện.
3.2 Sử dụng C4.5 để sinh cây quyết định từ tập dữ liệu huấn luyện luyện
Như đã nói ở trên, file thực thi được C4.5 được sử dụng để sinh ra một cây quyết định từ một tập hợp dữ liệu huấn luyện được lưu trong các file mà C4.5 hiểu được. Cú pháp của C4.5 như sau:
c4.5 [ -f filestem ] [ -u ] [ -s ] [ -p ] [ -v verb ] [ -t trials ] [ -w wsize ] [ -i incr ] [ -g ] [ -m minobjs ] [ -c cf]
Trong đó các tùy chọn có ý nghĩa:
- f: Chỉ rõ cho c4.5 biết sẽ xử lý tệp nào thay vì ngầm định c4.5 tìm và xử lý file DF.
- u: Ước lượng các cây được sinh ra trong các trường hợp không nhìn thấy trong tệp [tên tệp].test.
…..
C4.5 yêu cầu dữ liệu đầu vào được lưu trữ ở là 3 file với tên được đặt theo cấu trúc có phần mở rộng là .names, .data và .test. Hai file nhất thiết phải có đó là .names và .data. Ở đó, file .names là file chứa một loạt thông tin về tên của các thuộc tính, giá trị của các thuộc tính và các lớp. File này có định dạng bất kỳ với một ngoại lệ là ký tự sổ dọc “|” sẽ được hiểu là phần sau nó sẽ được bỏ qua không xử lý. Dòng đầu tiên của file chứa một danh sách các lớp được mà chương trình muốn phân lớp. Các lớp được phân cách bởi một dấu phẩy “,” và kết thúc bằng dấu chấm “.”. Tiếp theo là một dòng trắng để ngăn cách dòng chứa các lớp và dòng chứa các thuộc tính và giá trị của các thuộc tính đó.
Các dòng tiếp theo, mỗi dòng là một thuộc tính và các giá trị của nó. Nếu thuộc tính có giá trị là rời rạc thì các giá trị của thuộc tính được liệt kê sau tên thuộc
chấm “.”. Ngược lại, nếu thuộc tính có giá trị là liên tục thì ngay sau tên thuộc tính và dấu hai chấm “:” ta ghi giá trị cho thuộc tính là “continous”. Tên thuộc tính và các giá trị của nó được ngăn cách bởi một dấu hai chấm. Ví dụ ta có nội dung 1 file .names của ví dụ về chơi Golf ở trên như sau:
Play, Don't Play.
outlook: sunny, overcast, rain. temperature: continuous.
humidity: continuous. windy: true, false.
File này sẽ được lưu với tên là Golf.names
File thứ 2 mà C4.5 nhất thiết phải cần đó chính là file chứa đựng tập dữ liệu huấn luyện, đây là một file có cấu trúc dạng CSV – File có các trường được ngăn cách nhau bởi một dấu phẩy “,” và kết thúc mỗi dòng bởi dấu chấm. Các giá trị đưa vào trên mỗi dòng phải được sắp xếp theo đúng thứ tự với thứ tự của các thuộc tính được định nghĩa trong file .names ở trên. Nếu một thuộc tính mà giá trị không thể được xác định thì có thể thay bằng một dấu chấm hỏi “?”. Vị trí cuối cùng của mỗi dòng phải là 1 nhãn của các lớp.
Trở lại với ví dụ chơi Golf mà ta đã đề cập ở các phần trên, toàn bộ 14 ví dụ huấn luyện sẽ được đưa vào file Golf.data như sau:
sunny, 85, 85, false, Don't Play sunny, 80, 90, true, Don't Play overcast, 83, 78, false, Play rain, 70, 96, false, Play rain, 68, 80, false, Play rain, 65, 70, true, Don't Play overcast, 64, 65, true, Play sunny, 72, 95, false, Don't Play sunny, 69, 70, false, Play
rain, 75, 80, false, Play sunny, 75, 70, true, Play overcast, 72, 90, true, Play overcast, 81, 75, false, Play rain, 71, 80, true, Don't Play
Sau khi đã chuẩn bị xong dữ liệu huấn luyện và dữ liệu phân lớp, ta sử dụng C4.5 để sinh cây quyết định từ tập ví dụ huấn luyện như sau:
Hình 3.1 Kết quả khi chạy C4.5 với ứng dụng chơi Golf
Với tập ví dụ huấn luyện ở trên, C4.5 xử lý và cho ra được kết quả là một cây quyết định như sau (hình 3.1):
outlook = overcast: Play (4.0) outlook = sunny:
| humidity <= 75 : Play (2.0) | humidity > 75 : Don't Play (3.0) outlook = rain:
| windy = true: Don't Play (2.0) | windy = false: Play (3.0)