เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การแปลงตัวแปรต่อเนื่องให้เป็น logical

ตัวแปร logical มีประโยชน์มาก เพราะมักคิดในเชิง "ใช่หรือไม่ใช่" ได้ง่ายกว่าการคิดในเชิงตัวเลข ตัวอย่างเช่น ถ้ามีคนถามว่า "ต้องการชาสักแก้วไหม?" การตอบแบบ ใช่ หรือ ไม่ใช่ ย่อมสะดวกกว่าการบอกว่า "มีโอกาส 0.73 ที่จะต้องการชา" แนวคิดนี้นำไปใช้ในงาน Data Science ได้จริง เช่น การตรวจวินิจฉัยโรคเบาหวานอาจให้ผลเป็นค่าความเข้มข้นกลูโคสในพลาสมาเลือดของผู้ป่วยเป็นตัวเลข แต่สิ่งที่ต้องการทราบจริงๆ คือ "ผู้ป่วยเป็นเบาหวานหรือไม่?" ดังนั้นจึงต้องแปลงตัวเลขนั้นให้เป็นค่า logical โดยอิงจาก threshold ที่กำหนด

ใน R พื้นฐาน ทำได้ค่อนข้างง่าย ดังนี้

threshold_mmol_per_l <- 7
has_diabetes <- plasma_glucose_concentration > threshold_mmol_per_l

ฟังก์ชัน feature transformation ทั้งหมดใน sparklyr มี interface ที่คล้ายกัน อาร์กิวเมนต์สามตัวแรกจะเป็น Spark tibble, สตริงที่ระบุชื่อคอลัมน์อินพุต, และสตริงที่ระบุชื่อคอลัมน์เอาต์พุตเสมอ กล่าวคือ ทุกฟังก์ชันเป็นไปตามรูปแบบนี้

a_tibble %>%
  ft_some_transformation("x", "y", some_other_args)

วิธีแปลงตัวแปรต่อเนื่องให้เป็น logical ใน sparklyr ใช้ ft_binarizer() ตัวอย่างโรคเบาหวานก่อนหน้านี้สามารถเขียนใหม่ได้ดังนี้ โปรดทราบว่าค่า threshold ต้องเป็นตัวเลข ไม่ใช่สตริงที่อ้างอิงชื่อคอลัมน์ในชุดข้อมูล

diabetes_data %>%
  ft_binarizer("plasma_glucose_concentration", "has_diabetes", threshold = threshold_mmol_per_l)

ตามแนวทางของ Spark ที่ใช้ DoubleType ทุกที่ ผลลัพธ์จาก ft_binarizer() จะไม่ใช่ค่า logical จริงๆ แต่เป็น numeric วิธีนี้เหมาะสำหรับการทำงานต่อใน Spark และแปลงข้อมูลเพิ่มเติม แต่ถ้าต้องการนำข้อมูลมาประมวลผลใน R จะต้องแปลงข้อมูลให้เป็น logical อย่างชัดเจน รูปแบบโค้ดที่พบบ่อยมีดังนี้

a_tibble %>%
  ft_binarizer("x", "is_x_big", threshold = threshold) %>%
  collect() %>%
  mutate(is_x_big = as.logical(is_x_big))

แบบฝึกหัดนี้ใช้ฟิลด์ artist_hotttnesss ซึ่งเป็นค่าวัดระดับความเป็นที่พูดถึงของศิลปินในสื่อต่างๆ ณ ช่วงเวลาที่สร้างชุดข้อมูล หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างกราฟด้วยแพ็กเกจ ggplot2 สามารถเรียนได้ที่คอร์ส Introduction to Data Visualization with ggplot2

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

แนะนำ Spark ด้วย sparklyr ใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

มีการสร้าง Spark connection ไว้ให้แล้วในชื่อ spark_conn และ tibble ที่เชื่อมต่อกับข้อมูล track metadata ที่เก็บใน Spark ได้ถูกกำหนดไว้ล่วงหน้าในชื่อ track_metadata_tbl

  • สร้างตัวแปรชื่อ hotttnesss จาก track_metadata_tbl
    • เลือกฟิลด์ artist_hotttnesss
    • ใช้ ft_binarizer() เพื่อสร้างฟิลด์ใหม่ชื่อ is_hottt_or_nottt ซึ่งมีค่าเป็น true เมื่อ artist_hotttnesss มากกว่า 0.5
    • ดึงผลลัพธ์ด้วย collect()
    • แปลงฟิลด์ is_hottt_or_nottt ให้เป็น logical
  • สร้างกราฟแท่ง ggplot() ของ is_hottt_or_nottt
    • อาร์กิวเมนต์แรกของ ggplot() คืออาร์กิวเมนต์ข้อมูล ได้แก่ hotttnesss
    • อาร์กิวเมนต์ที่สองของ ggplot() คือ aesthetic โดยใส่ is_hottt_or_nottt ภายใน aes()
    • เพิ่ม geom_bar() เพื่อวาดแท่งกราฟ

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# track_metadata_tbl has been pre-defined
track_metadata_tbl

hotttnesss <- track_metadata_tbl %>%
  # Select artist_hotttnesss
  ___ %>%
  # Binarize to is_hottt_or_nottt
  ___ %>%
  # Collect the result
  ___ %>%
  # Convert is_hottt_or_nottt to logical
  ___

# Draw a barplot of is_hottt_or_nottt
ggplot(___, aes(___)) +
  ___()
แก้ไขและรันโค้ด