Uplift Model คืออะไร !! ทำไม Data Scientist ต้องรู้

จะรู้ได้อย่างไรว่า คนนี้ซื้อ คนนี้ไม่ซื้อ คนนี้ไม่สนใจ !

ต้อนรับ 9.9 ด้วยเรื่อง Uplift Model กัน 🎉
*** คำเตือนยาวมาก แชร์ไปก่อนค่อยอ่าน ***



จะรู้ได้อย่างไรว่าเราควรส่งโฆษณาให้ใครดีน้าา
เค้าถึงจะซื้อสินค้าเรา !!! 🤷‍♀️🤷🤷‍♂️


ฝั่งนักการตลาด 💁‍♀️

โดยปกตินักการตลาด หรือคนที่ทำการโฆษณาต่างๆก็จะทำ Campaign แล้วก็ส่งโฆษณานั้นให้กับทุกๆคนไปเลย ในกรณีนี้อาจจะเกิดขึ้นกับบริษัทที่พนักงานยังน้อย หรือไม่มีเวลาพอ หรือขาดทักษะในการที่จะมองหาว่าจริงๆแล้ว ผลิตภัณฑ์หรือสินค้าเรามันเหมาะกับแค่คนบางกลุ่มเท่านั้น บางกลุ่มไม่ต้องโฆษณาไปให้กับพวกเค้าก็ได้ เพราะในการโฆษณา มันมีเรื่องของค่าใช้จ่าย
.
ยิ่งเป็น Channel Offline แล้วใหญ่เลย เพราะเราเลือกกลุ่มลูกค้าไม่ได้ละเอียดมากนัก !!! เช่นถ้าเราอยากโฆษณาไปยัง คนที่อายุ 15-35 เฉพาะผู้ชาย ที่ทำงานในอุตสาหรกรรมการแพทย์ คำถามคือ เราจะเลือกให้โฆษณาเราส่งไปยังกลุ่มคนเหล่านี้อย่างเดียวเลยได้ไหม ก็ไม่ได้จริงไหม !! ค่อตยากอะบอกเลย
.
ซึ่งปัญหาเหล่านี้จะถูกเยียวยาได้โดยการโฆษณาผ่าน Channel Online ซึ่งจะพูดในลำดับถัดไปครับ


ฝั่งนักการตลาด 💁‍♀️


ในการยิง Campaign ไปยังลูกค้า นั้นสำหรับ บริษัทที่มีเวลา หรือทักษะในการทำ Segmentation ลูกค้าก็จะช่วยให้เราสามารถแบ่งกลุ่มลูกค้าได้อย่างง่ายๆ เช่น ลูกค้ากลุ่มนี้ ซื้อของกับเราทุกอาทิตย์เลยนะ ลูกค้าอีกกลุ่มซื้อไม่บ่อยแต่รายได้ต่อเดือนจากกลุ่มนี้ไม่ต่ำกว่า 1 หมื่นบาทเลยนะ !!
.
และเมื่อเราทำการ Segmentation เราก็สามารถเลือกส่งโฆษณาที่เหมาะสมไปยังลูกค้าของเราได้อย่างมีประสิทธิภาพมากขึ้น นั่นเองครับ
.
แต่คำถามที่ตามมาต่อคือ 🤔
เราเลือกโฆษณาให้เห็นแบบรายคนเลยได้ไหม !?
Personalized Campaign !😬🤭


ยุคของ AI 🚀

ยุคนี้อยู่กับเรามาตั้งนานแสนนานแล้ว
เพราะ Algorithm เริ่มต้นของ AI ก็มาจากการสร้างเงื่อนไขอย่างง่ายๆ ไปจนถึง เงื่อนไขที่มีความซับซ้อนมากขึ้นๆ ลองจินตนาการว่าเราต้องเขียนเงื่อนไขซัก 10 ล้านกรณี เราคงคางเหลืองกันไปก่อนจะสร้าง AI ที่ต้องการได้สำเร็จ
.
และเมื่อมันมากขึ้นจนถึงระดับที่เราไม่สามารถมาสร้างเงื่อนไขต่อได้ครบทุกอย่าง
.
ยุคของ Machine Learning และ Deep Learning ก็เริ่มเข้ามามีบทบาท และมามีส่วนช่วยในการสร้างเงื่อนไขหลายๆๆๆๆๆชั้น หลายๆกรณี ผ่านการเรียนรู้พฤติกรรมของข้อมูลในอดีต เพื่อทำนายผลที่น่าจะเกิดขึ้นในอนาคต และด้วย ML + DL นี่แหละครับที่มาช่วยในเรื่องของการโฆษณา หรือเลือกออก Campaign เพื่อสร้าง Personalized Campaign !! นั่นเอง


