Weka : Decision Trees

บทความตอนนี้ผมจะอธิบายการสร้างโมเดล classification ด้วยซอฟต์แวร์ Weka Explorer ครับ โดยมีขั้นตอนต่างๆ ดังนี้ครับ

การเตรียมข้อมูล [download id=”342″]

  1. คลิ๊ก open file เลือก bank-data-4

2. คลิ๊ก Choose -> filters – > unsupervised -> attribute -> ReplaceMissingValues จากนั้นกดปุ่ม Apply

  1. การลบข้อมูลที่ไม่ได้ใช้

4. การทำข้อมูลให้เป็น nominal คลิ๊ก Choose -> filters -> unsupervised -> attribute -> Didcretize

  1. คลิกที่ ช่องที่ขาว เพื่อปรับค่า bin ให้ bin = 3 จากนั้น กด Apply

ขั้นตอนการเตรียมข้อมูลเสร็จสิ้น

แนะนำต่อไปนี้ จะขึ้นอยู่ Weka รุ่น 3.4.1 แหล่งข้อมูลเพิ่มเติม เกี่ยวกับ Weka รวมถึง ตัวอย่าง ชุด ข้อมูลที่ สามารถพบได้จาก เว็บไซต์ อย่างเป็นทางการ Wekaตัวอย่างนี้ แสดงให้เห็นถึง การใช้งานของ C4.5 ( J48 ) ลักษณนาม ใน Weka ข้อมูลชุดตัวอย่าง ที่ใช้ เช่นนี้ เว้นแต่ที่ระบุไว้ เป็นอย่างอื่น เป็นข้อมูลที่ ธนาคาร มีอยู่ใน รูปแบบที่ คั่นด้วยเครื่องหมายจุลภาค ( bank-data.csv ) เอกสาร นี้อนุมานว่า ขั้นตอนการเตรียม ข้อมูลที่เหมาะสม ได้รับการ perfromed ในกรณีนี้เขตข้อมูลหมายเลข ถูกลบออก ตั้งแต่ ขั้นตอนวิธี C4.5 สามารถจัดการกับ คุณลักษณะที่ ตัวเลข มีความ จำเป็นที่จะต้อง discretize ใดๆ ในลักษณะที่ไม่มี สำหรับวัตถุประสงค์ของ ตัวอย่างนี้แต่ “เด็ก “ คุณลักษณะที่ ได้รับการ แปลงเป็น คุณลักษณะที่ เด็ดขาด มีค่า ” ใช่ ” หรือ “ไม่”

Weka มี การใช้งานของ การจัดหมวดหมู่ และการทำนาย หลาย ขั้นตอนวิธีการ ความคิด พื้นฐานที่อยู่เบื้องหลัง การใช้ สิ่งเหล่านี้ มีลักษณะที่คล้าย ในตัวอย่างนี้ เราจะใช้รุ่นล่าสุด ของข้อมูล ธนาคารในการจำแนก กรณี ใหม่โดยใช้ ขั้นตอนวิธีC4.5 (หมายเหตุ ที่ C4.5จะดำเนินการใน Weka โดยชั้น ลักษณนาม: weka.classifiers.trees.J48) ฉบับแก้ไข (และ ขนาดเล็ก) ของข้อมูล ธนาคารที่ สามารถพบได้ในไฟล์“bank.arff“และ กรณีที่ ไม่เป็นความลับ ใหม่ ที่อยู่ใน แฟ้ม ” bank-new.arff ”

รูปที่ 1 แสดงข้อมูล bank data 4 ที่เตรียมข้อมูลเสร็จสิ้นแล้ว

ต่อไปเราจะเลือก “จำแนกแท็บ” และคลิกที่ “เลือก” เพื่อเลือกลักษณนาม J48 เป็นที่ปรากฎในรูป 2a และ 2b โปรดทราบว่า J48 (การดำเนินการตามขั้นตอนวิธี C4.5) ไม่จำเป็นต้องไม่ต่อเนื่องของคุณลักษณะตัวเลขในทางตรงกันข้ามกับขั้นตอนวิธี ID3 ซึ่ง C4.5 มีการพัฒนา

รูปที่ 2a เลือก classifiers ->Choose

รูปที่ 2b เลือก classifiers->trees->J48

