ทดสอบ QuantileTransformer
การ Standardization มีจุดอ่อนเช่นเดียวกับ z-score เนื่องจากทั้งสองวิธีใช้ค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานในการคำนวณ จึงมีความไวต่อค่าสุดขีดสูงมาก
เพื่อหลีกเลี่ยงปัญหานี้ ควรใช้ QuantileTransformer ซึ่งอาศัยควอนไทล์แทน ควอนไทล์ของการกระจายข้อมูลจะไม่เปลี่ยนแปลงไม่ว่าค่าผิดปกติจะมีขนาดใหญ่เพียงใด
ควรใช้ StandardScaler เมื่อข้อมูลมีการกระจายแบบปกติ (ตรวจสอบได้ด้วยฮิสโตแกรม) สำหรับการกระจายรูปแบบอื่น QuantileTransformer เป็นตัวเลือกที่เหมาะสมกว่า
ฝึกใช้งานกับชุดข้อมูล females ที่โหลดไว้แล้ว โดย matplotlib.pyplot ถูกโหลดด้วยชื่อย่อมาตรฐาน plt
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับความผิดปกติใน Python
คำแนะนำการฝึกหัด
- สร้าง
QuantileTransformer()ที่แปลงฟีเจอร์ให้มีการกระจายแบบปกติ แล้วกำหนดให้กับตัวแปรqt - Fit และแปลงอาร์เรย์ฟีเจอร์
Xพร้อมรักษาชื่อคอลัมน์ไว้ - พล็อตฮิสโตแกรมของคอลัมน์
palmlength
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
from sklearn.preprocessing import QuantileTransformer
# Instantiate an instance that casts to normal
qt = ____
# Fit and transform the feature array
X.____ = ____
# Plot a histogram of palm length
plt.____(____, color='red')
plt.xlabel("Palm length")
plt.show()