ฝั่งนักการตลาด 💁‍♀️


ณ ปัจจุบัน บริษัทที่มีนักวิทยาศาสตร์ข้อมูล หรือ Data Scientist ต่างก็ทำ Model โดยใช้ข้อมูลจากอดีตที่เก็บไว้มาเนิ่นนาน เพื่อทำนายว่า ลูกค้าของเราจะซื้อ Products หรือไม่ หรือใครที่มีแนวโน้มจะตอบสนองต่อ Campaign ของโฆษณา


Model อย่างง่ายๆ 🤖🐣


ก็จะเริ่มจากการทำนายผลว่า นายประหยัด จันอังคาร มีแนวโน้มจะซื้อสินค้า เรือดำน้ำ หรือไม่ !??
.
ซึ่ง Model เราอาจจะทำนายเพียงแค่ ซื้อ หรือไม่ซื้อแค่นั้น โดยบอกเป็น Propensity Score
หรือ ในโจทย์ Machine Learning คือโจทย์ปัญหา Classification Model
.
จากจุดนี้เองที่ทำให้นักการตลาดเวลาจะส่ง Campaign ไปยังลูกค้า ก็จะทำงานร่วมกันกับ Data Scientist
เพื่อให้ช่วยทำ Model บอกหน่อยว่า ลูกค้าคนไหนมีแนวโน้มจะซื้อสินค้าเรานะ !!!
หรือที่ทาง Data Scientist เรียกว่า ทำการส่ง Leads นะ !!


สถานการณ์ตัวอย่าง 💁‍♀️🍺
ณ บริษัทปุริเย่ จำกัด


ต้องการทำ Campaign เพื่อให้เกิด Conversion Rate เพิ่ม
จากเดิมที่ ปกติ Conversion Rate ของสินค้าเรือดำน้ำอยู่ที่ 2%
.
Data Scientist ก็ทำ Model ขึ้นมาและส่ง Leads ให้กับทาง Marketing Team ไปส่ง Campaign
ปรากฎว่า Conversion Rate เพิ่มขึ้นจากเดิม 2% เป็น 10% เท่ากับว่า มี Lift เพิ่มขึ้นถึง 5 เท่าด้วยกัน OMG !!!
(ใครมันซื้อไปวะ !!)
.
ถ้าสมมติว่า 2% เราทำรายได้จากการขายเรือดำน้ำไปถึง 200,000 ล้านบาท
และเมื่อเราทำ Campaign 9.9 โปรโมชั่นเรือดำน้ำ


“ของมันต้องมี เพื่อความน่าเกรงขราม เพียง 22,000 ล้านบาท”


ปรากฎว่า Model เราให้ผล Lift ถึง 5 เท่าเมื่อเทียบจากการไม่ทำ Model
โหดมวากๆเลยใช่ไหมล่ะครับ พออ่านมาถึงจุดนี้



แต่ !!!! 🙅‍♀️
Model มันก็ไม่ผิดค่ะ แต่คุณทำได้ดีกว่านี้อีก !!
(ทำเสียงปันๆ = _= )

GrabFood อิสรภาพทางการกิน
GrabFood อิสรภาพทางการกิน https://www.youtube.com/watch?v=1eb5A8NVy_A


.
อ้าวทำไมล่ะ !? ยังดีไม่พอหรอ !? หรือผิดตรงไหน
คำถามที่มีตอนนี้คือ !????

.
❓ เราทราบได้อย่างไรว่าคนที่ Convert มาจากการที่เค้าได้รับ Campaign จริงๆนะ !
ไม่ใช่เพราะเค้าอยากจะซื้ออยู่แล้ว

❓ Propensity model ที่เราทำมันไปกวาดมาทุกๆคนเลยที่มี Score การซื้อสูงๆๆ
แล้วเราก็ถึงส่งให้ Marketing ถูกไหม !?

