การถดถอยเชิงเส้นพหุตัวแปร
โดยทั่วไป การถดถอยเชิงเส้นแบบตัวแปรเดียวมักไม่เพียงพอสำหรับการทำนายที่แม่นยำ ในแบบฝึกหัดนี้ จะได้ลองใช้การถดถอยแบบพหุตัวแปร ซึ่งใช้ฟีเจอร์มากกว่าหนึ่งตัว
จะใช้ price_log เป็นตัวแปรเป้าหมาย และ size_log กับ bedrooms เป็นฟีเจอร์ โดยเทนเซอร์เหล่านี้ถูกกำหนดไว้แล้วและพร้อมใช้งาน นอกจากนี้ยังเปลี่ยนจากการใช้ mean squared error มาเป็น mean absolute error แทน ด้วยฟังก์ชัน keras.losses.mae() และค่าที่ทำนายได้คำนวณตามสูตร: params[0] + feature1*params[1] + feature2*params[2] โดยกำหนดเวกเตอร์พารามิเตอร์ params เป็นตัวแปรเดียว แทนที่จะใช้สามตัวแปรแยกกัน ทั้งนี้ params[0] คือค่าคงที่ (intercept) ส่วน params[1] และ params[2] คือค่าความชัน (slopes)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
TensorFlow เบื้องต้นใน Python
คำแนะนำการฝึกหัด
- กำหนดโมเดลการถดถอยเชิงเส้นที่คืนค่าที่ทำนายได้
- กำหนดให้
loss_function()รับเวกเตอร์พารามิเตอร์เป็น input - ใช้ mean absolute error เป็น loss
- เขียนโค้ดส่วนการ minimization ให้ครบถ้วน
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Define the linear regression model
def linear_regression(params, feature1 = size_log, feature2 = bedrooms):
return params[0] + feature1*____ + feature2*____
# Define the loss function
def loss_function(____, targets = price_log, feature1 = size_log, feature2 = bedrooms):
# Set the predicted values
predictions = linear_regression(params, feature1, feature2)
# Use the mean absolute error loss
return keras.losses.____(targets, predictions)
# Define the optimize operation
opt = keras.optimizers.Adam()
# Perform minimization and print trainable variables
for j in range(10):
opt.minimize(lambda: loss_function(____), var_list=[____])
print_results(params)