Thuật toán tạo quy tắc phân loại


11

Vì vậy, chúng tôi có tiềm năng cho một ứng dụng học máy phù hợp khá gọn gàng với miền vấn đề truyền thống được giải quyết bởi các bộ phân loại, tức là chúng tôi có một tập hợp các thuộc tính mô tả một mục và một "nhóm" mà chúng kết thúc. Tuy nhiên, thay vì tạo các mô hình về xác suất như trong Naive Bayes hoặc các phân loại tương tự, chúng tôi muốn đầu ra của chúng tôi là một tập hợp các quy tắc gần như dễ đọc của con người có thể được xem xét và sửa đổi bởi người dùng cuối.

Học quy tắc kết hợp trông giống như họ các thuật toán giải quyết loại vấn đề này, nhưng các thuật toán này dường như tập trung vào việc xác định các kết hợp phổ biến của các tính năng và không bao gồm khái niệm về nhóm cuối cùng mà các tính năng đó có thể chỉ ra. Ví dụ: tập dữ liệu của chúng tôi trông giống như thế này:

Item A { 4-door, small, steel } => { sedan }
Item B { 2-door, big,   steel } => { truck }
Item C { 2-door, small, steel } => { coupe }

Tôi chỉ muốn các quy tắc có nội dung "nếu nó lớn và 2 cửa, thì đó là xe tải", chứ không phải quy tắc "nếu là 4 cửa thì nó cũng nhỏ".

Một cách giải quyết khác mà tôi có thể nghĩ đến là chỉ cần sử dụng thuật toán học quy tắc kết hợp và bỏ qua các quy tắc không liên quan đến nhóm kết thúc, nhưng điều đó có vẻ hơi khó hiểu. Tôi đã bỏ lỡ một số thuật toán gia đình ngoài kia? Hoặc có lẽ tôi đang tiếp cận vấn đề không chính xác để bắt đầu?

Câu trả lời:


9

C45 được tạo bởi Quinlan có thể tạo ra quy tắc để dự đoán. Kiểm tra trang Wikipedia này. Tôi biết rằng trong Weka tên của nó là J48. Tôi không có ý tưởng nào về việc triển khai trong R hoặc Python. Dù sao, từ loại cây quyết định này, bạn sẽ có thể suy ra các quy tắc để dự đoán.

Chỉnh sửa sau

Ngoài ra, bạn có thể quan tâm đến các thuật toán cho các quy tắc suy luận trực tiếp để phân loại. RIPPER là một, một lần nữa ở Weka, nó nhận được một cái tên khác là JRip. Xem bài viết gốc cho RIPPER: Cảm ứng quy tắc hiệu quả nhanh, WW Cohen 1995


Tôi đã thử nghiệm với C45 / J48 trong một dự án trước đó. Tôi đã không nhận ra có những quy tắc tôi có thể lấy từ nó. Tôi cũng sẽ kiểm tra RIPPER. Cảm ơn!
super_sablesass

Ngoài ra, hãy kiểm tra gói C50 trong R.
nfmcclure

Muốn cung cấp bản cập nhật cho câu hỏi / câu trả lời này: chúng tôi đã sử dụng JRip với một số thành công, nhưng ứng cử viên hàng đầu mới của chúng tôi là FURIA ( cs.uni-paderborn.de/fileadmin/Informatik/eim-i-is/PDFs/ ). Nó tạo ra các quy tắc tốt nhất để đánh giá / sử dụng của con người vì nó cố gắng tạo ra một quy tắc toàn diện. JRip đưa ra các quy tắc hay, nhưng nó có quy tắc "mặc định" để phân loại khi không áp dụng quy tắc nào khác. Các thùng mặc định không hoạt động tốt trong bối cảnh kinh doanh của dự án, chúng tôi cần các quy tắc đầy đủ.
super_sablesass

7

Nó thực sự thậm chí còn đơn giản hơn thế, từ những gì bạn mô tả --- bạn chỉ đang tìm kiếm một thuật toán cây phân loại cơ bản (vì vậy không cần các biến thể phức tạp hơn một chút như C4.5 được tối ưu hóa cho độ chính xác dự đoán). Các văn bản kinh điển là:

http://www.amazon.com/Classification-Regression-Wadsworth-Statistic-Probability/dp/0412048418

Điều này được thực hiện dễ dàng trong R:

http://cran.r-project.org/web/packages/tree/tree.pdf

và Python:

http://scikit-learn.org/urdy/modules/tree.html


Tôi không đồng ý cây giúp đỡ ở đây. Đó là vấn đề về quy tắc lọc và có thể đạt được với gói arules trong R.
adesantos


1

Bạn nên thử gói arules trong R. Nó cho phép bạn tạo không chỉ các quy tắc kết hợp mà còn chỉ định độ dài của mỗi quy tắc, tầm quan trọng của từng quy tắc và bạn cũng có thể lọc chúng, đó là những gì bạn đang tìm kiếm (thử lệnh rhs () của gói này).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.