ไปต่อ…หรือพอแค่นี้ ให้ Machine Learning ทำนายกัน

DSE4 Group5
botnoi-classroom
Published in
6 min readSep 5, 2021
Figure: ซีรี่ย์ Nevertheless จาก JTBC

ไปดูผีเสื้อที่ห้องฉันไหม

หลายๆคนอาจะเคยได้ยินคำพูดนี้ ซึ่งมาจากซีรีย์ Nevertheless ที่ตัวเรื่องจะเล่าถึงความสัมพันธ์ที่คลุมเครือของยูนาบี และแพคแจออน

แล้วคุณเคยตกอยู่ในสถานะคนคุย หรือความสัมพันธ์ไม่ชัดเจนเหมือนยูนาบีไหมคะ ?

ทุกคนอาจจะเคยเห็นในกระทู้พันทิปที่มีคนชอบตั้งกระทู้ปรึกษาความสัมพันธ์นี้ ว่าเค้าคิดอย่างไรกับเรา เค้าชอบเราไหม เรารู้สึกมากไปหรือเปล่า หรือเราอาจจะเคยดูและได้ฟังไม่ว่าจะเป็นรายการพุทธทอล์คพุทธโทร หรือ Club Friday ที่คนทางบ้านจะโทรมาปรึกษาพี่อ้อย, พี่ฉอด, ต้นหอม ในทำนอง “เขาหรือเราที่ไม่ชัดเจน”, “อยากมีเราต่อไปแต่ไม่ใช่สถานะแฟน” และ “ขอ How to จีบผู้ชาย” เชื่อว่าหลายๆ คน อาจจะประสบกับปัญหาเหล่านี้มาบ้าง

Figure: กระทู้พันทิป และรายการปรึกษาเรื่องความรัก

เคยไหมที่คุณสับสนในความสัมพันธ์จนหาที่พึ่งทางใจ จนต้องเข้าไปดูดวง หรือดูทำนายไพ่ยิบซีใน Youtube แต่ แต่ แต่เรามีทางเลือกใหม่ที่จะมาช่วยให้ทุกคนตัดสินใจว่าจะไปต่อ หรือพอแค่นี้ ผ่านตัว Machine Learning (ML) ที่จะมาทำนายความสัมพันธ์ที่คลุมเครืออยู่ในอีกรูปแบบหนึ่ง

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

ควรไปต่อ… หรือพอแค่นี้

แอ๊ะ แอ๊ะ อยากรู้รึเปล่าว่า Machine Learning ของเรา ทำกันมาอย่างไร จะมีความแม่นยำเหมือนดูหมอหรือเปล่านะ มองให้เห็นภาพง่ายๆ คือหมอดูใช้ไพ่ แต่เราใช้ Data จ้าา

มารู้จัก Machine Learning กันก่อน

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

ยิ่งมีชุดข้อมูลตัวอย่างมากเท่าไหร่ ตัวแบบจำลองก็จะยิ่งตอบผลลัพธ์ได้แม่นยำมากขึ้นเรื่อยๆ

วิธีสร้าง Machine Learning จะมีทั้งหมด 5 ขั้นตอน ดังภาพ

Figure: Predictive Model Pipeline

Collect Data

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

ดูจากข้อมูลที่ได้มา เหมือนทุกคนจะอินกับเรื่องนี้กันมากกกกกก แค่ 1–2 วัน ก็ได้ข้อมูลมากกว่าที่คิด ต้องขอบคุณทุกคน ที่ช่วยตอบแบบสอบถามนี้ และอยากจะบอกว่า ทุกๆ คนได้เป็นส่วนหนึ่งใน Project นี้ไปพร้อมกับเราแล้ว

ลิงค์แบบสอบถาม : https://bit.ly/3n11vA8

ชุดข้อมูลที่ได้จากแบบสอบถาม: https://bit.ly/3BK1tB0

Figure: Feature ที่ได้รวบรวมมา