❓ เราไม่ได้แยกลูกค้าที่เค้าอยากจะซื้ออยู่แล้วออกมานี่หน่า !?
ดังนั้นการที่เค้าซื้อ มันไม่ได้บอกว่าเค้าจำเป็นต้องได้รับ Campaign ก็ได้ ยังไงตูก็จะซื้ออยู่ดี

❓ เหตุการณ์ Lift 5 เท่า เหมือนคำพูดนึงที่พูดกันว่า Cherry Picking !!
.


เอ้า แล้วทำไงดีล่ะ ????
เอาล่ะ ยินดีต้อนรับสู่ต้อนรับทุกท่านสู่โลกของ
Casual Inference กับ Machine learning 🎉
.
ทำความรู้จักกับ Uplift Model กัน
(โอ้ยกว่าจะเข้าเรื่อง !!! )


.
โอเคร ง่ายๆเลยโจทย์คือเราต้องการจะทำ Model เพื่อบอกว่าใครน่าจะซื้อ เรือดำน้ำ เราในอนาคต !?
.
โดยปกติ Uplift Model จะช่วยเราตอบคำถามดังต่อไปนี้

✅ โฆษณษของเราส่งผลให้ลุกค้าซื้อหรือไม่ !?
✅ เราเสียเงินเปล่าในการชักชวนคนที่จะซื้อสินค้าเราอยู่แล้วหรือไม่ !
✅ โฆษณาเราส่งผลลบกับคนที่เห็นไหมเอ่ย บางคนเห็นโฆษณาเลยไม่ซื้อแม่งเลย ทั้งๆที่เค้าจะซื้ออยู่แล้ว !!!!!
.
โดยปกติ Classic Machine Learning Mdoel
เราใช้ Features (X) เพื่อทำนาย (Y)
แต่กับ Uplift Model
ช่วยเราดูผลกระทบของ Treatment ที่มีต่อ Y โดยที่ Y ใช้ X เพื่อทำนาย
.


มาทำความรู้จัก Uplift Model อย่างง่ายกัน 🤖
(Siegel 2011)


โดย Basic เลยเราจะทำการแบ่งลูกค้าเดิมของเราเป็น 4 กลุ่มด้วยกัน


🟠 กลุ่ม Sure Thing
กลุ่มนี้ไม่ต้องเสนอ Promotion เค้าก็ตั้งใจจะซื้ออยู่แล้ว !!!
เช่นลุกค้าบางรายเห็น เรือดำน้ำแล้วอยากซื้อ อยากได้จนตัวสั่น
ไม่รู้อยากได้ไปทำไม แต่เพื่อความน่าเกรงขาม และของมันต้องมี !!


🟢 กลุ่ม Persuables
กลุ่มนี้จะซื้อก็ต่อเมื่อได้รับ Campaign
ถ้าไม่ลดราคา ตูไม่ซื้อ ไม่มีอะไรมาชักชวน ตูไม่สน
ไม่โทรมา ตูก็ไม่โทรหา !!


🟠 กลุ่ม Lost Cost
กลุ่มนี้ไม่สนใจสินค้าเราตั้งแต่ต้นอยู่แล้ว !
ดังนั้นส่ง Campaign ไปก็เสียเปล่าๆ แบบว่าเห็นแล้วก็ อื้ม!!
แล้วก็ปล่อยโฆษณาผ่านไปเหมือนไม่มีอะไรเกิดขึ้น


🔴 กลุ่ม Sleeping Dog
กลุ่มนี้จะให้ผลลบทันทีเมื่อได้รับ Campaign ส่งมาหาตูหรอ เดี๋ยวเจอดีๆ
นอกจากกลุ่มนี้ไม่ซื้อแล้วยังจะให้ผลลบกับเราอีก
(เมิงอย่ามายุ่งกับกรู๋ !!!!)


ดังนั้นในการทำ Propensity Model
เราเพียงแค่ยิง Campaign ไปยังกลุ่ม Persuables ง่ายๆแค่นี้เอง !!
กลุ่มอื่นยิงไปก็ไม่มีประโยชน์เลย
และควรเลี่ยงผลที่ไม่ดีจากการยิงไปหากลุ่มคนจำพวก 🔴 Sleeping Dog
.


