
คอร์สนี้เป็นคอร์ส
“ประยุกต์ใช้ศาสตร์ Artificial Intelligence ในการลงทุน”
ภายในคอร์ส เราจะเขียนโปรแกรมที่สามารถ “เลือกหุ้น” ที่จะลงทุนในระยาว ตั้งแต่ 1 ปีขึ้นไป โดยการใช้เทคนิค Machine learning เพื่อคัดแยกหุ้นที่น่าลงทุนมาให้เรา
เป้าหมายของคอร์ส
สร้างโปรเจคเพื่อ
“คัดแยกหุ้นที่น่าสนใจด้วย Machine Learning”
เราจะพาทุกท่านมาสร้าง
ตะแกรงร่อนหุ้นเพื่อเฟ้นหาหุ้นที่น่าสนใจท่ามกลางหุ้นนับพันตัว!!!

รายละเอียดหัวข้อต่างๆ ที่เราจะได้เรียนรู้จากการเรียนคอร์สนี้
- เรียนรู้วิธีการหาข้อมูลหุ้น ข้อมูลงบการเงิน ประเภทข้อมูล ข้อมูลสูงระดับล้านแถว
- เรียนรู้วิธีการจัดการข้อมูลงบการเงิน และการสร้าง Financial Feature ที่ส่งผลต่อการทำนายด้วย โมเดล Machine Learning

- การทำความสะอาดข้อมูล (Data Cleaning) เพื่อเตรียมพร้อมสำหรับการสร้างโมเดล AI
- ความรู้เบื้องต้นเกี่ยวกับ Machine Learning เช่น การแบ่งข้อมูล Train-Test Set ปัญหา Overfittingการหาจุดสมดุลของโมเดล (Bias Variance Tradeoff)
- Machine Learning โมเดลแรก “Linear Regression” พร้อมรายละเอียดครบถ้วน เช่น การวัดประสิทธิภาพ ด้วยค่า Least Squares หรือ Mean Square Error สำหรับทั้ง Simple Regression และ Multiple Regression
- การปรับแต่งโมเดลทำนายด้วย Regularization ดังนี้ 1) Ridge Regression 2) Lasso Regression 3) Elasticnet
- เทคนิคที่จำเป็นในการทดสอบประสิทธิภาพของโมเดล และ การปรับแต่งโมเดล เช่น Cross Validation, K-fold Validation, Grid Search

- Project 1: Step-by-Step กับการสร้างโมเดล เลือกหุ้นเพื่อการลงทุนด้วย Linear Regression
- เทคนิคการปรับข้อมูล (Feature Engineer) เพื่อเพื่อประสิทธิภาพของการทำนาย เช่น Power Transformer
- แนะนำอัลกอริทึมในการเลือกหุ้นที่น่าจับตามอง “Stock Selection Algorithms”
- การวัดประสิทธิภาพของโมเดล Performance Visualization, Linear Fit Line, Scatter
- การซิมมูเลชั่นผลการทำงานของโมเดล Performance Simulation
- หนึ่งใน Machine Learning โมเดลที่น่าสนใจอย่าง Decision Tree และการทำงานอย่างละเอียด
- เทคนิคที่ใช้ในการสร้าง Decision tree Gini Impurity
- การประยุกต์ใช้ Decision Tree สำหรับปัญหา Regression “Regression Tree”
- เทคนิคการปรับแต่งต้นไม้ให้มีประสิทธิภาพสูงสุด เช่น Cost Complexity Pruning

- Project 2: Step-by-Step กับการสร้างโมเดล เลือกหุ้นเพื่อการลงทุนด้วย Decision tree
- การแก้ปัญญายอดฮิตของ Decision Tree อย่าง Overfitting และ Underfitting Tree
- ปรับโครงสร้าง Decision Tree อย่างมีหลักการ
- รู้จักกับอีกหนึ่ง Machine Learning ยอดฮิตอย่างป่าแห่งการตัดสินใจ Random Forrest
- เทคนิคที่น่าสนใจในการรวม Machine Learning หลายโมเดลเข้าทำงานด้วยกัน Ensemble Method
- ปรับโครงสร้าง Random Forest
- ปัญหา Data Leak และวิธีแก้ไข เพื่อให้ได้โมเดลที่มีประสิทธิภาพสูงสุด
- ซิมมูเลชันโมเดลเพื่อการลงทุนอย่างยั่งยืน Multiple Simulation for Sustainable Investing
- โปรเจคที่ 3: Step-by-Step กับการสร้างโมเดล การเลือกหุ้นเพื่อการลงทุนด้วย Random Forest

