Data Science

สรุปคอร์สเรียน Analytics for Future Business โดยจุฬาฯ รุ่นที่ 1

สัปดาห์นี้แอดได้มีโอกาสไปเรียนคอร์ส Analytics for Future Business รุ่นที่ 1 ของคณะบัญชีฯ จุฬาฯ ระหว่างวันที่ 30 ก.ค. – 1 ส.ค. 2562 เรียนตอนเย็นหลังเลิกงานเวลา 18.00 – 21.15 น. ทั้งหมด 9 ชั่วโมง สนนราคาคอร์ส 7,200 บาท ใครสนใจลองดูรายละเอียดได้ที่เว็บ BizCube

Disclaimer – ก่อนอื่นเลยต้องบอกนี่แอดออกเงินเรียนเอง ไม่ได้มีสปอนเซอร์จากจุฬาฯนะ 555+ รีวิวในบทความนี้เป็นความเห็นส่วนตัวของแอดล้วนๆ หวังว่าจะเป็นประโยชน์กับเพื่อนๆที่กำลังตัดสินใจ 😛

Instructors

คอร์สนี้มีอาจารย์สอนสองท่านจากภาควิชาสถิติ คณะบัญชีฯ จุฬาฯ มากด้วยประสบการณ์ทั้งคู่ แต่ส่วนตัวแอดตั้งใจมาเรียนกับ ดร.โจ้ โดยเฉพาะเลย ผลงานล่าสุดของอาจารย์ เช่น elect.in.th แสดงผลการนับคะแนนเลือกตั้งรอบที่ผ่านมา ’62 ดู portfolio แบบเต็มๆของอาจารย์ได้ที่ Boonmee Lab (ทำไมมันคูลอย่างงี้ๆๆ)

  • อ.ดร.วัชรา จันทาทับ
  • อ.ดร.ภูริพันธุ์ รุจิขจร (พี่โจ้)
Image result for ภูริพันธ์ boonmeelab
ดร.โจ้ แห่ง Boonmee Lab (ที่มา: ภาพจาก The Potential)

Software

ซอฟต์แวร์ที่ใช้เรียนในคอร์สนี้มีสองตัวคือ Tableau Public สำหรับงาน BI/ Dashboard และ RapidMiner สำหรับทำ advanced analytics สามารถดาวน์โหลดมาใช้งานฟรีทั้งสองตัว Gartner จัดให้สอง tools นี้อยู่ใน leaders quadrant (เป็นผู้นำในด้าน BI และ Data Science Platform ตามลำดับ)

แต่กว่าเราจะได้เปิด laptop ลองเล่นโปรแกรมนี้ก็ตอนสองทุ่ม วันสุดท้ายแล้ว 55+ อ้าววว

ที่มา Gartner 2019

Day 1 – Data Driven Organization

สรุปเนื้อหาวันแรก ข้อมูลคือทรัพยากรสำคัญที่ใช้ขับเคลื่อนธุรกิจ อ.ดร.วัชราอธิบายความหมายของ Big Data และแนะนำเครื่องมือต่างๆ ชี้ให้เห็นความแตกต่างระหว่าง BI vs. Advanced Analytics รวมถึงนิยามของ data science, AI, machine learning และ deep learning

  • Data Science หรือวิทยาการข้อมูล เป็นการผสมผสานทักษะด้านคอมพิวเตอร์ การเขียนโปรแกรม คณิตศาสตร์/ สถิติ และความรู้เฉพาะด้าน (domain expertise)
  • Business Intelligence หรือธุรกิจอัจฉริยะ (ทำไมชื่อตลก 55+) เน้นที่การสร้าง report/ dashboard ทำพวก OLAP cube ไว้ปั่นข้อมูลและติดตาม KPI ที่สำคัญของบริษัท
  • Advanced Analytics ในคอร์สนี้อาจารย์เน้นที่การทำ predictive analytics เป็นหลัก มีแตะเบาๆพวก prescriptive นิดหน่อย i.e. what should we do next?
  • Artificial Intelligence > Machine Learning > Deep Learning โดยที่ AI เป็นสาขาหนึ่งของ computer science ส่วน machine learning คือเครื่องมือ (algorithm) ที่เราใช้เรียนรู้ข้อมูล และสุดท้าย deep learning คือเทคนิคหนึ่งของ ML ที่ได้รับแรงบันดาลใจมาจากการทำงานของสมองมนุษย์