อ้าาาาาาาา
จาก Propensity Model ไปสู่ Uplift Model เย้

.


.
ข้อควรระวังจาก Uplift Model !! 🗡
❗ ข้อมูลที่เราใช้แบ่งกลุ่มลูกค้า มันไม่ได้บอกได้ชัดเจนนัก
ต้องอาศัยระยะเวลาในการเก็บข้อมูลเพื่อให้เกิดความแน่นอน
ว่าลูกค้าเราอยู่กลุ่มไหน


อ่าน Research เพิ่มเติมด้าน Uplift ได้ที่

✅ Meta-learners for Estimating Heterogeneous Treatment Effects using Machine Learning
https://arxiv.org/abs/1706.03461

✅ How incremental response modeling can help you reach the right target group more precisely
https://blogs.sas.com/content/subconsciousmusings/2013/07/12/how-incremental-response-modeling-can-help-you-reach-the-right-target-group-more-precisely/

✅ Targeting Uplift
https://www.springer.com/gp/book/9783030226244

✅ True response modeling
http://www.bigdatanalysis.com/response-modeling/


แน่นอนถ้าเพื่อนๆอ่านมาถึงจุดนี้
แอดเชื่อว่าเพื่อนๆ อยู่ในกลุ่ม ☺️❤️
🟠 กลุ่ม Sure Thing + 🟢 กลุ่ม Persuables


แอดเองก็ต้องปล่อย Promotion บ้าง อิอิ
กับ Workshop Road to Data Scientist and Data Analyst 🚀
สมัครได้แล้วตอนนี้ ที่
http://bit.ly/roadtodsda
🔥 เรามีส่วนลดให้ Early Bird เปิดตัวสูงถึง 40%
🔥 Early Bird ถึงวันที่ 15 กันยายน


ติดตาม Tip & Tricks ง่ายๆไปด้วยกันได้ที่ BigData RPG
ส่งต่อบทความดีดี และมีประโยชน์ให้เพื่อนได้ง่ายๆ
เพียงคนละ 1 Like | 1 Share | 1 Commentsขอบคุงมากเลยคร้าบ
❤️🙋‍♂️🙋‍♀️🍺🍣


Reference:
🔰 https://towardsdatascience.com/a-quick-uplift-modeling-introduction-6e14de32bfe0
🔰 https://www.predictiveanalyticsworld.com/machinelearningtimes/uplift-modeling-making-predictive-models-actionable/8578/
🔰 https://towardsdatascience.com/uplift-modeling-e38f96b1ef60
🔰 https://pbiecek.github.io/xai_stories/story-uplift-marketing1.html
🔰 https://www.steveklosterman.com/uplift-modeling/

#BigDataRPG #MachineLearning #Marketing

5-ways-boost-model-performance

5 วิธีมาลองเพิ่ม Performance ให้ Model กัน 😁

🚀 Accuracy พุ่งปรี๊ดดดดด ปร๋าดดดดดด 😋


✅ 1. Handling Missing Values

ลองจัดการกับ Missing Value ดูสิ
มีตั้งหลายวิธีช่วยเราจัดการกับปัญหาเหล่านี้นะ
เพราะเจ้าข้อมูลที่หายไปนี่แหละ เราไม่รู้ค่าที่แท้จริง
ถ้าจัดการรูปแบบต่างๆกันไป
ก็จะช่วยให้ Model เราเก่งขึ้นมาเลยล่ะ
วิธีการ Handling
🔹 ลองตัดแถวที่พบว่ามี Missing Value ทิ้งไปไปเลย
🔹 Impute หรือเติม Missing Value ผ่านตัวที่มีลักษณะข้อมูลคล้ายกัน ผ่าน KNN imputation
🔹 Impute หรือเติม Missing Value ผ่านการสร้าง Model ใหม่เพื่อมาเติมค่าว่างโดยเฉพาะไปเลย


✅ 2. Feature Engineering