เอ๊ะๆ !!แต่พอมาดูอีกที เรามาเพิ่มข้อมูลอีกนิดนึงดีกว่า ต่อยอดจากข้อมูลที่เก็บได้คือ ผลต่างของอายุของคนทั้งคู่ (Diff Age) โดยเอา “ อายุเรา-อายุอีกฝ่าย” เราก็คิดว่าข้อมูลนี้ถ้ามองในสถานการณ์จริง เราอาจจะเคยได้ยินเรื่องปัญหาต่างวัยกันมาบ้าง ซึ่งมันก็น่าสนใจดี

555 ข้อมูลที่เราเก็บมา รู้สึกจะเยอะมากๆ เลยใช่ไหมล่ะ !!

พอเก็บข้อมูลมาได้แล้ว เราก็ต้องเอาไปทำความสะอาดต่อ เรียกว่า Cleansing Data

Cleansing Data

ในการจะนำข้อมูลไปให้ Machine Learning ใช้งานได้นั้น ต้องมีการทำความสะอาดข้อมูลกันก่อน เพื่อไม่ให้มีอะไรแปลกๆ เข้าไปทำให้เกิดความผิดเพี้ยนได้

เราขอยกตัวอย่างข้อมูลน้องใหม่ นั่นคือ ผลต่างของอายุ (Diff Age)โดยเราจะกำจัดข้อมูลที่ต่างจากพวกมากๆ หรือเรียกภาษาเทคนิคว่า Outlier โดยดูจาก Percentile ของชุดข้อมูล จะเห็นว่ามีผลต่างของอายุประมาณ -40 ซึ่งค่าห่างไกลจากกลุ่มมาก ถ้าข้อมูลเกินช่วง Percentile ที่ 2.5 ตามที่เรากำหนด เราจะแทนค่าข้อมูลเหล่านั้นด้วยค่า Percentile ที่ 2.5 (ในที่นี้คือ -9)

และเราทำวิธีนี้กับข้อมูล จำนวนนาทีที่คุยกันในแต่ละวัน (Call) และ อายุของคนคุย (Age) ด้วยเหมือนกัน

Figure: Clean “Diff_Age”

ต่อมาเป็นข้อมูลของสถานที่เจอกันครั้งแรก (First meet) เนื่องจากข้อมูลที่ได้มีหลายที่มากๆ เราเลยต้องจัดการกับข้อมูลนิดหน่อย โดยเลือกให้ข้อมูลที่มีสัดส่วนน้อยไปอยู่ในกลุ่ม “Other” แทน

และเราทำวิธีนี้กับข้อมูลช่องทางการคุย (Way) ด้วยเหมือนกัน

Figure: Clean “First Meet Data”

โดยข้อมูลที่นำไปใช้งานได้จะออกมาประมาณในรูปข้างล่างนี้

Figure: After Cleaned Data

นี่คือข้อมูลที่คนทั่วไปอ่านเข้าใจ แต่ถ้าเราอยากให้คอมพิวเตอร์เข้าใจมันด้วยล่ะ เราต้องทำยังไง ทุกคนอาจจะเคยได้ยินมาบ้างใช่ไหมคะว่า

คอมพิวเตอร์เข้าใจแค่ 0 กับ 1

ถ้าเอาข้อมูลภาษามนุษย์ให้น้องอ่าน น้อง งง แน่นอน 55

ดังนั้นเราจะต้องแปลงข้อมูลเหล่านี้ให้เป็นภาษาคอมพิวเตอร์ โดยขั้นตอนนี้เรียกว่า Extract Feature

Extract Feature

ก่อนอื่น เราขอบอกให้ทุกคนทราบไว้ก่อนว่า ข้อมูลที่ได้มา เราจะเรียกเป็นภาษาเทคนิคว่า Feature