Case study ที่สอนในวันแรกคือ IBM Watson ตอนไปแข่ง Double Jeopardy วันที่คอมพิวเตอร์สามารถเข้าใจภาษาธรรมชาติ (natural language) และตอบคำถามยากๆเหมือนมนุษย์ได้ ใน case study นี้ Watson ชนะเกมโชว์ double jeopardy ด้วย! อารมณ์ประมาณปริศนาฟ้าแลบของช่อง workpoint (แต่ไม่ตลก 55+)

นอกเรื่อง – สมัยก่อนนักวิจัยของ IBM สร้างนวัตกรรมระดับโลกไว้เยอะมาก ตั้งแต่โปรแกรม Deep Blue, SQL, บัญญัติคำว่า Machine Learning โดย Arthur Samuel (1959) และล่าสุด Watson ก็เป็นหนึ่งในนั้น

วีดีโอสารคดีสั้นๆ IBM Watson: Final Jeopardy

Day 2 – Data Visualization

วันที่สอง ไม่ผิดหวัง! สำหรับเทคนิคการทำ data visualization แบบคูลๆของอาจารย์ ดร.โจ้ เรียนกันตั้งแต่การทำความสะอาดข้อมูลด้วยคอนเซ็ปต์ tidy/ well-formed data มีหลายๆ case study ที่น่าสนใจ

แต่เรื่องที่แอดชอบที่สุดคือการทำแผนที่ Cholera map (การระบาดของโรคอหิวาตกโรค) ที่ประเทศอังกฤษในปี 1854 โดย Dr. John Snow เค้าทำ bar chart ง่ายๆเพื่อนับจำนวนผู้เสียชีวิตที่ถนน Broad Street (Soho) และพบว่าการเสียชีวิตเกิดขึ้นใกล้ๆกับกับบ่อน้ำ ซึ่งเป็นสาเหตุของการระบาดของเชื้อโรค

งานของ Dr. John Snow มีอิทธิพลอย่างมากต่องาน data journalism ทั่วโลก ดร.โจ้ อธิบายในห้องว่า “เราสามารถใช้ visualization พิสูจน์การระบาดของโรคได้โดยไม่ต้องใช้ตัวเลขสถิติอะไรเลย ใช้แค่รูปอย่างเดียว”

London Broad Street Map โดย Dr. John Snow

สรุปการเลือกใช้ chart ประเภทต่างๆ

Tasks (ต้องการแสดงผลอะไร)Chart Types
DistributionHistogram
CorrelationScatter plot, Heatmap
RankingBar chart
Part-of-wholePie chart, Treemap
TrendLine chart
SpatialMap
ConnectionNode-link diagram, Chord diagram

สรุปนิยามของ Good Visualization สำคัญที่สุดคือการนำเสนอความจริง จริงใจกับ audience

  • Functional + Truthful (ลองดูหนังสือของ Alberto Cairo ด้านล่าง)
  • Effective + Convincing + Insightful
  • Contextualization คนจะเข้าใจงานของเราได้ง่ายขึ้นถ้ามีบริบทในการนำเสนอข้อมูล
ดร.โจ้ แนะนำหนังสือ data visualization เด็ดๆที่ควรอ่าน

หนังสือ Data Visualization ที่อาจารย์แนะนำมี 5 เล่ม หาซื้อได้ทุกเล่มบน amazon

Day 3 – Insight Finding

วันสุดท้าย อ.ดร.วัชรากลับมาสอนอีกครั้ง โดยเริ่มต้นจากการทบทวนเนื้อหาในวันแรก และอธิบายความแตกต่างระหว่าง supervised, unsupervised และ reinforcement learning

  • supervised learning โฟกัสที่การทำ prediction เป็นหลัก
  • unsupervised learning เช่น การทำ segmentation และ dimension reduction
  • reinforcement learning เช่น การสอนโปรแกรมคอมพิวเตอร์ให้เล่นเกมส์ และเรียนรู้ด้วยตัวเองเรื่อยๆ ตัวอย่างเช่น Google’s DeepMind