สมมติเรามีข้อมูลอยู่เพียงไม่กี่ Features
Model คงเรียนรู้ได้ไม่เยอะมากนัก
เพราะข้อมูล หรือ Features เราไม่พอ
เราลองเพิ่มง่ายๆได้เช่น
🔹 การแปลง Datetime หรือ Timestamp เป็น ช่วงเช้า ช่วงกลางวัน หรือช่วงเย็น หรืออาจจะเป็น Workday, Workend ก็ยังได้
🔹 การปรับช่วงของ Numerical Data ให้กลายเป็นช่วงๆ หรือการทำ Discretization
🔹 การรวมกันของ Features 2 หรือ 3 Features เข้าด้วยกันผ่าน Function หนึ่ง เพื่อเกิดเป็นค่าให้ Column ใหม่


✅ 3. Feature Selection


Features น้อยไป Model ก็งอแงเรียนรู้แบบงูๆปลาๆ
Features เยอะไป Model ก็งอแงอีก เพราะเยอะไปสับสนไปหมด
การที่เราลด Features ลงบ้างเพื่อเน้นแต่ตัวที่สำคัญๆ ให้ Model ก็เป็นอีกทางเลือกที่ดีครับ
🔹 ลองใช้ Feature Importance จาก Model
🔹 ลองใช้ Dimensional Reduction เพื่อลด Features


✅ 4. Ensemble Learning Algorithms


เมื่อใช้ Model เดียวแล้วให้ผลไม่ดีเท่าที่ต้องการ
ทำไมไม่ลองใช้หลายๆ Model ช่วยกันไปเลยล่ะ
ง่ายๆแค่เนี้ย !!!!
และตัวที่เห็นภาพชัดสุดคงเป็น
การเปลี่ยนจาก Decision Tree เป็น Random Forest
ต้นเดียวเป็นหลายต้นไปเล้ยยยยย !!


✅ 5. Adjusting Hyper-parameters


Model ก็เหมือนกับเครื่องมือซักอย่างนี่แหละ
ในการจะดึงศักยภาพของแต่ละ Model
ให้ออกมาได้อย่างมีประสิทธิภาพนั้น
จริงๆแล้วเราก็เพียงต้องมานั่งปรับค่าบางค่าเพิ่มนิสหน่อยเอง
การใช้แต่ละ Model เพื่อรันกับ Data ที่แตกต่างไปนั้น
เราเพียงแค่ใช้ Hyper-parameters Tuning ให้เป็น
เช่นใน Decision Tree
เราต้องการกี่ใบ ?
ต้องการกี่ชั้น ?
ใช้เกณฑ์ใดในการแยก Class ถึงจะดี ?

❗ หมายเหตุ – ข้อแนะนำและควรระวังเพิ่มเติม ⚡

👉 ทั้ง 5 ข้อนี้เป็นเพียงส่วนหนึ่งที่ช่วยให้ Performance Model ดีขึ้น
👉 ยังมีอีกหลายวิธีในการ Boost Performance Model
👉 Accuracy เป็น Matrix ตัวนึงที่ไว้ใช้วัด Model ในโจทย์ปัญหา Classification
👉 โดยทั่วไปโจทย์ Regression จะใช้ RMSE หรือ Matrix ตัวอื่นๆแล้วแต่ความเหมาะสมของงานนั้นๆฮับ
👉 ในการทำ Model ควรระวังเรื่องของปัญหา Imbalanced Data ด้วย และจะอันตรายมากหากวัดผลโดยใช้ Accuracy กับ Data ที่ Imbalanced Data ฮับ


ติดตาม Tip & Tricks ง่ายๆไปด้วยกันได้ที่ BigData RPG
ส่งต่อบทความดีดี และมีประโยชน์ให้เพื่อนได้ง่ายๆ
เพียงคนละ 1 Like | 1 Share | 1 Comments
ขอบคุงมากเลยคร้าบ
❤️🙋‍♂️🙋‍♀️🍺🍣🍱🚀


Reference:

https://towardsdatascience.com/how-i-consistently-improve-my-machine-learning-models-from-80-to-over-90-accuracy-6097063e1c9a

=================================
เปิดแล้ว Road to Data Scientist and Data Analyst 🚀

Road to Data Scientist and Data Analyst


สอนทั้งฝั่ง Technical และ Business เย้
ได้ทั้ง Programming | Math | Machine Learning | Business
ครบครันพร้อม Boost ทักษะให้เพื่อนๆเห็นภาพชัดเจน
พร้อมทำ Projects, Research ในสายงาน Data Science
หรือนำทักษะไปประยุกต์ใช้ในสายงานที่ทำอยู่เดิมได้ทันทีเลย