ตัวอย่างเนื้อหาบางส่วนจากคอร์ส
Basic Machine Learning
- เรียนรู้ว่าอะไรคือ Machine Learning และ มันทำอะไรได้บ้าง
- อะไรคือการแบ่งข้อมูล Train Test และ ทำไปเพื่ออะไร
- ลองวาดเส้นเพื่ออธิบายข้อมูลกัน (แนวคิดเบื้องต้นของการใช้คณิตศาสตร์อธิบายข้อมูล)
- จากนั้นเราใช้โมเดลที่สร้างขึ้นไปเปรียบเทียบกับข้อมูล Test
- อะไรคือ Bias Variance Tradeoff อะไรคือจุดพอดีของการทำโมเดล Machine Learning


Cross validation
- ทำไมต้อง Cross check ด้วย Cross validation
- ทำไมผลงานที่ยอดเยี่ยมของโมเดล Machine learning ถึงอาจจะเป็นแค่ภาพลวงตา
- k fold cross validation
- ลองทำงานกับดาต้าจริง
- เราจมาเริ่มโค้ดดิ้งกันที่ดาต้าจริง แต่ยังไม่ใช่ข้อมูลลงทุน โดยเราจะเริ่มกันที่ข้อมูลราคาบ้าน เราจะนำมันมาเพื่อแสดงให้เห็นภาพของ Machine Learning ที่เรียนไป

Linear Regression
- มาถึงโมเดลที่เราจะใช้ในการทำนายราคาหุ้นแล้วครับ ในบทนี้เราเรียนรู้โมเดลพ้นฐานของ Machine Learning อย่าง Linear Regression กันอย่างละเอียด ว่าโมเดลทำงานอย่างไร อะไรคือ “Learning” ใน Machine Learning เราจะลดค่า Error ของโมเดลลงได้อย่างไร
- อะไรคือมาตรวัดผลงานของโมเดล
- จากนั้นปิดท้ายด้วยโค้ดดิ้งเพื่อความเข้าใจที่เพิ่มขึ้นโดยเราจะใช้ข้อมูลง่ายๆ ก่อนเพื่อให้เห็นภาพ



เพิ่มประสิทธิภาพโมเดลด้วย Regularization กัน!
- บางครั้งโมเดลของเราก็สามารถเรียนรู้กับข้อมูลสอนได้ ดีเกินไป โดยโมเดลไปลด error มากเกินไปจนเกิดการ Overfiting ทำให้ทำงานได้ดีเฉพาะข้อมูลสอนเท่านั้น อย่าเพิ่งหลงดีใจไป!
- เราจึงมาดูเทคเนคการหลีกเลี่ยงการ Overfit มา 3 แบบ คือ Ridge, Lasso และ Elastic Net
- Ridge โมเดลจะเรียนดีขึ้นเมื่อให้ความสำคัญฟีเจอร์น้อยลง
- Lasso โมเดลจะเรียนดีขึ้นเมื่อตัดฟีเจอร์ไม่สำคัญทิ้งไป
- Elastic (ยืดหยุ่น) Net โมเดลเรียนดีขึ้นเราก็ใช้สองโมเดลข้างบนร่วมกัน
- โค้ดดิ้งกันอีกครั้งเพื่อความเข้าใจที่ยิ่งขึ้น

Optional พื้นฐานและการหาข้อมูลการลงทุน
รู้จักกับแหล่งข้อมูลหุ้นและข้อมูลงบการเงิน วิธีใช้ API ในการดึงข้อมูล
- พื้นฐานโปรแกรมมิ่งกับการจัดการข้อมูลเบื้องต้น
- สร้างเป้าหมายการทำนายด้วยการคำนวณ Return
- รู้จั้กกับ Data Hub และการรวมงบการเงินประเภทต่างๆ ไว้ด้วยกัน
- [Optional] การจัดการข้อมูลการลงทุน สร้างฟีเจอร์ และเป้าหมายในการทำนายให้กับหุ้นแต่ละตัว
- เริ่มจัดการข้อมูลเพื่อสร้าง Training Set และ Testing Set ในโมเดล Machine Learning
- สร้างอัตราส่วนทางการเงินเพื่อเป็นฟีเจอร์
- กำหนดจุดหมายในการเริ่มทำนาย จะใช้ช่วงเวลาไหนดี
- จัดการข้อมูลที่ผิดพลาด หรือ ดูดีเกินจริง
- สร้างฟีเจอร์เพื่อการทำนาย X และ เป้าหมายในการทำนาย y