Insight หรือภาษาไทยคือความเข้าใจเชิงลึก (ไม่ต้องแปลก็ได้ 55+) สำหรับงาน analytics เราสามารถหา insight ได้สองแบบหลักๆคือ 1. การทำ data visualization และ 2. การทำ modeling (advanced analytics)

อ.ดร.วัชรา ทบทวนเนื้อหาของวันที่หนึ่ง

อาจารย์มีอธิบายเรื่องการตั้งคำถามที่ดีด้วย (ask good questions) ซึ่งเป็น step ที่สำคัญมากของ data science project คำถามที่ดีต้องช่วยให้ธุรกิจเราเติบโต สร้างรายได้ ลดต้นทุน ช่วยให้เข้าใจลูกค้าได้ดียิ่งขึ้น

ชั่วโมงสุดท้าย ได้เปิดคอมซักที อาจารย์สอนใช้งาน Tableau แบบเร็วๆ สอนสร้างชาร์ทง่ายๆ อธิบาย measurement, dimension คร่าวๆ เปลี่ยนสี ปรับ label และทำ presentation mode (เรียนประมาณ 40 นาที)

ครึ่งชั่วโมงสุดท้าย อาจารย์สอนใช้งาน RapidMiner วิเคราะห์ข้อมูล customer churn ที่มาพร้อมกับโปรแกรมเพื่อเทรน decision tree ก็คลิกๆ ลากๆ เสร็จเลย แต่ไม่ได้อธิบายลงลึกพวก performance และการจูนโมเดลเลย (ประมาณว่านักเรียนต้องไปหาข้อมูลเพิ่มเองนะ) ปล. อาจารย์เตรียมมาสามโมเดล แต่สอนจบตัวเดียวเอง

เรียนการสร้าง decision tree ด้วย RapidMiner

โดยรวมคอร์สนี้น่าจะเหมาะสำหรับคนที่ไม่มีประสบการณ์ data science เลย เนื้อหามันผิวมากๆถ้ามองจากมุมแอด (ไม่ได้หมายความว่าแอดเก่งนะ 55+) คอร์สนี้น่าสอนใช้โปรแกรมแบบให้เรียนจบพอทำมาหากินได้บ้าง สามชั่วโมงสำหรับ Tableau และอีกสามชั่วโมงสำหรับ RapidMiner น่าจะดีสำหรับนักเรียนรุ่นต่อไป

หรือถ้าจะเจาะกลุ่มผู้บริหาร VP+ ไปเลย ก็น่าจะต้องระบุให้ชัดเจนตั้งแต่แรก ตอนนี้บนเว็บ target หลายกลุ่มมาก ทำให้เนื้อหาคอร์สเบาไป ดูไม่ค่อยคุ้มกับเงินที่จ่ายเท่าไร (7,200 บาท) แต่ทั้งนี้ทั้งนั้นต้องบอกว่ากำไรทั้งหมดของคอร์สนี้จะถูกนำไปเป็นทุนการศึกษาและจัดกิจกรรมต่างๆในมหาวิทยาลัยต่อไป ถือว่าโอเคร!

เรียนจบได้ใบ certificate ด้วย

Suggested Improvements

  • เนื้อหาน่าจะลงทฤษฏีแค่วันแรก แล้ววันที่ 2-3 ได้เปิดคอมลงมือทำ Tableau/ RapidMiner เต็มๆ
  • ส่วนตัวคิดว่า อ.ดร.โจ้ น่าจะสอน Tableau ได้ดีกว่าเพราะว่าอาจารย์ถนัดด้าน data visualization อยู่แล้ว
  • ตอน อ.ดร.วัชรา สอน RapidMiner ไม่ได้อธิบาย process การสร้างโมเดลก่อน e.g. ทำไมต้อง split data, train, test etc. นักเรียนคนอื่นอาจจะงง (หลายคนบอกว่าตามไม่ทันเลย ตอน อ. demo ให้ดู)
  • เวลาสอนคอร์สที่ต้องติดตั้งโปรแกรม จะมีเรื่องยุ่งยากเสมอเลย (ประสบการณ์ตรง 55+) เช่น มีคนไม่ลงโปรแกรมมาบ้าง ลงผิดเวอร์ชั่นบ้าง อาจทำเป็นวีดีโอสอนติดตั้งโปรแกรมง่ายๆ ส่งให้นักเรียนดูก่อน
  • เลือกกลุ่มนักเรียนที่อยากเป็น practitioners จริงๆดีกว่า เพราะว่ากลุ่มนี้มีจำนวนมากกว่าผู้บริหาร VP SVP เยอะ ปรับราคาลงอีกนิดก็น่าจะมีคนสมัครมาเรียนเรื่อยๆ

