Table of Contents

บทที่ 21-linear Regression

วิธีทำนายราคารถยนต์ด้วย linear Regression แบบ Ordinary Least Square (OLS) และ Online Gradient Descent โดย AzureML

เมื่อเราพูดถึงโมเดลแบบ Regression ที่เราต้องการทำนายหรือคาดการณ์สิ่งต่าง ๆ เชิงตัวเลขนั้นโมเดลที่เรานึกถึงเป็นอันดับแรกคือ linear Regression ซึ่งใน AzureML สามารถทำ linear Regression ได้สองวิธีคือ

Ordinary Least Square (OLS)

 

วิธีการนี้เราต้องการที่จะ Minimum Error เพื่อให้มี error น้อยที่สุดโดยใช้วิธีกำลังสองน้อยที่สุดนั้นคือ เราต้องการจะ minimum

 

 

  • Online Gradient Descent

Gradient Descent มีความหมายคือ slopที่ลาดลง

 

เราจะทำการวัดประสิทธิภาพของโมเดลเราด้วยค่า error นั้นก็คือ Cost Function โดยมีเป้าหมายคือหาชุด Parameter ที่ทำให้เราเสียค่าใช้จ่ายที่น้อยที่สุดนอกจากนี้ยังมี parameter ที่เราต้องกำหนดคือ Learning Rate หรือ Alpha หากเราเลือกต่ำเกินโมเดลจะใช้เวลานานในการลงมาถึงจุดต่ำสุด แต่หากเลือกสูงเกินไปโมเดลของเราอาจลงมาไม่ถึงจุดต่ำสุด                             

ในบทความนี้เราจะมาทำนายข้อมูลราคารถยนต์หรือก็คือคอลัมน์ Priceโดยใช้ Linear Regression ทั้งสองแบบนี้ซึ่งเราสามารถทำได้ไม่อยากเลยหากเรามีตัวช่วยอย่าง Azure ML ค่ะ

 

  • ค้นหา 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  และ test ใช้ module ที่มีชื่อว่า Split Data จากนั้นทำการปรับค่า parameter โดยปรับ Fraction of rows in the first output dataset เป็น 0.7  เพื่อแบ่งข้อมูลเป็น training set : test set เป็น 70% : 30% และใส่ค่า 123 ใน Random Seed และเลือก  Stratified split เลือก true จากนั้นเลือกคอลัมน์ที่เป็น target ของเรานั้นคือ price จากนั้นคลิก RUN
  • ค้นหา module ที่มีชื่อว่า Linear Regression เพื่อทำการสร้างและ train โมเดล โดยเลือก Solution method เป็น  Ordinary Least Square และปรับ Random number seed เป็น 123

 

 

  • ลาก Module ที่ชื่อว่า Train Model มาเชื่อมกับ โมเดลและSplit Data จากนั้นเลือกคอลัมน์ Price
  • จากนั้นค้นหา module ที่ชื่อว่า Score Model มาวางบน Workspace แล้วลากเส้นเชื่อมจาก Train Model มาเชื่อมที่วงกลมวงแรก และลากจากวงกลมที่สองของ Split Data มาเชื่อมกับวงที่สองของ Score Model

 

 

  • ทำการเปรียบเทียบกับวิธีการ Online Gradient Descent โดยทำเช่นเดียวกับวิธีการก่อนหน้าแต่เลือก Solution method เป็น Online Gradient Descent และปรับ Random number seed เป็น 123

 

ค้นหา module ที่ชื่อว่า Evaluate Model มาเชื่อมกับ Score Model ทั้งสองจากนั้นคลิก RUN

 

ผลจากการทำนายพบว่าในข้อมูลการทำนายราคารถยนต์ชุดนี้การทำนายโดยใช้ Ordinary Least Square ให้ผลลัพธ์ดีกว่า Online Gradient Descent ดังนั้น linear Regression แบบ Ordinary Least Square มีเหมาะสมสำหรับการทำนาย dataset ที่ชื่อว่า Automobile

 

 

Fusion ให้บริการวิเคราห์และออกแบบระบบ Machine Learning ด้วยเครื่องมือ ของ

Microsoft Azure

02-440-0408 / sales@fusionsol.com

Link to Implement Azure , Implement Power BI

 

Facebook
X
LinkedIn

Popular Blog posts