ตอนนี้เราสามารถระบุ พารามิเตอร์ต่างๆ เหล่านี้สามารถระบุได้ด้วยการคลิกในกล่องข้อความที่ด้านขวาของปุ่ม “เลือก” ที่แสดงในรูปที่ 3 ในตัวอย่างนี้เรายอมรับค่าเริ่มต้น รุ่นเริ่มต้นจะดำเนินการตัดแต่งกิ่งบางส่วน (โดยใช้วิธีการระดม subtree) แต่ไม่ดำเนินการตัดแต่งกิ่ง ข้อผิดพลาดพารามิเตอร์ที่เลือกจะแสดงในรูปที่ 3

รูปที่ 3 คลิกที่กล่องสีขาวข้าง choose สำหรับปรับค่าพารามิเตอร์

ภายใต้ “ตัวเลือกการทดสอบ” ในแผงหลักที่เราเลือก 10 เท่าการตรวจสอบข้ามเป็นวิธีการประเมินผลของเรา เนื่องจากเราไม่ได้มีการแยกการประเมินผลข้อมูลชุดนี้มีความจำเป็นต้องได้รับความคิดที่เหมาะสมของความถูกต้องของรูปแบบที่สร้างขึ้น ตอนนี้เราคลิก “Start” เพื่อสร้างรูปแบบ รุ่นASCII ของต้นไม้รวมทั้งสถิติการประเมินผลจะปรากฏในแผงแปดเมื่อการก่อสร้างแบบเสร็จเรียบร้อยแล้ว (ดูรูปที่ 4)

รูปที่ 4 แสดง Classifier model

เราสามารถดูข้อมูลนี้ในหน้าต่างแยกต่างหาก โดยการคลิกขวาชุดผลลัพธ์สุดท้าย (ภายในรายการ “ผล” ที่แผงด้านซ้าย) และเลือก “ดูในหน้าต่างแยก” จากเมนู ป๊อปอัพ ขั้นตอนเหล่านี้และส่งผลให้หน้าต่างที่มีผลการจัดหมวดหมู่เป็นภาพในรูป 24 และ 24-b

รูปที่ 5a คลิ๊กขวาResult listc -> view in separate window

รูปที่ 5b หน้าต่างแสดงผลลัพธ์จากการกด view in separate window

โปรดทราบว่าถูกต้องจัดหมวดหมู่ของรูปแบบของเราเป็นเพียงประมาณ 69% นี้อาจบ่งบอกว่าเราอาจจะต้องทำงานมากขึ้น (ทั้งในขั้นตอนการเตรียมหรือในการเลือกพารามิเตอร์ที่ถูกต้องสำหรับการจำแนกประเภท) ก่อนที่จะสร้างรุ่นอื่น ในตัวอย่างนี้ แต่เราจะยังคงมีรูปแบบนี้แม้จะมีความไม่ถูกต้องของ

Weka นี้ยังขอให้เราดูการกระทำกราฟิกของต้นไม้การจัดหมวดหมู่ ซึ่งสามารถทำได้โดยการคลิกขวาชุดผลลัพธ์สุดท้าย (เมื่อก่อน) และเลือก “แสดงภาพของต้นไม้” จากเมนู ป๊อปอัพต้นไม้ เช่นนี้เป็นที่ปรากฎในรูปที่ 6. ทราบว่าโดยการปรับขนาดหน้าต่างและเลือกรายการเมนูต่างๆจากภายในมุมมองต้นไม้ (โดยใช้ปุ่มเมาส์ขวา) เราสามารถปรับมุมมองของต้นไม้เพื่อให้อ่านง่ายขึ้น

รูปที่ 6 หน้าต่างแสดงผลลัพธ์ visualize tree

ตอนนี้เราจะใช้รูปแบบของเราในการจำแนกชนิดใหม่ ๆ เป็นส่วนหนึ่งของไฟล์กรณี ARFF ใหม่เป็นภาพในรูปที่ 6. ทราบว่าส่วน แอตทริบิวต์ จะเหมือนกับข้อมูลการฝึกอบรม (ข้อมูลของธนาคารที่เราใช้สำหรับการสร้างแบบจำลองของเรา) อย่างไรก็ตามในส่วนของข้อมูลค่าของ “pep” แอตทริบิวต์เป็น “?” (หรือไม่ทราบ)

ในแผงหลักภายใต้ “Test options” คลิก “Supplied test set” แล้วคลิก “Set … ” ปุ่ม นี้จะปรากฏขึ้นหน้าต่างซึ่งจะช่วยให้คุณสามารถเปิดไฟล์ที่มีกรณีการทดสอบเช่นเดียวกับในรูปที่ 7a และ 7b

