การแนะนำ
เมื่อกำหนดชุดข้อมูล D={(X1,Y2),…,(XN,YN)} เช่น Xi และ Yi มีความต่อเนื่อง เป้าหมายของ "Linear Regression" คือการค้นหาบรรทัดที่ดีที่สุดที่เหมาะกับข้อมูลนี้
กล่าวอีกนัยหนึ่ง เราต้องการสร้างแบบจำลอง:
y^=a∗0+a∗1.x∗1+⋯+a∗p.x_p
โดยที่ p คือจำนวนมิติของตัวแปร X
ในบทความนี้ เราจะดูวิธีแก้ปัญหานี้ในสามสถานการณ์:
X เป็นหนึ่งมิติ (Ordinary Least Square)
โมเดลที่เราต้องการสร้างมีรูปร่าง:
y^=a∗0+a∗1.x
โปรดจำไว้ว่าเป้าหมายของการถดถอยเชิงเส้นคือการค้นหาเส้นที่เหมาะกับข้อมูลมากที่สุด กล่าวอีกนัยหนึ่ง เราจำเป็นต้องลดระยะห่างระหว่างจุดข้อมูลและเส้นให้เหลือน้อยที่สุด
(a∗0^,a∗1^)=(a∗0,a∗1)argmin∑∗i=1N(y∗i−y∗i^)2
=(a∗0,a∗1)argmin∑∗i=1N(y∗i−(a∗0+a∗1.x∗i))2
เอาล่ะ:
L=∑∗i=1N(y∗i−(a∗0+a∗1.x_i))2
เพื่อที่จะหาค่าต่ำสุด เราจำเป็นต้องแก้สมการต่อไปนี้:
{∂a0∂L=0∂a1∂L=0
⎩⎨⎧i=1∑N−2(yi−(a0+a1.xi))=0i=1∑N−2xi(yi−(a0+a1.xi))=0
เราเริ่มต้นด้วยการพัฒนาสมการแรก:
i=1∑Nyi−i=1∑Na0+i=1∑Na1.xi=0
i=1∑Nyi−Na0+i=1∑Na1.xi=0
a0=Ni=1∑Nyi−Ni=1∑Nxia1
a0=Y−Xa1
เราแทนที่ในสมการที่สอง:
i=1∑Nxi(yi−Y+Xa1−a1xi)=0
i=1∑N(yi−Y)+a1(X−xi)=0
i=1∑N(yi−Y)−i=1∑Na1(xi−X)=0
a1=i=1∑N(xi−X)i=1∑N(yi−Y)=i=1∑N(xi−X)2i=1∑N(yi−Y)(xi−X)=VAR(X)COV(X,Y)
เราแทนที่กลับด้วย a0:
{a0=Y−XVAR(X)COV(X,Y)a1=VAR(X)COV(X,Y)
X มีหลายมิติ (Ordinary Least Square)
ในกรณีนี้ Xi ไม่ใช่จำนวนจริงอีกต่อไป แต่เป็น เวกเตอร์ ขนาด p แทน:
X∗i=(X∗i1,X∗i2,…,X∗ip)
ดังนั้นโมเดลจึงเขียนได้ดังนี้
y^=a∗0+a∗1x∗1+a∗2x∗2+⋯+a∗px_p
หรือเขียนในรูปแบบเมทริกซ์ได้ดังนี้
Y^=X.W
ที่ไหน:
-
Y มีรูปร่าง (N,1)
-
X มีรูปร่าง (N,p)
-
W มีรูปร่าง (p,1): นี่คือพารามิเตอร์เวกเตอร์ (w1,w2,…,wp)
ในทำนองเดียวกันกับกรณีแรก เรามุ่งหวังที่จะลดปริมาณต่อไปนี้ให้เหลือน้อยที่สุด:
W^=Wargmin∑∗i=1N(y∗i−y_i^)2
ใส่อีกครั้ง:
L=∑∗i=1N(y∗i−y_i^)2
=(Y−XW)T(Y−XW)
=YTY−YTXW−WTXTY+WTXTXW
=YTY−2WTXTY+WTXTXW
เนื่องจากเราต้องการย่อ L เทียบกับ W เราจึงสามารถมองข้ามเทอมแรก "YTY" ได้เพราะมันไม่ขึ้นอยู่กับ W แล้วลองแก้สมการต่อไปนี้:
∂W∂(−2WTXTY+WTXTXW)=0
−2XTY+2XTXW^=0
W^=(XTX)−1XTY
ใช้การไล่ระดับโคตร
นี่คือสูตรของอัลกอริธึมการไล่ระดับสี:
w∗n+1=w∗n−lr×∂w_n∂f
ตอนนี้สิ่งที่เราต้องทำคือนำไปใช้กับพารามิเตอร์สองตัว a0 และ a1 (ในกรณีของตัวแปรตัวเดียว X):
{a0(n+1)=a0(n)−lr×∂a0∂La1(n+1)=a1(n)−lr×∂a1∂L
และเรารู้ว่า:
⎩⎨⎧∂a0∂L=i=1∑N−2(yi−(a0+a1.xi))∂a1∂L=i=1∑N−2xi(yi−(a0+a1.xi))
โดยการทดแทน:
⎩⎨⎧a0(n+1)=a0(n)+2×lr×i=1∑N(yi−(a0(n)+a1(n).xi))a1(n+1)=a1(n)+2×lr×i=1∑Nxi(yi−(a0(n)+a1(n).xi))
แบบทดสอบ
-
สูตรของเวกเตอร์พารามิเตอร์ที่เหมาะสมที่สุดในกรณีของการถดถอยเชิงเส้นหลายมิติคืออะไร:
-
VAR(Y)COV(X,Y)
-
VAR(X)COV(X,Y)
-
(XTX)−1XTY "ถูกต้อง"
-
ทำไมเราถึงใส่อนุพันธ์เป็น 0?
-
เพื่อค้นหาจุดสุดยอด "ถูกต้อง"
-
เพื่อลดอนุพันธ์ให้เหลือน้อยที่สุด
-
เพื่อเก็บเฉพาะส่วนที่แท้จริงของอนุพันธ์เท่านั้น
-
วัตถุประสงค์ของการถดถอยเชิงเส้นคืออะไร?
-
เพื่อค้นหาเส้นที่ผ่านทุกจุด
-
เพื่อค้นหาบรรทัดที่อธิบายข้อมูลได้ดีที่สุด**"ถูกต้อง"**
-
เพื่อค้นหาเส้นที่แยกข้อมูลได้ดีที่สุด