Lập trình logic qui nạp (Inductive logic programming LLP)[27 ]

Một phần của tài liệu Ứng dụng lý thuyết tập thô trong khai phá dữ liệu kinh tế - tài chính (Trang 68)

LLP)[27]

Lập trình logic qui nạp (ILP) được định nghĩa như là phần giao nhau của tự học qui nạp và lập trình logic. ILP được dựa trên lập trình logic theo nghĩa các chương trình logic, chúng là một tập con quan trọng của logic cấp 1 được sử dụng để mô tả dữ liệu vào và mô hình có được. Các thuật toán ILP có thể được sử dụng để giải quyết các nhiệm vụ khai phá dữ liệu quan hệ bởi vì các chương trình logic khái quát hoá cơ sở dữ liệu quan hệ, có nghĩa một cơ sở dữ liệu quan hệ có thể dễ dàng chuyển đổi vào một chương trình logic. Dữ liệu được mô tả trong các chương trình logic với các sự kiện (facts), tri thức được mô tả với các luật. Hầu hết các khái niệm của công nghệ cơ sở dữ liệu quan hệ có phần tương ứng trong lập trình logic, chỉ có thuật ngữ là khác

Dữ liệu vào cho một thuật toán ILP được mô tả như một chương trình logic.

Một chương trình logic là một tập những định nghĩa vị từ. Một vị từ có thể được định nghĩa ngoại diên (extensional) hay nội hàm (intensional).

Một vị từ được định nghĩa ngoại diện là chương trình logic tương đương với một bảng cơ sở trong cơ sở dữ liệu quan hệ. Một bảng cơ sở với tên là p, m thuộc tính và N bộ tương ứng với một vị từ p/m, với p là tên vị từ, m là số đối hay ngôi của nó. Vị từ p/m được định nghĩa ngoại diên bởi N sự kiện dưới dạng p(u1,..,um) mỗi sự kiện tương ứng với 1 bộ, với ui là giá trị thuộc tính thứ i của bộ đó.

Một cách hình thức, ILP được định nghĩa như sau:

Cho :

+ Tri thức nền , B , một tập các mệnh đề Horn

+ Các mẫu dương, P- một tập các mệnh đề Horn ( các literal cơ sở) + Các mẫu âm, N - một tập những mệnh đề Horn ( các literal cơ sở) Tìm: Một giả thuyết, H - một tập những mệnh đề Horn, sao cho:

+ p P: H  B ╞═ P + p N: H  B ╞/═ P

3.3. Thuật toán FOIL và FOCL [20, 21]

Nhiều hệ thống học máy quan hệ đâ phát triển trong những năm gần đây [Mitchell, 1997] . Trên lý thuyết, những hệ thống này có nhiều lợi thế. Mặc dù trên thực tế, độ phức tạp của ngôn ngữ phải được hạn chế chặt chẽ, giảm khả năng ứng dụng của chúng. Ví dụ, một số hệ thống yêu cầu, các định nghĩa khái niệm được diễn tả dưới dạng những cặp thuộc tính-giá trị hay chỉ dưới dạng những vị từ một ngôi. Những hệ thống cho phép những định nghĩa khái niệm quan hệ thực sự đặt vào những hạn chế mạnh trong hình thức qui nạp và tri thức ban đầu, được cung cấp cho hệ thống.

Ba phương pháp khai phá dữ liệu quan hệ : FOIL và FOCL sẽ được xem xét trong phần này và MMDR. Thuật toán FOIL [Quinlan, 1989;

Quinlan, 1990] học những mệnh đề Horn không chứa hằng (Constant-free Horn clauses), một tập con hữu ích của vị từ cấp 1 . Sau đó FOIL được mở rộng nhằm sử dụng nhiều dạng kiểu tri thức nền để gia tăng lớp các vấn đề có thể được giải quyết, để giảm bớt không gian giả thuyết được khảo sát, gia tăng độ chính xác của các luật đã học.