📚 เรียนรวม 40++ ชั่วโมง 🚀
เฉลี่ยชั่วโมงละ 100 กว่าบาท คุ้มสุดๆ
ทั้งเนื้อหาเรียนสดด้วยกันตลอด 1 เดือน
และเนื้อหาเสริมปรับพื้นฐานให้เพื่อนๆ
สมัครได้แล้วตอนนี้

>> http://bit.ly/roadtodsda
🔥 เรามีส่วนลดให้ Early Bird เปิดตัวสูงถึง 40%
🔥 Early Bird ถึงวันที่ 15 กันยายน

🎥 เนื้อหาจัดเต็ม 🚀


✅ สัปดาห์ 1
🟣 พาไปเรียนรู้ Machine Learning และ Algorithm ในแบบต่างๆ
🟣 การเช็คคุณภาพข้อมูลรวมถึง การ Transform Data รูปแบบต่างๆ
🟣 พาไปเรียนรู้ Machine Learning และ Algorithm ในแบบต่างๆ
🟣 เรียนรู้ Customer Analytics ในมุมมองต่างๆ


✅ สัปดาห์ 2
🟣 การจัดการ Data ที่ไม่ปกติ หรือมีจำนวนน้อยมากๆ
🟣 การ Tuning Model ให้มีประสิทธิภาพดีขึ้น
🟣 การสร้าง Pipeline สำหรับการทำ Machine Leaning Model
🟣 การอธิบาย Model ในมุม Business
🟣 เรียนรู้ Marketing Analytics ในมุมมองต่างๆ


✅ สัปดาห์ 3
🟣 เรามาทำความเข้าใจ Deep Learning Model ในรูปแบบต่างๆ
🟣 Business model ของ Supply Chain
🟣 การวางแผนกลยุทธ์ ให้ Demand และ Supply
🟣 การทำ Demand Forecast


✅ สัปดาห์ 4
🟣 Projects ในการนำ Machine Learning และ Deep Learning
มาใช้ในการช่วยแก้ปัญหา Business รวมถึงการนำมาช่วยเพิ่ม Value ให้กับ Business
🟣 การนำเสนอข้อมูล และ Present เพื่อนำเสนอฝั่ง Business


นอกจากนี้ยังมี Video ปรับพื้นฐานให้เพื่อนๆด้วย
🐍 Python for Everyone
🔵 Basic Python Programming
🔵 NumPy for Linear Algebra
🔵 Pandas for Data Manipulation
🔵 Data Visualization with Seaborn


🐍 Math and Statistics for Machine Learning
🔵 Linear Algebra
🔵 Calculus
🔵 Probability

สมัครได้เลยตอนนี้
🔥 เรามีส่วนลดให้ Early Bird เปิดตัวสูงถึง 40%
🔥 Early Bird ถึงวันที่ 15 กันยายน
>> http://bit.ly/roadtodsda
.
แล้วเจอกันครับ ^^
แอดบอยด์ 🙋‍♂️
แอดเมย์ 🙋‍♀️

ใครไม่คัต BoydCut

ตัดประโยคภาษาไทยด้วย BoydCut
pip install BoydCut

เนื่องจากในตอนทำงาน แอดเองก็ทำด้าน NLP มา
และพบว่างาน Application ด้าน NLP หลายอย่าง
จำเป็นต้องใช้ Sentences เป็นพื้นฐานในการก่อสร้าง


ยกตัวอย่างเช่น

News Summarization ! 🌟
หรือ การสรุปข่าว หรือเรียกว่าการย่อข่าว !
คือเราก็ต้องทราบใช้มะ ว่าเนื้อหาข่าวที่ยาวๆๆเนี่ย
มันมีส่วนไหนที่สำคัญ
ส่วนไหนพูดซ้ำ
ส่วนไหนไม่สำคัญ
ดังนั้น การที่เราดูแค่ระดับ Word อาจจะไม่เพียงพอ
เพราะ Word ซ้ำกันเยอะ
หรือบาง Word มีคนละบทบาทกันเมื่ออยู่คนละประโยค


