จากต้นไม้แห่งการตัดสินใจ (Decision tree) สู่ ต้นไม้เพื่อการลงทุน (Investing tree)

Photo by Sebastian Pichler on Unsplash

บทความนี้ เราจะมาทำความรู้จักกับ Machine Learning algorithm ที่มีชื่อว่า “Decision Tree” กัน ถึงแม้จะเป็น Algorithm ที่ไม่ซับซ้อน แต่ก็นับว่ามีประสิทธิภาพ และเป็นพื้นฐานที่สำคัญของ Algorithm ที่รู้จักกันดี อย่าง “Random Forest” เป็นเป็น Algorithm ที่มีประสิทธิภาพมากๆ และสามารถประยุกต์ใช้งานได้อย่างหลากหลาย อีกทั้งเป็นหนึ่งอ Algorithm ที่ AlgoAddict เลือกนำมาสอนอย่างละเอียดในคอร์ส “AI เพื่อการลองทุน” จึงนับเป็นอีกหนึ่ง Algorithm ที่ควรจะทำความรู้จัก

ต้นไม้ตัดสินใจ หรือ Decision Tree เป็นอีกหนึ่งอัลกอริทึ่มของ Machine Learning ประเภท มีผู้สอน (Supervised Learning) ที่มีข้อดีหลักๆ อยู่ 4 ข้อคือ

  • สร้างได้ง่าย
  • ใช้งานได้ง่าย
  • แปลผลได้ง่าย
  • สามารถใช้ได้กับทั้งปัญหาแบบ Classification และ Regression
หมายเหตุ ปัญหาแบบ Classification คือ ปัญหาของการจัดกลุ่มข้อมูล ส่วนปัญหาแบบ Regression คือ ปัญหาของการทำนายค่าของข้อมูล จากการที่ Decision Tree สามารถทำงานได้กับปัญหาทั้งสองรูปแบบข้างต้น ทำให้เรามักจะมีการเรียกมันว่า "Classification and Regression Tree (CART)"
ต้นไม้ทั่วไป vs Decision Tree หรือ ต้นไม้ตัดสินใจของ Machine Learning

หลักการพื้นฐานในการทำงานของ Decision Tree นั้นง่ายมากๆ ด้วยการใช้หลักการของ Hierarchy of divisions การการจัดลำดับชั้นของสิ่งของนั่นเอง

ตัวอย่างการประยุกต์ใช้ Decision Tree กับปัญหาทั่วไป

ส่วนใหญ่ Decision Tree จะถูกนำมาประยุกต์ใช้ในการจัดกลุ่มข้อมูล ไม่ว่าจะเป็นข้อมูลเชิงตัวเลข เช่น ปริมาณของสิ่งต่างๆ หรือ ข้อมูลในลักษณะของ Category เช่น ประเภทสมาชิกระดับต่างๆ เป็นต้น ดังตัวอย่าง

Credit X-Factor UK

การทำนายจำนวนเสียงในการโหวต ผู้ชนะการประกวดรายการประกวดร้องเพลง X-Factor UK โดยพิจารณาจาก ชนิดของเพลง จำนวน beats ต่อนาที จำนวนสมาชิกในวง และ อื่นๆ

มาดูกันอีกซักตัวอย่างค่ะ

Credit Freeiqtest.com

การทำนายผลคะแนนการสอบวัดระดับ IQ (IQ Test) โดยอาศัยข้อมูล หนังสือที่อ่าน ประเภทของหนังสือ หัวข้อในหนังสือ ผู้เขียนหนังสือ และ จำนวนชั่วโมงในการเตรียมตัวสอบต่อสัปดาห์ เป็นต้น

ขั้นตอนการสร้าง Decision Tree

ขั้นตอนการสร้าง Decision Tree นั้นไม่ยากเลย เพียงแค่จะต้องมีการทำงานซ้ำๆ กันหลายๆ รอบเท่านั้นเอง ซึ่งก็ไม่ใช่ปัญหาเมื่อเราใช้การเขียนโปรแกรมเข้ามาช่วย

1. เริ่มจากการกำหนดข้อมูลที่ต้องการใช้ในการสร้าง Decision Tree

ในที่นี้เราจะใช้ข้อมูลการตัดสินใจว่าหุ้นจะมีราคาถูก (Cheap) หรือไม่กันค่ะ ซึ่งเราจะตั้งข้อสมมุติฐานว่า ราคาของหุ้นจะถูกหรือไม่นั้น ขึ้นอยู่กับปัจจัย 3 อย่างด้วยกันคือ P/E, Downfall และ IsProfit จากนั้นเราก็จะมาเริ่มกระการสร้างต้นไม้ของเรากันเลยค่ะ