เนื่องจากคอมพิวเตอร์ไม่เข้าใจภาษามนุษย์ เราต้องมาแปลง feature ให้เป็นภาษาคอมพิวเตอร์ โดยหลักๆแล้วจะแบ่ง feature ได้เป็น 3 กลุ่ม

  1. ข้อมูลรูปแบบตัวเลข (Interval) เช่น จำนวนครั้งที่โทร จำนวนครั้งที่ออกเดท ข้อมูลนี้เราไม่จำเป็นต้องแปลงเพราะมันเป็นตัวเลขอยู่แล้ว
  2. ข้อมูลที่เป็นลำดับ (Ordinal) เช่น บ้านอยู่ใกล้ (0) ไกล (1) หรือไกลมาก (2) จะใช้ Label encoding
  3. ข้อมูลที่ไม่สามารถนำมาคำนวณได้ (Nominal) เราจะแปลงให้มาเป็นเลข 0 กับ 1 เท่านั้น เช่นสถานที่ที่เจอกันครั้งแรก เราจะแตก feature ออกเป็นหลายๆ ตัวตามสถานที่ที่เจอกัน หากเจอกันครั้งแรกที่ร้านอาหาร ดังนั้นแล้วจะมีค่าเท่ากับ 1 ใน feature ของสถานที่เจอครั้งแรกที่ร้านอาหาร ถ้าไม่ใช่จะเป็น 0 ไป หรือเราเรียกวิธีนี้ว่า One Hot encoding
Figure: After Extracted Feature

จากที่เมื่อซักครู่ คอมพิวเตอร์อ่านข้อมูลเราไม่เข้าใจ ตอนนี้เหมือนจะกลายเป็นเราอ่านข้อมูลไม่รู้เรื่องแทนซะแล้ว (แต่เรามีโพยจดไว้ เอามาเปิดเทียบกันได้)

พอคอมพิวเตอร์รู้จักกับ feature แล้ว เราก็ต้องมาคัดอีกว่า feature ตัวไหนควรไปต่อหรือจะพอแค่นี้ ด้วย ค่าสหสัมพันธ์ (Correlation) หรืออธิบายง่ายๆ ว่าให้เอา feature นั้นไปเปรียบเทียบกับผลลัพธ์ ว่ามีผลแค่ไหน (ติดหรือไม่ติด) และแสดงผลออกมาในรูปแบบ Heat map

Figure: Correlation Heatmap

ยิ่งเลขเข้าใกล้ 1 แสดงว่า feature นั้นส่งผลบวกมากต่อผลลัพธ์ (จีบติด)

ยิ่งเลขเข้าใกล้ -1 แสดงว่า feature นั้นยิ่งส่งผลลบมากต่อผลลัพธ์ (จีบไม่ติด)

จาก Heat map จะเห็นได้เลยว่า ความถี่ในการเดท, พบครอบคร้วฝ่ายตรงข้าม และความสนใจตรงกัน ส่งผลต่อการจีบติดเป็นอันดับต้นๆ เลย

แต่เนื่องจากเราไม่รู้เกณฑ์ตายตัว ว่าค่า Correlation ที่เท่าไหร่ที่เหมาะสม เราเลยมาลองใช้อีกวิธีคือ Kernel Density Estimate (KDE) เพื่อช่วยในการตัดสินใจ เพราะมันสามารถมองได้ด้วยตาเลย ตามรูปข้างล่างนี้

Figure: Kernel Density Estimate

จากกราฟข้างบนจะเราจะเห็นได้ว่า feature รู้จักกันได้อย่างไร (How did you meet) และ คนที่คุยอกหักมาก่อนรึเปล่า (Heart broken before) มีผลต่อการจีบติดน้อยมากๆ โดยดูได้จากการซ้อนทับกันของกราฟที่ใกล้เคียงกัน และเมื่อนำไปเทียบกับตัวเลขที่ได้จาก Correlation (-0.031 และ 0.066 ตามลำดับ) ซึ่งก็ค่อนข้างน้อยมาก ดังนั้นเราจึงขอตัด feature สองตัวนี้ออก ไม่นำเข้าไปให้ Machine Learning เรียนรู้

แต่เราก็ยังเห็นว่า ผลต่างของอายุ (Diff Age) กราฟก็ยังดูซ้อนทับกันพอสมควร ยังไงก็ตามเราจะสู้เพื่อน้องคนนี้จ้า เพราะเราคิดว่ายังไงอายุก็น่าจะมีผลต่อการจีบติดบ้าง

เราจึงจับน้องมาชำแหละ (Scatter plot) ดูการกระจายตัว โดยเทียบกับอายุของผู้ทำแบบสอบถาม (Age1) ว่าน้องมีผลต่อการจีบติดจริงหรือไม่จริง 555 เอาใจช่วยสุดฤทธิ์ (สีส้มจีบติด สีน้ำเงินจีบไม่ติด)

