Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีกำจัดค่าเฉลี่ยจากเวกเตอร์ฟีเจอร์ด้วยไลบรารี scikit-learn ใน Python

การประมวลผลข้อมูลล่วงหน้า (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