ตั้งแต่เรียนมา แอดคิดว่า อ.เอก Data Cube สอน RapidMiner ได้ละเอียดสุดในประเทศไทยเลย (ก็แหงสิ เค้าเป็น RapidMiner Ambassdor ของประเทศไทย!) ล๊อกอินเข้าโปรแกรม หน้าพี่เอกก็ลอยมาแล้ว 55+

Should You Enroll?

อ.ดร.วัชรา ในการสอนวันแรก อาจารย์อายุ 60 แต่หน้าเหมือน 40!

เราเหมาะกับคอร์สนี้มั้ย? สมัครคอร์สนี้ถ้าหากคุณไม่เคยเรียนด้าน data science มาก่อนเลย ไม่เคยรู้จัก/ ไม่เข้าใจว่า BI AI ML DL คืออะไร ไม่เคยทำ data visualization งานปกติใช้แค่ Excel ยังเขียนโปรแกรมไม่เป็น

เนื่องจากคอร์สนี้เป็นคอร์สระยะสั้นมาก เรียนแค่ประมาณ 9 ชั่วโมง (มีพักกินข้าววันละ 20-30 นาที) ได้เปิด laptop ของตัวเองวันสุดท้ายตอนสองทุ่ม แล้วก็เรียน Tableau กับ RapidMiner เร็วๆ เหมือนนั่งดู อ. demo มากกว่า อย่าคาดหวังว่าจะเรียนจบแล้วทำได้เลย วัตถุประสงค์ของคอร์สนี้เหมือนให้เห็นภาพใหญ่ของงาน data analytics สำหรับผู้เริ่มต้น แล้วก็ไปศึกษาหาความรู้ต่อด้วยตัวเอง

Bonus – Train a Decision Tree in R

นอกเรื่อง – RapidMiner ที่สอนในคอร์สนี้ก็ดีแหละ แต่ถ้าเขียนโปรแกรมได้ ยังไงก็ทำงานได้เร็วกว่าการใช้ซอฟต์แวร์ drag and drop ตัวอย่างเช่นโค้ด R ด้านล่างก็สามารถสร้าง decision tree แบบเร็วๆได้เลย

## decision tree in R
library(rpart)
library(mlbench)
data("PimaIndiansDiabetes")

## train test split
set.seed(99)
df <- PimaIndiansDiabetes
n <- nrow(df)
id <- sample(1:n, size=0.8*n)
train_df <- df[id, ]
test_df <- df[-id, ]

## build model 
rpart_model <- rpart(diabetes ~ ., data = train_df)

## predict test set
p <- predict(rpart_model, newdata = test_df, type = "class")
mean(p == test_df$diabetes) ## accuracy
test_df$predictions <- p    ## append result to test dataframe

## write predictions to files
write.csv(test_df, "decision_tree_predictions.csv")

ปล. เจอแฟนเพจ 4-5 คน!! ขอบคุณที่จำแอดได้ 55+ และเข้ามาทักทาย ถ่ายรูปด้วยกันคร้าบ : )

ใครอยากให้รีวิวคอร์สไหนอีก คอมเม้นบอกแอดได้เลย -/\- แอดทอย

รอยยิ้มช่างเหมือนกัน 555+

2 comments

  1. คุณทอย Review ได้ละเอียดและสร้างสรรค์มากเลยค่ะ
    อ. วัชรา

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.