จากกราฟข้างล่างเราจะเห็นว่าผลต่างอายุก็พอมีผลน้าาา ยิ่งอายุต่างกันน้อยก็มีโอกาสจีบติดอยู่จ้าาา

Figure: Scatter plot feature Diff Age x Age1

สรุปว่า รู้จักกันได้อย่างไร และ คนที่คุยอยู่อกหักมาก่อนหรือไม่ ไม่ได้ไปต่อนะ ลาก่อนจ้าาา

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

เมื่อเราเลือก feature ที่สำคัญเรียบร้อย เราจะเอาข้อมูลมาแบ่งออกเป็น 2 ชุด (Split Data) ในสัดส่วน

Train (70%) เพื่อให้ model ใช้เรียนรู้

และ

Test (30%) เพื่อใช้ในการทดสอบความแม่นยำของ model

Figure: Splitting data

จากนั้นเราต้องทำการปรับ feature ให้อยู่ในช่วงเดียวกันทั้งหมดเป็นช่วง 0 ถึง 1 เพื่อที่เราจะได้นำ feature เหล่านี้อยู่ใน Scale เดียวกันทั้งหมด โดยการปรับนี้เราเรียกว่าการ Normalization โดยใช้หลักการ MinMaxScaler

Figure: Normalised Data

ส่วนขั้นตอนถัดมา คือการเลือก model ที่ใช้เราจะใช้ทำนาย โดยจะเปรียบเทียบทุก model ที่เหมาะสมกับ feature เรามากที่สุด

เราขอเลือก models ที่มีค่า Accuracy สูงๆ (ค่าความแม่นยำ) มา 2 วิธี คือ Logistic Regression และ Random Forest Classifier

Figure: Method Evaluation

Train Model

จากตารางข้างบน เราจะเห็นว่า Logistic Regression และ Random Forest Classifier เป็น 2 models ที่น่าสนใจ ดังนั้นเราจะจับทั้ง 2 models มาแข่งกันต่อว่าใครจะเป็นผู้ชนะใจ 555 (แม่นยำมากที่สุด) โดยเราเอาชุดข้อมูลที่เป็นชุด Train เข้า model ทั้งสอง เพื่อให้ model เรียนรู้ข้อมูล

Figure: Train Model

ตรงขั้นตอนการ Train Model นี้ เหมือนจะไม่ค่อยมีอะไรมากนัก เพราะเป็นแค่การนำข้อมูลไปเรียนรู้โดย model ที่มีคนเขียนไว้แล้ว แต่ถ้าใครได้ลองทำดู ด้วยข้อมูลที่มีความซับซ้อน หรือมีจำนวนมาก อาจจะพบว่ามันทำงานเป็นวันๆ เลยทีเดียว ถ้าเครื่องคอมพิวเตอร์ไม่แรงพอ

Test Model

เมื่อเราได้ model ที่ผ่านการ train มาเรียบร้อย เราก็ต้องทดสอบความแม่นยำด้วยชุดข้อมูลที่ได้แบ่งไว้ในตอนแรก โดยตัดสิน ทั้ง 2 models นี้ จากค่า Measure Performance นั่นคือ RMSE (Root Mean Square Error) ซึ่งเป็นค่าที่วัดความ error ที่คนส่วนใหญ่นิยมใช้กัน โดยที่ตัวเลขยิ่งใกล้ศูนย์เท่าไหร่ ถือว่ายิ่งดี และค่า Accuracy ยิ่งเยอะยิ่งแม่นยำ

Figure: Measure Performance 2 Models

สำหรับผลลัพธ์ที่ได้ออกมาจากนั้น

มองแว๊บเดียว เท่านั้นก็ดูออกผู้เข้ารอบก็คือ Random forest ด้วยความที่ค่า RSME เข้าใกล้ 0 มาก และมี % ความแม่นยำสูงกว่านิดนึง เราเลยเลือกวิธีนี้ไปทำนายผลลัพธ์ของเราต่อไปนั้นเอง

ต่อมาเป็นส่วนของ Pipeline

เมื่อเราทำนาย ผลที่ออกมาคือ จีบติด และ ไม่ติด

