บทที่ 20-Decision Forest Regression
วิธีการทำนายราคารถยนต์ด้วยโมเดล Decision Forest Regression ง่าย ๆ แค่ใช้ AzureML
Decision tree และ Random Forest เป็นโมเดลในการทำ Classification ที่หลาย ๆ คนคงคุ้นเคยเป็นอย่างดีแต่ตัว Decision tree และ Random Forest ไม่ได้ทำได้แค่การทำ Classification เพียงเท่านั้นยังสามารถทำ Regression หรือการทำนายผลลัพธ์ในเชิงตัวเลขได้อีกด้วย โดยการแบ่งต้นไม้สามารถทำได้ดังรูป
ผลลัพธ์ของ Decision Tree Regression จากมาจากค่าเฉลี่ยของแต่ละพื้นที่ในทุก ๆ พื้นที่หรือทุก ๆ ใบของ tree อาจเส้นการถดถอบสำหรับ data points ในแต่ละพื้นที่ และการนำ Decision tree หลาย ๆ ต้นมาวิเคราะห์แล้วหาค่าเฉลี่ยกันเราจะเรียกว่า Random Forest Regression หรือ Decision Forest Regression
สำหรับ dataset ที่เราต้องการจะทำนายโดยใช้ Decision Forest Regression คือข้อมูลคุณสมบัติ หรือ feature ที่ส่งผลต่อราคาของรถยนต์ และสิ่งที่เราต้องการทำนายคือราคารถยนต์โดยใช้ feature ต่าง ๆ เหล่านี้มาใช้ในการทำนาย
โดย dataset ของเรามีทั้งหมด 205 แถว 26 คอลัมน์ และมี missing data เกือบทุกคอลัมน์ และคอลัมน์ที่เป็นเป้าหมายที่เราต้องการทำนายคือ price ซึ่งเรามีวิธีการทำทายราคารถยนต์โดยใช้ AzureML ดังนี้
- ค้นหา dataset ที่ชื่อว่า Automobile price data (Raw) ซึ่งเป็น dataset ตัวอย่างของ AzureML จากนั้นลาก dataset นี้มาวางไว้บน Workspace
- ทำการ Clean missing data ที่มีชนิดของข้อมูลเป็น String ทุกคอลัมน์โดยการค้นหา module ที่ชื่อว่า Clean Missing Data แล้วลากมาเชื่อมกับ dataset เลือกทุกคอลัมน์ที่เป็น string ของเราแล้วเลือก Replace with mode จากนั้นคลิก RUN
ทำการ Clean missing data ที่มีชนิดของข้อมูลเป็น numeric ทุกคอลัมน์โดยการค้นหา module ที่ชื่อว่า Clean Missing Data แล้วลากมาเชื่อมกับ dataset เลือกทุกคอลัมน์ที่เป็น numeric ของเราแล้วเลือก Replace with mean จากนั้นคลิก RUN
แก้ชนิดข้อมูลที่เป็น string ให้เป็น category โดยการค้นหา module ที่ชื่อว่า Edit Metadata แล้วลากมาเชื่อมกับ Clean Missing Data แล้วเลือกคอลัมน์ที่เป็น string แล้วเลือก Categorical แล้วเลือก Make Categorical จากนั้นคลิก RUN
จากนั้นเราจะแยกข้อมูลออกเป็น training set เพื่อใช้ในการ train ข้อมูลและ test set เพื่อทดสอบข้อมูลสามารถทำได้โดยการค้นหา module ที่มีชื่อว่า Split Data จากนั้นทำการปรับค่า parameter โดยปรับ Fraction of rows in the first output dataset เป็น 0.7 เพื่อแบ่งข้อมูลเป็น training set 70% และ test set 30% และใส่ค่า 123 ใน Random Seed และเลือก Stratified split เลือก true จากนั้นเลือกคอลัมน์ที่เป็น target ของเรานั้นคือ price จากนั้นคลิก RUN
ค้นหา module ที่มีชื่อว่า Decision Forest Regression เพื่อทำการสร้างและ train โมเดลโดยค่า parameter จะเหมือนกับตัว Decision Forest ที่เป็น classification และในข้อมูลนี้เราจะใช้ parameter ที่ AzureML กำหนดมา
จากนั้นค้นหา module ที่ชื่อว่า Train Model ลากมาวางบน Workspace และลากเส้นเชื่อมจาก Decision Forest Regression มาเชื่อมกับวงกลมวงแรกและลากจากวงกลมวงแรกอง Split Data มาเชื่อมวงกลมวงที่สองของ Train Model จากนั้นเลือกคอลัมน์ price
จากนั้นค้นหา module ที่ชื่อว่า Score Model มาวางบน Workspace แล้วลากเส้นเชื่อมจาก Train Model มาเชื่อมที่วงกลมวงแรก และลากจากวงกลมที่สองของ Split Data มาเชื่อมกับวงที่สองของ Score Model
จากนั้นค้นหา module ที่ชื่อว่า Evaluate Model มาวางบน Workspace แล้วลากเส้นเชื่อมจาก Score Model มาที่ Evaluate Model เพื่อดูประสิทธิภาพของโมเดลของเรา จากนั้นกด RUN
เมื่อเรา Visualize ดูผลลัพธ์จะพบว่ามีค่า Coefficient of Determination เท่ากับ 0.839443 นั้นหมายความว่า price ถูกอธิบายด้วย feature ของเราได้ถึง 83.9443% ดังนั้น Decision Forest Regression มีประสิทธิภาพและเหมาะสมในการทำนายราคารถยนต์
Link to Implement Azure , Implement Power BI
Reference Decision Forest Regression