อัลกอริทึมสำหรับสร้างกฎการจำแนกประเภท


11

ดังนั้นเราจึงมีศักยภาพสำหรับแอปพลิเคชันการเรียนรู้ของเครื่องที่เหมาะสมอย่างเป็นธรรมกับโดเมนปัญหาดั้งเดิมที่แก้ไขโดยตัวแยกประเภทคือเรามีชุดของคุณลักษณะที่อธิบายรายการและ "ถัง" ที่พวกเขาลงเอยอย่างไรก็ตามแทนที่จะสร้างแบบจำลอง ของความน่าจะเป็นเช่น Naive Bayes หรือตัวแยกประเภทที่คล้ายกันเราต้องการให้ผลลัพธ์ของเราเป็นชุดของกฎที่มนุษย์สามารถอ่านได้ซึ่งสามารถตรวจสอบและแก้ไขได้โดยผู้ใช้ปลายทาง

การเรียนรู้กฎของสมาคมดูเหมือนว่าตระกูลของอัลกอริทึมที่แก้ปัญหาประเภทนี้ แต่อัลกอริธึมเหล่านี้ดูเหมือนจะมุ่งเน้นไปที่การระบุชุดค่าผสมทั่วไปของคุณลักษณะและไม่รวมแนวคิดของที่เก็บข้อมูลสุดท้ายที่คุณลักษณะเหล่านั้นอาจชี้ไป ตัวอย่างเช่นชุดข้อมูลของเรามีลักษณะดังนี้:

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

ฉันแค่ต้องการกฎที่บอกว่า "ถ้ามันใหญ่และ 2 ประตูเป็นรถบรรทุก" ไม่ใช่กฎที่บอกว่า "ถ้าเป็น 4 ประตูมันก็เล็ก"

วิธีแก้ปัญหาหนึ่งที่ฉันคิดได้ก็คือใช้อัลกอริธึมการเรียนรู้กฎการเชื่อมโยงและไม่สนใจกฎที่ไม่เกี่ยวข้องกับที่เก็บข้อมูลส่วนท้าย แต่ดูเหมือนจะเป็นเรื่องเล็กน้อย ฉันคิดถึงอัลกอริธึมบางตระกูลหรือไม่? หรือบางทีฉันกำลังเข้าใกล้ปัญหาที่ไม่ถูกต้องที่จะเริ่มต้นด้วย?

คำตอบ:


9

C45 ที่ทำโดย Quinlan สามารถสร้างกฎสำหรับการทำนายได้ ตรวจสอบหน้าWikipediaนี้ ฉันรู้ว่าในWekaชื่อของมันคือ J48 ฉันไม่มีความคิดที่เป็นการใช้งานใน R หรือ Python อย่างไรก็ตามจากต้นไม้การตัดสินใจแบบนี้คุณควรจะสามารถอนุมานกฎสำหรับการทำนายได้

แก้ไขภายหลัง

นอกจากนี้คุณอาจสนใจอัลกอริทึมสำหรับการอนุมานกฎโดยตรงสำหรับการจำแนก RIPPER เป็นหนึ่งซึ่งอีกครั้งใน Weka มันได้รับชื่อ JRip ที่แตกต่างกัน ดูกระดาษต้นฉบับสำหรับ RIPPER: กฎระเบียบที่มีประสิทธิภาพรวดเร็ว WW โคเฮน 1995


ฉันได้ทดลองกับ C45 / J48 ในโครงการก่อนหน้านี้ ฉันไม่ทราบว่ามีกฎที่ฉันสามารถเรียกคืนได้ ฉันจะลองดู RIPPER ด้วย ขอบคุณ!
super_seabass

ตรวจสอบแพ็คเกจ C50 ใน R.
nfmcclure

ต้องการให้การอัปเดตสำหรับคำถาม / คำตอบนี้: เราใช้ JRip กับความสำเร็จบางอย่าง แต่คู่แข่งรายใหม่ของเราคือ FURIA ( cs.uni-paderborn.de/fileadmin/Informatik/eim-i-is/PDFs/ ...... ) มันสร้างกฎที่ดีที่สุดสำหรับการตรวจสอบ / การใช้งานของมนุษย์เพราะมันพยายามสร้างชุดกฎที่ละเอียดถี่ถ้วน JRip สร้างกฎที่ดี แต่มีกฎ "ค่าเริ่มต้น" สำหรับการจัดประเภทเมื่อไม่มีกฎอื่นที่ใช้ ถังเริ่มต้นทำงานได้ไม่ดีในบริบททางธุรกิจของโครงการเราต้องการกฎที่ละเอียดถี่ถ้วน
super_seabass

7

จริง ๆ แล้วง่ายกว่านั้นจากสิ่งที่คุณอธิบาย --- คุณแค่มองหาอัลกอริธึมการจำแนกต้นไม้ขั้นพื้นฐาน (ดังนั้นจึงไม่จำเป็นต้องมีตัวแปรที่ซับซ้อนกว่าเล็กน้อยเช่น C4.5 ซึ่งเหมาะสำหรับการทำนายความแม่นยำ) ข้อความบัญญัติคือ:

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

สิ่งนี้ถูกนำไปใช้อย่างง่ายดายใน R:

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

และ Python:

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


ฉันไม่เห็นด้วยที่จะช่วยต้นไม้ที่นี่ มันเป็นเรื่องของกฎการกรองและสามารถทำได้ด้วยแพ็คเกจarulesใน R.
adesantos


1

คุณควรลองarulesแพ็คเกจใน R มันช่วยให้คุณสร้างไม่เพียง แต่กฎการเชื่อมโยง แต่ยังเพื่อระบุความยาวของแต่ละกฎความสำคัญของแต่ละกฎและคุณสามารถกรองได้ซึ่งเป็นสิ่งที่คุณกำลังมองหา (ลอง คำสั่ง rhs () ของแพ็คเกจนี้)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.