การนำ Mean, Median, Mode มาวิเคราะห์ข้อมูลใน Machine Learning ด้วย Python

การนำ Mean, Median, Mode มาวิเคราะห์ข้อมูลใน Machine Learning เป็นหนึ่งในวิธีการที่นิยมใช้เพื่อจัดการกับข้อมูลที่เป็นตัวเลขหรือจำนวนตัวอักษรที่แตกต่างกัน โดยใช้ฟังก์ชันทางสถิติเหล่านี้เพื่อคำนวณค่าเฉลี่ย ค่ากลาง และค่าฐานนิยมของข้อมูล ตัวอย่างเช่น หากเรามีข้อมูลเกี่ยวกับอายุของผู้เข้าร่วมงานสัมมนาดังนี้

25, 28, 35, 41, 20, 19, 25, 31, 29, 27, 32

เราสามารถนำ Mean, Median, Mode มาวิเคราะห์ได้ดังนี้

  1. Mean (ค่าเฉลี่ย): เป็นค่าที่ได้จากการหารผลรวมของข้อมูลด้วยจำนวนของข้อมูล
Mean = (25+28+35+41+20+19+25+31+29+27+32)/11 = 28.54

       จากผลลัพธ์จะเห็นได้ว่าค่าเฉลี่ยของอายุที่เข้าร่วมงานสัมมนาคือ 28.54

  1. Median (มัธยฐาน): เป็นค่าที่อยู่กลางของข้อมูล หากจำนวนของข้อมูลเป็นเลขคู่ จะเลือกค่าเฉพาะกลางสองค่ามาหาค่าเฉลี่ย
19, 20, 25, 25, 27, 28, 29, 31, 32, 35, 41

     จากนั้นจึงหาค่ากลางได้เป็น 27 และ 28 จึงนำค่าเฉลี่ยของ 27 และ 28 มาหาค่าเฉลี่ยของค่ากลาง ได้

Median = (27+28)/2 = 27.5

     จากผลลัพธ์จะเห็นได้ว่าค่ากลางของอายุที่เข้าร่วมงานสัมมนาคือ 27.5

  1. Mode (ฐานนิยม): เป็นค่าซ้ำกันมากที่สุด ค่าที่มีความถี่สูงสุด ค่าที่มีความนิยมมากที่สุด
19, 20, 25, 25, 27, 28, 29, 31, 32, 35, 41

     จากนั้นจึงหาค่าที่ซ้ำกันมากที่สุด

Mode = 25

เทคนิคการใช้ Mean Median Mode มาวิเคราะห์ข้อมูลในการทำ Machine Learning มีหลายวิธี โดยทั่วไปแล้วเราจะใช้เทคนิคนี้ในการสรุปข้อมูล และวิเคราะห์การกระจายของข้อมูล ดังนี้

  1. การใช้ Mean : เป็นวิธีการหาค่ากลางของข้อมูลที่นิยมใช้มากที่สุด เพราะสามารถรวมข้อมูลทุกตัวเข้าด้วยกันแล้วหารด้วยจำนวนข้อมูลได้เลย จึงช่วยให้เราเข้าใจค่าตัวเลขรวม ความเข้าใจและการวิเคราะห์ข้อมูลได้ง่ายขึ้น แต่ถ้ามี outliers หรือข้อมูลผิดปกติอาจทำให้ค่าเฉลี่ยของข้อมูลไม่แสดงผลลัพธ์ที่ดี

  2. การใช้ Median : เป็นวิธีการหาค่ากลางของข้อมูลที่มีความเสถียรสูงกว่า Mean เนื่องจาก Median จะเป็นตัวแทนของข้อมูลที่อยู่ตรงกลาง ที่ไม่ได้ถูกมีอิทธิพลโดยค่าข้อมูลที่มีค่ามากหรือน้อยมาก แต่มันยังสามารถทำงานได้ดีแม้ข้อมูลจะมี outliers หรือข้อมูลผิดปกติ

  3. การใช้ Mode : เป็นวิธีการหาค่ากลางของข้อมูลที่เหมาะสำหรับข้อมูลประเภท categorical หรือข้อมูลที่มีการแบ่งส่วนตามประเภท เช่น สี ลักษณะ หรือการเป็นของอะไรบางอย่าง เนื่องจากมันช่วยให้เราหาข้อมูลที่ได้รับความนิยมหรือการเกิดขึ้นบ่อยที่สุด