Project 1: สร้างโมเดลทำนายหุ้นแบบครบวงจร
- สร้างโมเดลทำนายราคาหุ้น เตรียมข้อมูลยังไง แค่ไหนถึงจะดีพอ จะใช้อะไรมากำหนดเกณฑ์ เช่น RMSE, R2 เชื่อได้ไหม cross validation ใช้ได้จริงหรือไม่
- สร้างฟังก์ชันมาตรวัดเพื่อวัดผลการทำงานของการทำนาย จากนั้นวัดผลข้อมูลว่าได้ผลดีที่ดีหรือไม่
- มาวิเคราะห์กันว่า ผลได้มาแบบนี้ หรือว่าข้อมูลเราไม่เหมาะกันนะ? ถ้าไม่เหมาะแล้วทำยังไงให้เหมาะ? ด้วยการ Transform ข้อมูลให้เหมาะยิ่งขึ้น

- วิเคราะห์อย่างละเอียดถึงขนาด ของชุดข้อมูล Train และ Test มีผลกับโมเดลหรือไม่ แค่ไหนอย่างไร เราจะมาพิสูจน์กัน
- มาเริ่มทำนายหุ้นกันต่อ เราจะเริ่มสร้างฟังก์ชันเพื่อแสดงผลการทำนายให้เราตีความได้ง่ายขึ้น พร้อมทั้ง วาดมันออกมาให้เราดูรู้เรื่อง พร้อมทั้งอธิบายการตีความ
- เริ่มเอาโมเดลที่ได้มาเลือกหุ้นที่เรา (โมเดล) คิดว่า จะมีผลงานดีที่สุด
- สร้างอัลกอริทึ่มในการเลือกหุ้นจากผลทำนายด้านบน
- สร้างอีกฟังก์ชันมาทำนายข้อมูลทดสอบ Testing Data ดูเพื่อวัดผลว่าโมเดลเราใช้งานได้ดีจริงไหม
- เรามาทดสอบกับข้อมูลที่โมเดลไม่เคยรู้จักเลย (ไม่ใช่ Testing Data)

Project 1: พัฒนาประสิทธิภาพโมเดล
- สร้าง Basedline เพื่อเอามาเป็นตัวเปรียบเทียบประสิทธิภาพของโมเดล
- ลองใช้ Regularization หลายๆ แบบมาดูว่าช่วยให้ผลดีขึ้นจริงหรือไม่
- ทดสอบให้เรามั่นใจว่าผลลัพธ์ไม่ได้โชคช่วย!
- เราลองเอาโมเดลใหม่ไปใช้งานจริงดู
- เรามาเทสแบบ Simulation รายปีกันดีกว่า
- แล้วมันดีจริงหรือ?

ผลงานเว่อวังด้านบนมันฟลุ๊คหรือไม่ เราจะทดสอบมันอย่างไร
Decision Tree
- มารู้จักกับโมเดล ต้นไม้ตัดสินใจ หรือ Decision Tree กันว่า ทำงานอย่างไรอย่างละเอียดในแยกประเภทข้อมูล
- วิเคราะห์ฟีจอร์ทีละตัว เพื่อสร้างโมเดลต้นไม้ด้วยมือเราเอง โดยไม่ใช้ Function สำเร็จรูปช่วยเพื่อความเข้าใจอย่าลึกซึ้ง
- คำนวณค่า Gini impurity ของต้นไม้ step by step อย่างละเอียด
- วิเคราะห์โครงสร้างต้นไม้ที่ได้
- ทดลองด้วยข้อมูลโรคหัวใจ (เอามาเพื่อให้เห็นภาพง่ายกว่าข้อมูลหุ้น)



เราจะตีความกราฟด้านบนอย่างไร?

