การเตรียมข้อมูล

Machine Learning แบบ End-to-End

Joshua Stapleton

Machine Learning Engineer

ขั้นตอนการเตรียมข้อมูล

ชุดข้อมูลมี:

  • ค่าที่ขาดหาย
  • ค่าผิดปกติ
  • ความไม่สมดุล
  • คอลัมน์ว่าง
  • ข้อมูลซ้ำ

การเตรียมข้อมูล:

  • อิงจากผลการวิเคราะห์ EDA
  • สำคัญต่อประสิทธิภาพของโมเดล
Machine Learning แบบ End-to-End

ค่า Null / ค่าว่าง

  • ลบแถว/คอลัมน์ที่ขาดหายหรือมีข้อมูลน้อย
  • ค่า Null อาจทำให้โมเดลพัง
  • ใช้ df.drop() สำหรับคอลัมน์
  • ใช้ df.dropna(how='all') สำหรับแถว
# count missing values
print(df['oldpeak'].isnull().sum())

# Drop empty column(s) and row(s)
columns_dropped = heart_disease_df.drop(['oldpeak'], axis='columns')
rows_and_columns_dropped = columns_dropped.dropna(how='all')
Machine Learning แบบ End-to-End

การจัดการค่า Null / ค่าว่าง

  • การทำความสะอาด/ลบข้อมูลขึ้นอยู่กับผล EDA

 

  • หากคอลัมน์มีค่าขาดหายมากเกินไป:
    • ลบคอลัมน์นั้น

 

  • หากคอลัมน์เป้าหมายมีค่าขาดหาย:
    • ลบแถวที่ขาดหาย
    • หรือจัดเป็นหมวดหมู่แยกต่างหาก
Machine Learning แบบ End-to-End

Imputation

เมื่อมีค่าขาดหายเพียงเล็กน้อยควรทำอย่างไร?

  • การ Imputation:

    • แทนค่าที่ขาดหายด้วยค่าทดแทน
  • กลยุทธ์

    • แทนด้วยค่าเฉลี่ยหรือมัธยฐาน
    • ใช้ค่าคงที่หรือค่าก่อนหน้า
# Calculate the mean cholestrol value 
mean_value = heart_disease_df['chol'].mean()

# Fill missing cholestrol values with the mean
heart_disease_df['chol'].fillna(mean_value, inplace=True)
Machine Learning แบบ End-to-End

Imputation ขั้นสูง

เทคนิคขั้นสูง:

  • K-nearest neighbors
  • SMOTE (synthetic minority oversampling technique)
from sklearn.impute import KNNImputer

# Initialize KNNImputer
imputer = KNNImputer(n_neighbors=2, weights="uniform")

# Perform the imputation on your DataFrame
df_imputed['oldpeak'] = imputer.fit_transform(df['oldpeak'])
Machine Learning แบบ End-to-End

การลบข้อมูลซ้ำ

 

  • ข้อมูลต้องสะอาด กระชับ และมีคุณภาพ
  • ความซ้ำซ้อนไม่เป็นประโยชน์
  • ข้อมูลซ้ำอาจทำให้โมเดลเกิดอคติหรือสับสน
  • ใช้ตัวระบุเฉพาะเป็นเกณฑ์ในการลบระเบียน/แถว

 

# Drop duplicate rows
heart_disease_duplicates_dropped = heart_disease_column_dropped.drop_duplicates()
Machine Learning แบบ End-to-End

มาฝึกกันเถอะ!

Machine Learning แบบ End-to-End

Preparing Video For Download...