ตัวอย่าง การคำนวณ Mean ด้วย Python สามารถใช้ฟังก์ชั่น mean() จากโมดูล statistics ได้ ดังนี้

import statistics

data = [25, 28, 35, 41, 20, 19, 25, 31, 29, 27, 32]
mean = statistics.mean(data)
print(mean)

ผลลัพธ์ที่ได้ คือ

28.90909090909091

จากตัวอย่าง ค่า Mean ของชุดข้อมูล data คือ 28.91 ทศนิยม 2 ตำแหน่ง (rounded off)

ตัวอย่าง การคำนวณ Median ด้วย Python สามารถใช้ฟังก์ชัน median() จากไลบรารี่ (library) statistics ของภาษา Python ได้ ดังนี้

from statistics import median

data = [25, 28, 35, 41, 20, 19, 25, 31, 29, 27, 32]
result = median(data)

print("Median is: ", result)

ผลลัพธ์ที่ได้ คือ

Median is:  28

จากตัวอย่างนี้ มีข้อมูลเป็น [25, 28, 35, 41, 20, 19, 25, 31, 29, 27, 32] และ Median ที่ได้คือ 28 ซึ่งเป็นค่ากลางของชุดข้อมูลนี้ เนื่องจากเมื่อเรียงลำดับข้อมูลจะได้ [19, 20, 25, 25, 27, 28, 29, 31, 32, 35, 41] และตำแหน่งของค่ากลางคือตำแหน่งที่ 6 ที่มีค่าเป็น 28

ตัวอย่าง การคำนวณ Mode ด้วย Python จะใช้ฟังก์ชัน statistics.mode()

import statistics

data = [25, 28, 35, 41, 20, 19, 25, 31, 29, 27, 32]
mode = statistics.mode(data)

print("Mode =", mode)

ผลลัพธ์ที่ได้ คือ

Mode = 25

จากตัวอย่าง ข้อมูลที่กำหนดมีค่าเท่ากับ [25, 28, 35, 41, 20, 19, 25, 31, 29, 27, 32] โดย Python จะนำข้อมูลที่กำหนดไปคำนวณหา Mode และแสดงผลลัพธ์ออกมาเป็นค่า Mode คือ 25

ตัวอย่าง คำนวณ Mean, Median, Mode โดยการใช้ไลบรารี NumPy และ SciPy  ถ้าเรามีข้อมูลการขายสินค้าของร้านค้าออนไลน์ ซึ่งมีการแบ่งตามวันที่ และมียอดขาย (unit) ดังนี้

sales_data = {
    '2022-02-01': 50,
    '2022-02-02': 75,
    '2022-02-03': 120,
    '2022-02-04': 90,
    '2022-02-05': 105,
    '2022-02-06': 75,
    '2022-02-07': 60
}

สามารถคำนวณ Mean, Median, Mode ของข้อมูลนี้ได้ดังนี้

import numpy as np
from scipy import stats

# แปลงข้อมูลจาก Dictionary เป็น List
sales = list(sales_data.values())

# คำนวณ Mean ด้วย NumPy
mean_sales = np.mean(sales)

# คำนวณ Median ด้วย NumPy
median_sales = np.median(sales)

# คำนวณ Mode ด้วย SciPy
mode_sales = stats.mode(sales)

print("Mean:", mean_sales)
print("Median:", median_sales)
print("Mode:", mode_sales.mode[0])

ผลลัพธ์ที่ได้  คือ

Mean: 85.0
Median: 75.0
Mode: 75

ดังนั้น Mean ของข้อมูลการขายในร้านค้าคือ 85 หน่วย Median ของข้อมูลคือ 75 หน่วย และ Mode ของข้อมูลคือ 75 หน่วย