2. หาราก (Root) ของ Decision Treeในที่นี้เราจะตัดสินใจเลือกเงื่อนไข หรือ คอลัมน์ที่จะเป็นรากของต้นไม้จากค่าความไม่บริสุทธิ์ หรือ Impurity ซึ่งสามารถคำนวนได้จากสมการ

ฟีเจอร์ (คอลัมน์) เงื่อนไขใดก็ตามที่มีค่า Gini น้อยที่สุด จะได้รับเลือกเป็นรากของต้นไม้ ในที่นี้เมื่อคำนวณค่า Gini จะได้ดังนี้

จะเห็นว่าค่า Gini ที่น้อยที่สุดคือ ค่า Gini ของฟีเจอร์ IsProfit ดังนั้น เราจึงจะเริ่มสร้างต้นไม้โดยใช้คอลัมน์ IsProfit เป็นราก (Root) นั่นเองค่ะ จะได้ดังนี้

3. ทำซ้ำขั้นตอนที่ 2 โดยการคำนวณค่า Gini ของฟีเจอร์ที่เหลือ และทำการต่อเติมต้นไม้ของเราจนครบ โดยอาจจะมีการตั้งเงื่อนไขจำกัดความสูงของต้นไม้ได้

ในที่เมื่อเมื่อทำการสร้างต้นไม้จนเสร็จ และมีการตั้งเงื่อนไขความสูงของต้นไม้ (Tree Depth) เท่ากับ 4 เราจะได้ต้นไม้ตัดสินใจ หรือ Decision Tree ที่มีลักษณะดังนี้

ตัวอย่างการใช้ Decision Tree เพื่อการลงทุน

หนึ่งในคอร์สใหม่ของพวกเราชาว AlgoAddict มีการนำ Decision Tree มาประยุกต์ใช้งานในการคัดเลือกหุ้นสำหรับนักลงทุนแบบเน้นคุณค่า โดยในคอร์สนี้ เราจะนำข้อเสนอการจัดการข้อมูลที่ค่อนข้างใหญ่ระดับล้าน Rows การหาข้อมูลงบการเงินต่างๆ การทำ Ratio การเปลี่ยนแปลงความถี่ของข้อมูล ไปจนถึงการวิเคราะห์ และ สร้างโมเดล Machine Learning เพื่อการลงทุนด้วยการใช้ Algorithms ที่หลากหลาย และ หนึ่งในนั้นก็คือตัว Decision Tree มาให้ผู้เรียนได้ทดสอบการทำงานกัน

โดย Model ที่เราจะพาทุกคนไปสร้าง จะเป็น Model สำหรับการคัดกรองหุ้นที่น่าสนใจในการลงทุน ที่เปิดโอกาสในนักลงทุนแบบเน้นคุณค่า (Value Investor) สามารถจัดลำดับ และ วางแผนการลงทุนได้อย่างเหมาะสม นั่นเองค่ะ

มาดูอย่างข้อมูลกัน

ตัวอย่างข้อมูลจากคอร์ส AI เพื่อการลงทุนแบบเน้นคุณค่า

เมื่อได้ข้อมูลมาแล้ว เราก็จะสอนให้ผู้เรียนวิเคราะห์ และพัฒนา Model Machine Learning ขึ้นมาอย่างละเอียดทุกขั้นตอนกันเลยทีเดียว จนได้ “ต้นไม้เพื่อการลงทุน” ที่ต้องการ

ตัวอย่างต้นไม้เพื่อการลงทุน (Investing Tree) – ก่อนทำการ Prune

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

ตัวอย่างการใช้ Investing Tree
ตัวอย่างผลลัพธ์ของหนึ่งใน Model Machine Learning

คอร์สนี้ถือว่าเป็นคอร์สเชิงโครงงาน (Project based) ที่น่าสนใจมากๆ เพราะเราจะพาทุกท่านไปร่วมกันสร้าง Model Machine Learning กันตั้งแต่เร่ิมต้น จากนั้น เราจะค่อยๆ วิเคราะห์ และ ปรับปรุง Model ได้เห็นพัฒนาการของ Model ไปด้วยกัน จนกระทั่งสามารถใช้งานจริงได้

นอกจากคอร์สนี้ คอร์สนี้ยังมีการสอนหลักการต่างๆ หรับการทำงานกับ Machine Learning ที่น่าสนใจอีกมากมาย เชื่อว่า เมื่อเรียนจบคอร์สนี้แล้ว จะต้องมีนักลงทุนสาย Machine Learning เพิ่มขึ้นแน่นอนค่ะ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s