รูปที่ 7a คลิ๊ก Supplied test set แล้วกดปุ่ม Set…

รูปที่ 7b กด open file -> bank-data-new.arff -> Open

ในกรณีนี้เราเปิดไฟล์ “bank-data-new.arff” และเมื่อกลับไปที่หน้าต่างหลักที่เราคลิกปุ่ม “เริ่มต้น” นี้อีกครั้งหนึ่งสร้างรูปแบบจากข้อมูลการฝึกอบรมของเรา แต่เวลานี้มันใช้แบบจำลองเพื่อใช้กรณีไม่เป็นความลับใหม่ใน “bank -new.arff” แฟ้มเพื่อทำนายค่าของ “pep” แอตทริบิวต์ ผลที่ได้คือภาพในรูปที่ 8. ทราบว่าบทสรุปของผลการค้นหาในแผงปุ่มขวาไม่แสดงสถิติใด ๆ นี้เป็นเพราะในกรณีการทดสอบของเราค่าของแอตทริบิวต์ชั้น (“pep”)ถูกทิ้งไว้ที่ “?” จึง Weka ไม่มีค่าที่แท้จริงที่มันสามารถเปรียบเทียบค่าที่คาดการณ์ไว้ในกรณีใหม่

แน่นอนในตัวอย่างนี้เรามีความสนใจในการรู้จักวิธีการจัดการรูปแบบของเราในการจำแนกชนิดใหม่ ๆ จะทำเช่นนั้นเราต้องสร้างไฟล์ที่มีทุกกรณีใหม่พร้อมกับค่าระดับของพวกเขาที่คาดการณ์ไว้เป็นผลมาจากการประยุกต์ใช้แบบจำลอง การทำเช่นนี้ง่ายมากใช้รุ่นบรรทัดคำสั่งของโปรแกรมลักษณะนาม Weka แต่ก็เป็นไปได้ที่จะทำเช่นนั้นในรุ่น GUI โดยใช้ “ทางอ้อม” วิธีการดังต่อไปนี้

ขั้นแรกให้คลิกขวาที่ผลล่าสุดที่ตั้งอยู่ในด้านซ้าย “Result list” ในหน้าต่าง ป๊อปอัพส่งผลให้เลือกรายการเมนู “Visualize classifier errors” นี้จะทำให้หน้าต่างที่แยกต่างหากที่มีกราฟสองมิติ ขั้นตอนเหล่านี้และวินโดว์ที่จะแสดงใน

รูปที่ 8 Result list -> Visualize classifier errors

รูปที่ 9 แสดงผลลัพธ์ เมื่อเลือก Visualize classifier errors

สำหรับตอนนี้เราจะไม่สนใจในสิ่งที่กราฟนี้แสดงให้เห็นถึง แต่เราต้องการที่จะ “บันทึก” ผลการจัดหมวดหมู่ที่กราฟจะถูกสร้างขึ้น ในหน้าต่างใหม่ที่เราคลิกที่ปุ่ม “บันทึก” และบันทึกผลเป็นไฟล์ “bank-predicted.arff” ดังแสดงในรูปที่ 10

รูปที่ 10 Save ตั้งชื่อไฟล์เป็น bank-predicted.arff กด Save

ไฟล์นี้มีสำเนาของอินสแตนซ์ใหม่พร้อมกับคอลัมน์เพิ่มเติมสำหรับค่าทำนายของ “pep”ส่วนด้านบนของไฟล์ที่สามารถเห็นได้ในรูปที่ 11

รูปที่ 11 ไฟล์ bank-predicted.arff ที่แสดงใน Word

ทราบว่าทั้งสองคุณสมบัติได้รับการบันทึกข้อมูลกรณีใหม่ที่เป็นต้นฉบับ “Instance_number” และ “predictedpep” เหล่านี้สอดคล้องกับคอลัมน์ใหม่ในส่วนข้อมูล”predictedpep” ค่าสำหรับแต่ละตัวอย่างใหม่เป็นค่าสุดท้ายก่อนที่ “?” ที่จริง “ห้าวหาญ” ค่าเรียน ตัวอย่างเช่นค่าทำนายของ “pep” คุณลักษณะเช่น 0 คือ “ใช่” ตามรูปแบบของเราในขณะที่ค่าระดับที่คาดการณ์ไว้เช่น 4 เป็น “ไม่”

 

เอกสารความรู้เบื้องต้นการใช้โปรแกรม weka  [download id=”1975″]