ค่าผิดปกติในข้อมูลและการปรับสเกล

ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

Lisa Stuart

Data Scientist

ค่าผิดปกติ (Outliers)

  • ข้อมูลตั้งแต่หนึ่งจุดขึ้นไปที่อยู่ห่างไกลจากข้อมูลอื่นในฟีเจอร์นั้น

Data outliers

1 https://bolt.mph.ufl.edu/6050-6052/unit-1/one-quantitative-variable-introduction/understanding-outliers/
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

พิสัยระหว่างควอร์ไทล์ (IQR)

Data IQR

1 By Jhguch at en.wikipedia, CC BY-SA 2.5, https://commons.wikimedia.org/w/index.php?curid=14524285
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

เส้นที่ฟิตข้อมูลได้ดีที่สุด

Linear model fit

1 https://www.r-bloggers.com/outlier-detection-and-treatment-with-r/
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

ฟังก์ชันสำหรับค่าผิดปกติ

ฟังก์ชัน ผลลัพธ์
sns.boxplot(x= , y='Loan Status') boxplot ตามตัวแปรเป้าหมาย
sns.distplot() ฮิสโทแกรมและการประมาณความหนาแน่น (kde)
np.abs() ค่าสัมบูรณ์
stats.zscore() คำนวณ z-score
mstats.winsorize(limits=[0.05, 0.05]) กำหนดขอบบนและขอบล่างสำหรับค่าผิดปกติ
np.where(condition, true, false) แทนที่ค่า
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

ความแปรปรวนสูง vs ต่ำ

Variance

1 https://machinelearningmastery.com/a-gentle-introduction-to-calculating-normal-summary-statistics/
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

Standardization vs Normalization

  • การทำให้เป็นมาตรฐาน (Standardization):
    • Z-score standardization
    • ปรับสเกลให้มีค่าเฉลี่ย 0 และส่วนเบี่ยงเบนมาตรฐาน 1

Formula z-score standardization

  • การ Normalize ข้อมูล:
    • Min/max normalizing
    • ปรับสเกลให้อยู่ในช่วง (0, 1)

Formula min-max scaling

1 https://medium.com/@rrfd/standardize-or-normalize-examples-in-python-e3f174b65dfc
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

ฟังก์ชันการปรับสเกล

  • scikit-learn.preprocessing.StandardScaler() --> (mean=0, sd=1)
  • sklearn.preprocessing.MinMaxScaler() --> (0,1)
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

ค่าผิดปกติและการปรับสเกล

ควรระบุและจัดการค่าผิดปกติอย่างไร? การทำ min/max หรือ z-score standardization ส่งผลต่อข้อมูลอย่างไร? เลือกข้อที่ ถูกต้อง:

  • ค่าผิดปกติคือจุดข้อมูลที่อยู่นอกช่วงของจุดที่คล้ายกันในฟีเจอร์นั้นเพียงเล็กน้อย
  • ในบางบริบท ค่าผิดปกติที่ถือว่าผิดปกติมีประโยชน์ในการสร้างโมเดล ML เชิงพยากรณ์
  • Min/max scaling ทำให้ข้อมูลมีค่าเฉลี่ย 0 ส่วนเบี่ยงเบนมาตรฐาน 1 และเพิ่มความแปรปรวน
  • Z-score standardization ปรับสเกลข้อมูลให้อยู่ในช่วง (0,1) และทำให้โมเดลฟิตข้อมูลได้ดีขึ้น
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

ค่าผิดปกติและการปรับสเกล: คำตอบ

ควรระบุและจัดการค่าผิดปกติอย่างไร? การทำ min/max หรือ z-score standardization ส่งผลต่อข้อมูลอย่างไร? คำตอบที่ถูกต้องคือ:

  • ในบางบริบท ค่าผิดปกติที่ถือว่าผิดปกติมีประโยชน์ในการสร้างโมเดล ML เชิงพยากรณ์ (ความผิดปกติของข้อมูลพบได้บ่อยในการตรวจจับการฉ้อโกง ภัยคุกคามทางไซเบอร์ และสถานการณ์อื่น ๆ ที่มีเป้าหมายเพื่อค้นหาสิ่งเหล่านั้น)
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

ค่าผิดปกติและการปรับสเกล: คำตอบที่ไม่ถูกต้อง

ควรระบุและจัดการค่าผิดปกติอย่างไร? การทำ min/max หรือ z-score standardization ส่งผลต่อข้อมูลอย่างไร?

  • ค่าผิดปกติคืออยู่นอกช่วงของจุดที่คล้ายกันในฟีเจอร์นั้นเพียงเล็กน้อย (จุดข้อมูลจะไม่ถูกสงสัยว่าเป็นค่าผิดปกติจนกว่าจะเกิน IQR ไปมากกว่า 1.5 เท่า)
  • Min/max scaling ทำให้ข้อมูลมีค่าเฉลี่ย 0 ส่วนเบี่ยงเบนมาตรฐาน 1 และเพิ่มความแปรปรวน (Min/max scaling ปรับสเกลข้อมูลให้อยู่ในช่วง (0,1) ส่วนความแปรปรวนจะเพิ่มหรือลดขึ้นอยู่กับข้อมูลต้นฉบับ)
  • Z-score standardization ปรับสเกลข้อมูลให้อยู่ในช่วง (0,1) และทำให้โมเดลฟิตข้อมูลได้ดีขึ้น (Z-score standardization ปรับสเกลข้อมูลให้มีค่าเฉลี่ย 0 และส่วนเบี่ยงเบนมาตรฐาน 1 ซึ่งอาจช่วยให้โมเดลฟิตข้อมูลได้ดีขึ้น)
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

สิ่งสุดท้าย...

Preprocessing steps

ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

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

ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

Preparing Video For Download...