รีวิวเทคนิคการเขียน Aggregate Functions + CASE ด้วย SQL

Hello Friends! บทความนี้มาเรียนวิธีการเขียน Aggregate Functions (count, sum) ร่วมกับ CASE statement เพื่อนับหรือหาผลรวมของคอลัมน์แบบมีเงื่อนไข เขียนง่าย และมีโอกาสได้ใช้บ่อยเลยในชีวิตจริง Aggregate Functions คือฟังก์ชันคำนวณค่าสถิติง่ายๆของ SQL ตัวหลักๆที่เราใช้บ่อยๆมี 5 ตัวคือ AVG, SUM, MIN, MAX และ COUNT CASE คือการเขียนเงื่อนไขเหมือนฟังก์ชัน IF/ IFS ของ Excel Tip – เราเขียน CASE เพื่อสร้างคอลัมน์ใหม่ เช่น segments ลูกค้าเป็น high, medium, low values และใช้ SUM หรือ COUNT เพื่อหาผลรวมหรือนับจำนวน segments ในคอลัมน์นั้น Example Table สำหรับตัวอย่างในบทความนี้ เราใช้…

Read More

เปลี่ยนข้อมูล Long เป็น Wide Format ด้วย R Excel และ SQL

บทความแรกของปี 2020 วันนี้แอดมารีวิวเทคนิคการ transform ข้อมูลจาก long format เป็น wide format ง่ายๆด้วยเครื่องมือสามตัวเรียงจากง่ายสุดไปยากสุด ทั้งในด้านประสิทธิภาพและเวลาในการ execute ก่อนอื่นมาทำความรู้จักกับ long และ wide format กันก่อน ปกติเวลาเราทำงานกับข้อมูล (โดยเฉพาะ R และ Excel) เราจะนิยมข้อมูลแบบ long format มากกว่า เพราะเป็นรูปแบบที่เหมาะกับการทำงานวิเคราะห์ข้อมูล Long เหมาะสำหรับการทำ data analysis (raw data) Wide เหมาะสำหรับรายงาน สรุปผลนำเสนอข้อมูล โอเค! คราวนี้มาดูเทคนิคการเปลี่ยน long → wide format (หรือเปลี่ยนจาก wide → long) ง่ายๆด้วยภาษา R, Excel Pivot Table และ SQL…

Read More

อธิบาย K-Fold Cross Validation พร้อมโค้ดตัวอย่างใน R

เทคนิคที่เรียกว่าเป็น Golden Standard สำหรับการสร้างและทดสอบ Machine Learning Model คือ “K-Fold Cross Validation” หรือเรียกสั้นๆว่า k-fold cv เป็นหนึ่งในเทคนิคการทำ Resampling ไอเดียของ k-fold cv คือการแบ่งข้อมูลเป็น k ส่วนเท่าๆกันเพื่อสร้างและทดสอบโมเดล (train + validate) คำนวณค่าเฉลี่ย accuracy หรือ error (i.e. model performance) ก่อนที่จะนำโมเดลไปใช้ทำนายข้อมูล test set รูปด้านล่างแสดงการแบ่งข้อมูลเป็น 5 folds เท่าๆกัน โดยการแบ่งข้อมูลต้องเป็นไปอย่าง random ทำไมต้อง random? เพราะ randomness จะช่วยให้ข้อมูลในแต่ละ fold มีการกระจายตัวใกล้เคียงกัน ช่วยลด bias เวลาที่เราสร้างและทดสอบโมเดล จำนวน k ที่นิยมใช้กันในทางปฏิบัติมีสองค่าคือ k=5…

Read More

ไกลแค่ไหนคือใกล้กับการวัดระยะแบบ Euclidean Distance

บทความนี้มาเรียนวิธีการคำนวนระยะทาง i.e. distance ง่ายๆระหว่างสอง data points โดยตัวที่เราจะสอนวันนี้ชื่อว่า Euclidean distance สูตรการวัดระยะยอดนิยมในงาน data science – Enough talk! Let’s do it. Euclidean Distance สมมติเรามี data points 2 จุด (20, 75) และ (30, 50) จงหาระยะห่างของสองจุดนี้ ถ้ายังจำได้สมัยประถม (แอดค่อนข้างมั่นใจว่าเรียนกันตั้งแต่ ป.6 555+) วิธีการหาระยะห่างในรูปด้านล่างใช้หลักพีทาโกรัส (Pythagorean theorem): a2 + b2 = c2 Euclidean distance (d) หรือ c ในรูปขวาด้านบนสามารถคำนวณได้ง่ายๆตามหลัก Pythagoras สาเหตุที่เราต้องถอดราก (square root) เพราะตอนแรกพีทาโกรัสไปยกกำลังสองด้าน a…

Read More

อธิบาย Logistic Regression พร้อมโค้ดตัวอย่างใน R

Tutorial วันนี้เรามาอธิบาย concept ของ Logistic Regression เบื้องต้น พร้อมโค้ดตัวอย่างใน R สำหรับสร้างและทดสอบโมเดล – Case Study ทำนายการเกิดมะเร็งเต้านม (Breast Cancer Dataset) When to use? เรานิยมใช้ Logistic Regression กับปัญหา Binary Classification i.e. ทำนาย target variable ที่มีสอง classes และใช้ค่า % accuracy สำหรับวัดผลโมเดลเบื้องต้น ด้านล่างเป็นตัวอย่าง use cases ในชีวิตจริง Churn prediction – ทำนายว่าลูกค้าจะเลิกใช้บริการหรือเปล่า (yes/ no) Repeated purchase prediction – ทำนายว่าลูกค้าจะกลับมาซื้อสินค้าหรือเปล่า (yes/ no) Disease detection…

Read More

ทำนายราคาบ้าน Boston ด้วย Linear Regression

บทความที่แล้วเราเขียนอธิบายขั้นตอนการสร้าง ML model ใน 4 ขั้นตอน และสอนเขียนโค้ด R สำหรับแก้ปัญหา Binary Classification (Titanic) วันนี้เราจะมาลองเขียน ML แก้ปัญหา Regression กันบ้าง Regression Problem แอดดาวน์โหลด dataset มาจาก Kaggle ชื่อว่า Boston (Housing Values in Suburbs of Boston) มีตัวแปรทั้งหมด 14 ตัว โดย target ที่เราต้องการทำนายคือ medv หรือราคาบ้านเฉลี่ยหน่วยเป็น $1000 ML เรียกปัญหานี้ว่า Regression เพราะ target ที่เราต้องการทำนายเป็นตัวเลขแบบ numeric/ continuous และ algorithm ที่เราจะสอนวันนี้คือ Linear Regression (อ่านบทความอธิบายเรื่อง LR…

Read More