ดูผลกระทบของการเปลี่ยนแปลง parameter ตอนสร้าง Tree
Pruning Tree
- ต้นไม้ที่เราสร้างมามันดีที่สุดแล้ว แน่ใจรึเปล่าว่ามันจะไม่ Overfit
- ถ้าเกิด Overfit ขึ้น เราจะแก้ปัญหาได้อย่างไร
- เรียนรู้การปรับแต่งโครงสร้างของต้นไม้ แบบไม่ใช้การคาดเดาด้วยการใช้ Cost Complexity Pruning
- ปรับค่า Alpha อย่างไรถึงจะดี เพื่อต้นไม้ที่มีประสิทธิภาพสูงสุด
- ลองโมเดลที่ปรับแต่งแล้วกับข้อมูลเดิมดูสิ ว่ามันช่วยให้ผลดีขึ้นหรือไม่


Regression Tree
- ใช้ต้นไม้ตัดสินใจมาทำนายค่า Continuous อย่าง Return หุ้นกันบ้าง เราจะสอนอย่างละเอียดเช่นเคย โดยใช้แค่กระดาษกับปากกาก็พอ มันจะปรับโครงสร้างอย่างไร มาเรียนรู้อย่างไร
- ลองทดลองทำนายราคาบ้านกันต่อ

Project 2: ใช้ต้นไม้ลงทุน!
- สร้างโมเดลทำนายหุ้นด้วย Decision Tree
- เขียนฟังก์ชั่นอธิบายต้นไม้ จากนั้นเลือกหุ้นด้วยต้นไม้อย่างมีหลักการ
- พยายามปรับแต่งต้นไม้ด้วยวิธีการ Manual search, Grid search
- ลองใช้ Cost Complexity Pruning มาปรับแต่งต้นไม้ จากนั้นวัดผล พร้อมวัดผลให้เชื่อได้ว่าไม่ได้ฟลุ๊ค!
- วิเคราะห์การแจงแจงของผลลัพธ์
- ทดสอบโมเดลกับข้อมูลที่ไม่เคยเห็น
- ปัญหาของการใช้ต้นไม้มาทำนายราคาหุ้น ที่อาจจะมีปัญหากับอัลกอริทึ่มในการเลือกหุ้นของเรา เราจะแก้มันอย่างไร มีหลายทาง!!!
- เอาต้นไม้ที่แก้อัลกอรทึ่มในการเลือกหุ้นมาทดสอบอีกครั้ง


กราฟการทำนายอย่างสมบูรณ์แบบอย่างด้านบนมันเข้าท่าหรือไม่? (สปอย ไม่!!!)
Random Forest
- ถ้าต้นไม้ 1 ต้นมันเก่งนัก ทำไมเราไม่ใช้หลายๆต้น!!! ข้อดีข้อเสียของ Decision Tree และ Random Forest
- เรียนรู้โมเดล Random Forest กันอย่างละเอียดเช่นเคย ว่ามันทำงานอย่างไร ต้นไม้แต่ละต้นช่วยกันยังไง step by step เช่นเดิม
- Bootstrap คืออะไร มีประโยชน์อย่างไร
- ทำนายราคาบ้านกันต่อ ว่าช่วยให้ผลดีขึ้นหรือไม่


Project 3: ใช้กองทัพต้นไม้ Random Forest มาเลือกเลือกหุ้นกัน
- ส่วนนี้เราจะทดลองใช้ Random Forest มาเลือกหุ้นกันเช่นเดิม
- เราจะจัดลำดับความสำคัญของ Feature ได้อย่างไร

- วัดผลของโครงสร้างหุ้นด้วย Result Distribution

- ปัญหาของการทดสอบที่มี Data Leak คืออะไร แก้ยังไง
- ทดสอบโมเดลหลังแก้ปัญหาเลือกหุ้น ทำ Simulation เพื่อเปรียบเทียบกับโปรเจ็คอื่นๆ

กราฟแบบนี้ ต่างจากกราฟ Pefect Fit ด้านบนอย่างไร จริงๆแล้วมันแทบจะเป็น Nature ของ Random Forest เลยที่จะหลีกหนีการ Overfit ให้เรา

นี่ก็เป็นเนื้อหาบางส่วนจากคอร์ส “AI for Investment: from AI to value investing” คิดว่าน่าจะเป็นประโยชน์แก่ผู้ที่กำลังตัดสินใจลงทะเบียนเรียนนะครับ ถ้าตัดสินใจว่าคอร์สนี้ใช่ พร้อมร่วมเดินทางไปกับเราแล้วก็ พบกันในคอร์สครับ Enjoy Leaning and Investing!!