แต่ แต่ !! แค่นี้ยังไม่พอ ยังไม่สะใจ เลยมาคิดและพัฒนากันต่อว่าควรเพิ่ม options แนะนำเพิ่มเติม จาก feature ที่เราตัดออกไปเมื่อข้างต้น นั่นคือ ระยะเวลา

สำหรับคนจีบติด เราได้เจาะจงไปถึงเวลาว่าจะจีบติดภายในกี่เดือน

0–3 เดือน, 4–6 เดือน ,7–8 เดือน ,9–12 เดือน หรือ มากกว่า 1 ปี

เราจึงได้เอาเรื่องของระยะเวลาไปผสมกับผลลัพธ์ ให้เป็นมากกว่าแค่ ติด หรือ ไม่ติด

สำหรับคนที่จีบไม่ติด เราได้เตรียมคำแนะนำที่จะปรับปรุงความสัมพันธ์ยังไงเพื่อให้จีบติดไว้ด้วย (โดยลำดับ Feature จะเรียงตามความง่ายในการปรับ) คือ

  1. ความถี่การคุยต่อสัปดาห์
  2. เวลาที่คุยกันต่อวัน
  3. ระดับความสนใจ
  4. ไปเจอพ่อแม่อีกฝ่าย

แต่ถ้า Machine Learning ทำนายให้หมดทุกทางแล้วยังไม่ติด ก็สู้ๆ ด้วยน้า คิดว่าซะว่ามาดูหมา เอ้ย! มาดูหมอ เอ้ย! ถูกแล้ว 55

เราเลยมาปรับ feature และ run เริ่ม train model ใหม่อีกครั้ง แต่เราก็พบว่าค่า Accuracy มันต่ำลง จาก 72.13% ลดลงเป็น 50.27%

Figure: Measure performance

เลยคิดว่าอาจจะเกิดจากความเป็นไปได้ของผลลัพธ์มีมากขึ้น เช่นว่าถ้า model ทำนายว่าจีบติดภายใน 4–8 เดือน แต่ข้อมูลจากแบบสอบถามบอกว่าติดภายใน 9–12 เดือน (เพราะไม่กล้าไปขอเป็นแฟน) ก็ถือว่าผลลัพธ์ไม่ตรงกันแล้ว ซึ่งตรงนี้ น่าจะเป็นส่วนที่ไม่มีใครรู้ได้ว่าข้อมูลจากแบบสอบถามที่ได้รับมา มีความแม่นยำแค่ไหน

เราเลยคิดว่า ถ้าหากข้อมูลมีปริมาณมากกว่านี้ อาจจะทำให้ ค่า Accuracy สูงมากขึ้น หากในอนาคตสามารถปรับปรุงต่อยอดไปอีกและสามารถทำให้ค่า Accuracy สูงขึ้นไปได้ก็น่าจะเป็นที่น่าสนใจกับคนที่สับสนในความรักได้เยอะเลย

เดี๋ยวเราจะมาสาธิตผลลัพธ์กัน โดยเรากรอกข้อมูล และผลการทำนายขึ้นดังรูป

Prediction: คุณจีบไม่ติด แต่คุณยังมีทางเลือก ลองพยายามปรับให้ผลเป็นดังนี้แล้วจะจีบติดแต่อาจจะใช้เวลาเกิน 1 ปี

  1. ความถี่ในการคุยควรเป็น 7 วัน/สัปดาห์
  2. ควรโทรหากันวันละอย่างน้อย 60 นาที
  3. ความสนใจเรื่องต่างๆควรเป็นระดับ 3

Deploy Model

หลังจากที่เราทำการสอน Machine Learning ให้สามารถทำนายตามโจทย์ที่เราต้องการได้แล้ว เราก็อยากที่จะเผยแพร่ไปสู่สายตาชาวโลกให้ได้มาใช้งานกัน ดังนั้น เราจึงต้องทำการ Deploy model ของเราไปให้คนอื่นใช้งาน ซึ่งเราจะทำออกมาในรูปแบบของเว็บไซต์ (อ่านจบอย่าลืมไปลองใช้งานกันดูน้า) โดยขั้นตอนในการ Deploy มีดังนี้

  • อันดับแรกเราจะต้องทำการบันทึก model ของเราออกมาเป็นไฟล์ pickle เพื่อให้สามารถนำ model นี้ไปเรียกใช้งานได้โดยไม่ต้องทำการสอนใหม่นั่นเอง
