ฟีเจอร์เชิงลึก
ในแบบฝึกหัดก่อนหน้า เราได้เห็นแล้วว่าการนำฟีเจอร์สองตัวมารวมกันสามารถสร้างฟีเจอร์เพิ่มเติมที่มีประโยชน์ต่อโมเดลพยากรณ์ได้ ในแบบฝึกหัดนี้ จะลองสร้างฟีเจอร์ 'เชิงลึก' โดยรวมผลของตัวแปรสามตัวเข้าด้วยกัน จากนั้นจะตรวจสอบว่าฟีเจอร์ที่ซับซ้อนและลึกขึ้นนั้นให้ผลการพยากรณ์ที่ดีกว่าเสมอไปหรือไม่
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Feature Engineering with PySpark
คำแนะนำการฝึกหัด
- สร้างฟีเจอร์ใหม่โดยบวก
SQFTBELOWGROUNDกับSQFTABOVEGROUNDแล้วเก็บผลลัพธ์ไว้ในคอลัมน์ใหม่ชื่อTotal_SQFT - ใช้
Total_SQFTสร้างฟีเจอร์อีกตัวหนึ่งชื่อBATHS_PER_1000SQFTโดยใช้ร่วมกับBATHSTOTALและอย่าลืมปรับTotal_SQFTให้อยู่ในหน่วยพัน - ใช้
describe()ตรวจสอบค่า min, max และ mean ของฟีเจอร์ใหม่ล่าสุดBATHS_PER_1000SQFTสังเกตว่ามีอะไรผิดปกติหรือไม่ - สร้าง
jointplots()จำนวน 2 กราฟ โดยใช้Total_SQFTและBATHS_PER_1000SQFTเป็นค่า \(x\) และSALESCLOSEPRICEเป็นค่า \(y\) เพื่อดูว่าตัวไหนให้ค่า R**2 ที่ดีกว่า ฟีเจอร์ที่ซับซ้อนกว่านี้มีความสัมพันธ์กับSALESCLOSEPRICEมากกว่าหรือไม่
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create new feature by adding two features together
df = df.____(____, df[____] + df[____])
# Create additional new feature using previously created feature
df = df.____(____, df[____] / (df[____] / ____))
df[[____]].____().show()
# Sample and create pandas dataframe
pandas_df = df.sample(False, 0.5, 0).toPandas()
# Linear model plots
sns.jointplot(x=____, y=____, data=pandas_df, kind="reg", stat_func=r2)
plt.show()
sns.jointplot(x=____, y=____, data=pandas_df, kind="reg", stat_func=r2)
plt.show()