Thuật toán FOCL sử dụng logic cấp 1 và metric tối ưu dựa trên thông tin của FOIL kết hợp với tri thức nền

Vấn đề phát sinh luật và kiểm tra là một bài toán NP-C (NP đầy đủ) [21], vì thế chúng ta phải đối diện với vấn đề thiết kế các thuật toán NP-C. Có một vài vấn đề liên quan đó là: điều gì xác định số các luật được kiểm tra? khi nào thì dừng phát sinh luật? thuật toán FOIL và FOCL dựa trên - tiêu chuẩn độ đo thông tin (information gain) thu được.

3.3.1. Thuật toán FOIL

FOIL sử dụng những mẫu dương và mẫu âm {e+}, {e-}cho khái niệm C và những vị từ (nền) liên quan. Thuật toán FOIL cố gắng phát sinh một luật R kết hợp từ những vị từ này theo một cách sao cho R là đúng với những mẫu dương, R(e+) = 1, và sai với những mẫu âm R(e-) = 0. Luật này không chứa những ký hiệu hằng và hàm, nhưng có thể chứa những vị tự phủ định trong cả FOIL và FOCL.

Thuật toán FOIL có hai giai đoạn chính:

- Giai đoạn tách rời (separate stage) khởi đầu một mệnh đề mới - Giai đoạn chiếm dần (conquer stage)

Mỗi mệnh đề mô tả một số tập con các mẫu dương và không có các mẫu âm. FOIL sử dụng hai toán tử

- Khởi đầu một mệnh đề rỗng mới

- Thêm một Literal vào cuối mệnh đề hiện tại

Việc thêm các Literal tiếp tục cho đến khi không còn mẫu âm nào được phủ bởi mệnh đề. Những Literal này được thêm vào cuối mệnh đề

hiện tại. FOIL khởi đầu những mệnh đề mới cho đến khi tất cả các mẫu dương được phủ bởi một số mệnh đề

Thuật toán FOIL:

Cho POS là tập những mẫu dương. Cho NEG tập các mẫu âm.

Đặt Newclausebody là  (rỗng)

Until POS là  do: (trước khi POS là rỗng, thực hiện)

Separate: (Khởi đầu những mệnh đề mới - begins new clauses) Xoá trong POS tất cả những mấu thoả Newclausebody.

Đặt lại NEG là những mẫu âm ban đầu Thiết lập lại Newclausebody là 

Until NEG là  do: (Trước khi NEG là , thực hiện)

Conquer: (Xây dựng thân mệnh đề - build clause body)

Chọn một literal L.

Kết nối L vào Newclausebody.

- Quá trình thêm những Literal chấp nhận một cơ chế để phát sinh các Literal, có nghĩa là một kết hợp đặc biệt của các biến và những tên vị từ. Nếu một vị từ (tên vị từ) đã được lựa chọn, thì sự lựa chọn các biến được gọi là một (biến số hoá) Variablization (của vị từ) [Pazzani, Kibler, 1992] . Nếu biến đã chọn đã xuất hiện trong Literal không âm của luật, thì biến được gọi là cũ (Old), ngược lại, biến được gọi là mới (New). FOIL và FOCL yêu cầu ít nhất một biến cũ. Biến cũ này có thể nằm trong phần đầu hay thân luật hiện tại (Mệnh đề Horm)

FOIL sử dụng cách tiếp cận tối ưu hoá leo núi để thêm literal với độ đo thông tin tối đa (information gain) đối với mệnh đề (luật). Điều này yêu cầu tính toán độ đo thông tin cho mỗi lượng biến đổi (variablization) của mỗi vị từ P. Metric độ đo thông tin được sử dụng bởi FOIL là :

Gain(literal) = T++* (log2(P1/(P1 + N1)) - log2 (P0/(P0+N0)))

Với P0 và N0 là số những mẫu dương và bộ âm trước khi thêm literal vào mệnh đề; Với Pi và Ni là số các mẫu dương và bộ âm sau khi thêm literal vào mệnh đề.