พอเห็นภาพขึ้นเนาะ ว่าทำไมตัดประโยคถึงสำคัญ 😉


ทีนี้มาดูกันว่าความยากในการตัดประโยคภาษาไทย
ถ้าเราเห็นบทความภาษาอังกฤษ
เราก็ทราบเลยเนาะว่าจุดไหนคือประโยค
เพราะเราตัดประโยคภาษาอังกฤษได้จาก
จุด Full Stop “.” ใช่ไหมล่ะ
แต่ แต่ แต่ !!!!!!!! 😫
ภาษาไทยมันไม่มีไงครับ

เลยจำเป็นต้องมี Model ตัวตัดประโยคมาช่วยนั่นเอง


แอดจึงได้ลองทำตัวตัดประโยคขึ้นมา
เพื่อเป็นประโยชน์ทั้ง การทำงาน
ทั้งงาน Thesis ที่จะทำต่อจากนี้
และเพื่อ Contribute ให้เพื่อนๆสามารถนำไปใช้งานต่อได้ ❤

หลังลองทำอยู่หลายแบบ (จริงๆก็ยังปรับปรุงได้อีกเยอะเลยนะ)
เมื่อวันที่ 8 สิงหาคมแอดได้ Paper Accepted
ที่ the 2020 1st International Conference on Big Data Analytics and Practices (IBDAP)
แอดจึง ได้ทำ Liblary Python ขึ้นมา
ซึ่งอาจจะใช้ยากนิสนุง (ไว้แอดจะมาปรับปรุงให้ใช้งานง่ายขึ้นนะ)


การใช้งาน BoydCut 😊
เพื่อนๆสามารถใช้งานได้ผ่าน pip
pip install BoydCut
หรือลองใช้งานผ่าน Tutorial ที่บอยด์ทำไว้ใน Colab ได้เลยนะฮับ
Link Colab:
https://colab.research.google.com/drive/1uMssc6RQQTeDhsja_aOWwLRl9Bjk31Qc?usp=sharing

Link GitHub: https://github.com/BigDataRPG/BoydCut

Version แรกอาจจะยังใช้งานยากหน่อยนะครับ
แต่มี Colab สามารถทำตามได้เลย
ไว้จะกลับมาอัพเดทให้ Performance
และการใช้งานง่ายขึ้นนะคร้าบเพื่อนๆ

ขอบคุงมากคร้าบบบบ ^^

โควิด เป็นแล้วหาย ! Overfit เป็นแล้วไม่หาย !!!!

โควิด เป็นแล้วหาย !Overfit เป็นแล้วไม่หาย !!!!

ใน Machine Learning นั้นจะมีสิ่งหนึ่ง
ที่เรานั้นไม่อยากจะให้เกิดเลยนั่นก็คือ !!

Overfitting

หรือการที่ Model จดจำสิ่งที่เรียนดีเกิน
ทำให้ Model เรานั้นไม่สามารถตอบคำถามได้ดี..

โดยปกติแล้วในการ Train Model
เราจะแบ่งข้อมูลออกเป็น 2 ส่วน หรืออาจจะ 3 ส่วน.

1. Training data หรือ data ที่เราใช้ในการ สอน Model และแน่นอนว่า Model เรานั้น เห็น Data ทั้งหมด !.

2. Validation data หรือ data ที่เราเก็บไว้ไม่ให้ Model เราเห็น เปรียบเสมือนข้อสอบไว้ทดสอบ Model เราว่าจริงๆแล้ว Model เราจะเก่งจริงอย่างที่หวังไหม.

3. Testing data หรือ data ที่เรากันไว้ทดสอบ Model อีกที เปรียบเสมือน Data ที่เราไม่เคยเจอที่ไหนมาก่อนเลย เหมือนเก็บไว้เสมือนว่าเป็น Data ที่เราจะเจอจริงๆหากเรานำ Model ไปใช้งานในชีวิตจริงๆนะ !..

ทีนี้ Model ทำไมเกิด Overfit !!

เราคำนวณความผิดพลาดของ Model ผ่านค่า Loss
ยิ่งเรา Train Model เราหลาย Epochs หรือหลายรอบ
Model เราก็ยิ่งต้องตอบคำถามได้ถูกต้องมากขึ้น
และเมื่อ Model เราตอบคำถามถูกต้องมากขึ้นมั
นก็ทำให้ค่า Loss ลดลง ถูกไหมครับ !..

