การประมวลผลข้อมูลล่วงหน้า (Data Pre-processing) หมายถึงกระบวนการทำความสะอาดข้อมูล ลบข้อมูลที่ไม่ถูกต้อง หรือสัญญาณรบกวน (Noise) และแทนที่ข้อมูลด้วยค่าที่เกี่ยวข้อง ซึ่งเป็นขั้นตอนสำคัญในการเตรียมข้อมูลก่อนนำไปใช้กับอัลกอริทึม Machine Learning
การประมวลผลล่วงหน้ามุ่งรวมข้อมูลจากแหล่งต่างๆ ให้อยู่ในรูปแบบเดียวกัน หรือชุดข้อมูลที่สม่ำเสมอ ขึ้นอยู่กับประเภทของข้อมูล ผลลัพธ์ของแต่ละขั้นตอนจะกลายเป็นอินพุตของขั้นตอนถัดไป
ในบางกรณี อาจจำเป็นต้องกำจัดค่าเฉลี่ย (Mean) ออกจากข้อมูลนำเข้า เพื่อให้ได้ผลลัพธ์ที่ต้องการ มาดูวิธีการทำด้วยไลบรารี scikit-learn
ตัวอย่างโค้ด
import numpy as np
from sklearn import preprocessing
input_data = np.array([
[34.78, 31.9, -65.5],
[-16.5, 2.45, -83.5],
[0.5, -87.98, 45.62],
[5.9, 2.38, -55.82]
])
print("Mean value is : ", input_data.mean(axis=0))
print("Standard deviation value is : ", input_data.std(axis=0))
data_scaled = preprocessing.scale(input_data)
print("Mean value has been removed ", data_scaled.mean(axis=0))
print("Standard deviation has been removed ", data_scaled.std(axis=0))
ผลลัพธ์
Mean value is : [ 6.17 -12.8125 -39.8 ]
Standard deviation value is : [18.4708067 45.03642047 50.30754615]
Mean value has been removed [-2.60208521e-18 -8.32667268e-17 -1.11022302e-16]
Standard deviation has been removed [1. 1. 1.]
คำอธิบาย
นำเข้าแพ็กเกจที่จำเป็น ได้แก่ NumPy และ scikit-learn
สร้างข้อมูลนำเข้าด้วยไลบรารี NumPy
คำนวณค่าเฉลี่ย (Mean) และค่าส่วนเบี่ยงเบนมาตรฐาน (Standard Deviation)
แสดงผลค่าที่คำนวณได้บนคอนโซล
ใช้ฟังก์ชัน
preprocessing.scale()เพื่อกำจัดค่าเฉลี่ยและค่าส่วนเบี่ยงเบนมาตรฐานออกจากข้อมูล (Standardization)แสดงผลข้อมูลที่ผ่านการปรับมาตรฐานแล้ว โดยค่าเฉลี่ยจะใกล้เคียงกับ 0 และค่าส่วนเบี่ยงเบนมาตรฐานจะเป็น 1
หมายเหตุ: ฟังก์ชัน preprocessing.scale() ทำการ Standardization (Z-score normalization) ซึ่งจะแปลงข้อมูลให้มีค่าเฉลี่ย = 0 และค่าส่วนเบี่ยงเบนมาตรฐาน = 1 เหมาะสำหรับอัลกอริทึมที่ไวต่อสเกลของข้อมูล เช่น SVM, Logistic Regression, KNN และ Neural Networks