การทำ Decision Tree เพื่อช่วยในการตัดสินในด้วย graphviz หรือ matplotlib

การสำรวจสุขภาพประชากรไทยโดยการตรวจร่างกายพบว่า ความชุกของโรคเบาหวานในประชากรไทยอายุตั้งแต่ 15 ปีขึ้นไปเพิ่มขึ้นจากร้อยละ 6.9 ในปีพ.ศ. 2547 เป็น ร้อยละ 8.8 ในปีพ.ศ. 2557 และใน ประเทศสหรัฐอเมริกา ก็พบว่า หนึ่งในทุก ๆ เจ็ด คนของประชากร จะป่วยเป็นโรคเบาหวาน และ คาดการณ์กันว่า หากไม่ควบคุม จะสูงถึง 1/3 ของประชากรทั้งหมดในปี ค.ศ. 2050 ด้วยเหตุดังกล่าว จึงมีการทำเอา Machine learning มาช่วยในการคาดเดาในหแม่นยำขึ้น ซึ่งข้อมูล

ในบทความนี้จะใช้ และเพื่อให้ เข้าใจง่าย จะนำเสนอเป็น แผนภูมิต้นไม้ โดยใช้ graphviz ซึ่งเป็น Freeware และเป็น tool ตัวหนึ่งในการวาดกราฟเหมือนรูปข้างบนขึ้นมา โดยถ้าเราใช้กับ Decision tree เราไม่ต้องเขียนเงื่อนไข ไม่ต้องเขียนคำตอบเอง โดยเพียง ใส่ข้อมูลกับ เครื่องมือแล้ว export เป็น graph ได้เลย

พูดง่ายๆคือ เราอยากจะใช้ รูปภาพ แผนภูมิต้นไม้ เพื่ออธิบายว่าทำไมถึงตัดสินใจว่าข้อมูลนั้น เป็นเบาหวานหรือไม่เป็นเบาหวานด้วย export_graphviz

แหล่งข้อมูล

1. UCI Machine Learning Repository [https://archive.ics.uci.edu/ml/index.php]

2. https://www.kaggle.com/uciml/pima-indians-diabetes-database

ขั้นตอนที่ 1 เริ่มโดย ทำการโหลดชุด library และ อ่านไฟล์ข้อมูล

ชุดข้อมูลที่เราจะใช้คือPIMA Indian Diabetes Dataset [https://www.kaggle.com/uciml/pima-indians-diabetes-database] ซึ่งมีตัวแปรทำนาย 8 ตัวและตัวแปรเป้าหมาย 1 ตัว ซึ่งก็คือ “Outcome”และใช้เป็น ตัวแปรทำนายมีชื่อว่า“Outcome” โดยที่ 0 หมายถึงไม่ใช่เบาหวานและ 1 หมายถึงโรคเบาหวาน ข้อมูลคุณสมบัติอื่น ๆ มีให้ด้านล่าง

1. Pregnancies คือ จำนวนตรั้งในการตั้งครรภ์

2. Glucose บริมาณกลูโคสในเลือด

3. ‘BloodPressure’ ความดันโลหิต

4. ‘SkinThickness’คือ ความหนาของชั้นไขมัน ด้านหลังแขนท่อนบน

5. ‘Insulin’คือ ปริมาณอินซูลิน

6. ‘BMI’ คือ ดัชนีมวลกาย

7. DiabetesPedigreeFunction ความเสี่ยงของโรคเบาหวำนที่มาจากทางพันธุกรรม

8. Age คือ อายุ

ขั้นตอนที่ 2: แบ่งเป็นสองชุดข้อมูล คือ X_train และ X_test เป็น 80:20

การสร้างแผนภูมิ ต้นไม้การตัดสินใจ (decision tree) ทำได้สองวิธีใหญ่ๆ คือ ใช้ matplotlib หรือ ใช้ graphviz ดังต่อไปนี้

วิธีที่ 1: การสร้างรูปภาพโดยใช้ graphviz

จากนั้น ทำการรัน จะได้รูปของ แผนภูมต้นไม้ ดังต่อไปนี้

และเพื่อ เก็บเป็นรูปภาพ ในรูปแบบไฟล์ สามารถใช้คำสั่งต่อไปนี้ โดยระบบจะสร้างไฟล์ที่ชื่อ decision_tree_graphivz_April21.png ไว้ใน ไดเรทอรี /Users/admin/

วิธีที่ 2: ใช้ Matplotlib เพื่อสร้าง แผนภูมต้นไม้

โดยระบบจะสร้างไฟล์ที่ชื่อ imagename.png ไว้ใน ไดเรทอรี /Users/admin/

--

--

รศ. ดร. เชฏฐเนติ ศรีสอ้าน
รศ. ดร. เชฏฐเนติ ศรีสอ้าน

Written by รศ. ดร. เชฏฐเนติ ศรีสอ้าน

รองอธิการบดีฝ่ายเทคโนโลยี มหาวิทยาลัยรังสิต

No responses yet