คราวนี้ ลองมองดูนะครับว่าถ้าหากเรา
สอน สอน สอน Model หลายๆรอบ
เหมือนกับเราสอน เด็กให้จำในสิ่งที่เราต้องการให้จำ

“ข้อนี้ต้องตอบแบบนี้นะ”
“จำแบบนี้เท่านั้นนะ !”…

Model หรือเด็กๆที่เราสอนก็จะจำแต่คำตอบเดิม
โดยที่พวกเขาไม่มีความคิดคำตอบอื่นเลย
มั่นใจเกินร้อยแบบสุดๆ ว่าชั้นจะตอบแบบนี้ถูกแน่ๆ..

โอเคร !

พอถึงจุดนี้เราอาจจะมองว่า เห้ย !
Model เราตอบแม่นก็ดีสิ
มันก็ต้องทำนายแม่น มันต้องเก่งสิ

คือ …… !

จินตนาการว่าถ้า อจ ออกข้อสอบแบบใหม่เหมือน
Model เจอ Data ที่ไม่เคยเห็น
เช่น Validation หรือ Testing Data
จินตนาการ สีหน้านักเรียนในห้องเรียนออกใช่ไหมครับ

ใช่ครับ ! มันตอบมั่ว

และ Performance ก็โคตรกากเลย
และเมื่อเรามาดู Loss ของ Test Data
ก็พบว่า !!
เมื่อเรา Train Model ถึงจุดๆหนึ่ง
Loss ของ Test จึงเพิ่มขึ้น อย่างรวดเร็ว ..

คำถามต่อมา

เรามีวิธีป้องกันไหม ไม่ให้ Model เกิด Overfit
วิธีง่ายสุดคงเป็น อย่า Train มากเกินไป
ถูกแล้วครับ ฟังไม่ผิดหร่อก
แต่เรา Train ไปจนถึงจุดที่ เส้นของ Test เริ่มมีแนวโน้มเพิ่มขึ้น
เราก็เลือก Epochs นั้นมาใช้ต่อนั่นเอง..

Model ก็เหมือนกับเด็กที่เราสอนนั่นแหละ จริงๆนะเออ
หากเราสอนเค้าอย่างไร เค้าก็จะจำที่เราสอน
ดังนั้นความ Overfit เปรียบเสมือนสอนจำ
มากจนเกินไปจนไม่สามารถตอบคำถามแนวอื่นๆได้เลย…

และแน่นอนว่า Model หรือ เด็กที่ Overfit ไปแล้ว
แก้ยากครัช เหมือนคนเราเชื่ออะไรไปแล้วมากๆ
จำว่าสิ่งนี้ถูกๆๆๆๆ เชื่อสิ่งนี้มานับหลายๆปี
ไม่ว่าเจอสถานการณ์อะไรก็จำเอาสิ่งที่คิดว่าถูกมาตอบตลอด
นั่นแหละครับ
Overfit เป็นแล้วไม่หาย !..

Train ใหม่แมร่งงงง !!!
จบข่าว

ปูลู

ใน Model ที่มีความ Complexity สูงระดับหนึ่ง
สามารถเกิดปรากฏการณ์การลดลงครั้งที่ 2 Deep Double Descent
หรือยิ่ง Train ค่า Loss ยิ่งลดนะเอออ ทั้ง Train และ Test Data เลย
อ่านเพิ่มเติมได้ที่ Ref ด้านล่างเลย


Ref: อ่านเพิ่มเติม

วิธีป้องกัน Overfit ใน MachineLearning:
https://elitedatascience.com/overfitting-in-machine-learning?fbclid=IwAR03C-rtoO6A8Pe523SBD0Cs9xil23u3IISWiJvpa6z2EfFZk0M38cc8e78

ปรากฏการณ์การลดลงครั้งที่ 2 Deep Double Descent:
https://openai.com/blog/deep-double-descent/?fbclid=IwAR0oStTAQtHLZ3Xxi-KYmoDBHjofDhAq8pkF8S19se01RF9KYa55yOwoGrQ


#BigDataRPG #Overfit #MachineLearning