T++ là số các bộ dương trước khi thêm literal sao cho ít nhất có một mở rộng tương ứng trong những bộ dương sau khi thêm literal.

Chi phí (Cost): Tìm kiếm leo núi sử dụng bởi FOIL phụ thuộc vào hệ số phân nhánh của cây tìm kiếm. Hệ số phân nhánh này là một hàm mũ của (I) số ngôi của vị từ sẵn có, (2) ngôi của vị từ đã được học và (3) chiều dài của mệnh đề đang được học [Pazzani, Kibler, 1992] . Hai độ đo ước lượng chi phí của tính toán FOIL:

+ Chi phí lý thuyết: số các literal khác nhau có thể được lựa chọn để mở rộng phần thân của vị từ được cho (không phụ thuộc vào số các mẫu huấn luyện),

+ Chi phí đánh giá: Chi phí tính toán độ đo thông tin của mỗi literal (phụ thuộc vào số các mẫu huấn luyện).

Heuristic: Kiểm thử những lượng thay đổi của một vị từ được tránh bởi một heuristic tỉa nhánh và cận trong FOIL.

3.3.2. Thuật toán FOCL

Thuật toán FOCL [Pazzani, 1997, Pazzani, Kibler] mở rộng và sửa đổi FOIL để cho phép nhiều dạng tri thức nền:

- Những ràng buộc đề giới hạn không gian tìm kiếm

- Những vị từ định nghĩa bởi một luật thêm vào những vị từ định nghĩa bởi một tập các mẫu.

- Đưa vào những luật bộ phận, có khả năng sai là một xấp xỉ đầu của vị từ được học.

Những mở rộng này hướng dẫn xây dựng một mệnh đề bằng việc lựa chọn những literal để kiểm thử. FOCL cố gắng để ràng buộc việc tìm kiếm bằng cách sử dụng định kiểu biến, những ràng buộc liên đối số và một cách tiếp cận lặp mở rộng (iterative-widening approach) để thêm những biến mới.

Những tác giả của FOCL [21] đã đưa ra một số kết luận quan trọng về độ phức tạp của những luật tự học và giá trị của những loại tri thức khác nhau, như sau:

Thuật toán FOCL:

Cho:

1 .Tên vị từ với ngôi (arity) đã biết 2. Một tập những bộ dương

3. Một tập những bộ âm

4. Một tập nhĩmg vị từ định nghĩa theo ngoại diên

5. Một tập những vị từ định nghĩa theo nội hàm (không bắt buộc) 6. Một tập những ràng buộc ví dụ như: định kiểu) trên những vị từ nội hàm và ngoại diên (không bắt buộc)

7. Một luật ban đầu (không bắt buộc)

Tạo ra: Một luật dưới dạng những vị từ ngoại diên sao cho không có mệnh đề phủ bất kỳ mẫu âm nào và một số mệnh đề phủ tất cả mẫu dương.

Hệ số phân nhánh tăng theo hàm mũ với ngôi (arity) của những vị tự đã có và vị từ được học

- Hệ số phân nhánh tăng theo hàm mũ với số các biến mới được đưa ra - Độ khó trong việc tự học một luật là tỷ lệ tuyến tính với số những mệnh đề trong luật

- Tri thức về những kiểu dữ liệu cung cấp một độ giảm theo hàm mũ với sự cần thiết tìm kiếm để tìm một luật

- Bất kỳ phương pháp (ràng buộc đối số, ràng buộc ngữ nghĩa, định kiểu, đối xứng, v.v) mà loại bỏ những đường đi không có kết quả sẽ giảm bớt chi phí tìm kiếm và làm gia tăng độ chính xác.

- Hàm đánh giá đều cho phép FOCL để chấp nhận lý thuyết miền vừa không đúng và không đầy đủ.

Một phần của tài liệu Ứng dụng lý thuyết tập thô trong khai phá dữ liệu kinh tế - tài chính (Trang 68)

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

(90 trang)