Figure : Save Model
  • หลังจากที่เรามีไฟล์ของ Model เรียบร้อยแล้ว เราก็มาสร้าง pipeline เพื่อ run Model ของเรากันเลย โดยขั้นตอนก็จะคล้ายกับการทำ predictive model pipeline ที่กล่าวไปก่อนหน้า ซึ่งจะมีการรับข้อมูลผู้จะทำการทำนายผ่านทางหน้าเว็บไซต์
Figure: Process diagram
  • จากที่กล่าวไปว่าเราจะนำผลงานไปให้คนอื่นได้ใช้ผ่านทางเว็บไซต์ ซึ่งเราได้เลือก cloud application platform สำหรับการ deploy งานของเราคือ Heroku (https://dashboard.heroku.com) โดยเราจะต้องทำการสมัครสมาชิก และสร้าง project ภายใน heroku ให้เรียบร้อยก่อน
  • หลังจากที่เราเตรียมไฟล์ทุกอย่างพร้อมแล้ว การ deploy ก็ไม่ใช่เรื่องยากอีกต่อไป ทำตามขั้นตอนนี้ได้เลย
Figure: Deploy Heroku
  • หลังจากที่ deploy สำเร็จแล้ว ให้เราไปที่หน้า project ของเราใน heroku แล้วไปที่หัวข้อ setting เลื่อนมาดูที่หัวข้อ domains เราจะพบกับ link ของ API ของเราเรียบร้อยแล้ว สามารถนำ link ตัวนี้ไปให้ชาวโลกใช้งานได้เลย เย่ !!!
Figure: Deploy Heroku

นอกจากนี้พวกเรายังได้สร้างเว็บไซต์ที่สวยงาม เพื่อหลอกล่อ เอ๊ย! เชิญชวนทุกคนมาทำนายกัน

อยากเห็นหน้าตาเว็บไซต์ ของเราใช่ไหมล่ะ แท่แด๋ เป็นแบบนี้จ้าา เจ๋งไปเลยใช่ไหมม

กดที่นี่เลย >>https://bit.ly/3DPdSW0 <<

Conclusion

การทำนายจาก Machine Learning ในครั้งนี้ น่าจะช่วยให้ทุกคนตัดสินใจได้ในระดับหนึ่งว่าควร ไปต่อ..หรือพอแค่นี้ จะเห็นได้ว่า data มีประโยชน์ และสนุกมากๆ สามารถนำไปประยุกต์ใช้ได้กับทุกๆ เรื่องไม่เว้นแม้แต่ความรัก และความสัมพันธ์เลย

ยูนาบี..เธอรู้คำตอบแล้วใช่ไหม ว่าจะทำอย่างไรต่อไปกับความสัมพันธ์นี้ ❤ ”

สำหรับคนที่ได้ทำนายว่าจะจีบติด เราขอแสดงความยินดีล่วงหน้ากับความรักครั้งนี้ แต่ถ้าหากจีบไม่ติด เราอยากให้สู้ต่อไป ทาเคชิ นายทำได้

น้ำหยดโดนหินทุกวันหินยังกร่อน (ถ้าหินไม่รำคาญแล้วเดินหนีไปก่อนนะ)

ถ้าเหนื่อยแล้วก็พัก เขาไม่รักก็พอ ยังไงเอากำลังใจช่วยค่าา เดี๋ยวสักวันจะเจอคนที่ใช่

ปัดขวาวนไปค่า

และนี่คือกรุ๊ปเมมเบอร์ G.5 ของเราเอง ฝากเนื้อฝากตัวด้วยนะค้าา

สามารถศึกษาโค้ดเพิ่มเติมสำหรับโปรเจคนี้ คลิกเลย Project 2-G.5

ขอบคุณแหล่งที่มาภาพต่างๆ ไม่ว่าจะมาจาก pantip.com , รายการ Club Friday, รายการ พุทธทอล์ค พุทธโทร

--

--