วิธีการคำนวณน้ำหนักเกณฑ์ฟิชเชอร์


12

ฉันกำลังศึกษาการจดจำรูปแบบและการเรียนรู้ของเครื่องและฉันพบคำถามต่อไปนี้

พิจารณาปัญหาการจำแนกประเภทสองระดับที่มีความน่าจะเป็นคลาสก่อนหน้าเท่ากับ

P(D1)=P(D2)=12

และการแจกแจงอินสแตนซ์ในแต่ละคลาสที่กำหนดโดย

p(x|D1)=N([00],[2001]),

p(x|D2)=N([44],[1001]).

วิธีการคำนวณน้ำหนักเกณฑ์ฟิชเชอร์

อัปเดต 2:น้ำหนักที่คำนวณได้จากหนังสือของฉันคือ: W=[4329] ]

อัปเดต 3:ตามคำแนะนำของ @xeon ฉันเข้าใจว่าฉันควรกำหนดเส้นการฉายสำหรับผู้เลือกปฏิบัติของฟิชเชอร์

อัปเดต 4:ให้เป็นทิศทางของเส้นการฉายภาพจากนั้นวิธีการจำแนกเชิงเส้นฟิชเชอร์จะพบว่าW ที่ดีที่สุดคือสิ่งที่ฟังก์ชันเกณฑ์ถูกขยายให้ใหญ่สุด ความท้าทายที่เหลืออยู่คือเราจะได้เวกเตอร์เป็นตัวเลข W ได้อย่างไรWWW


การกระจายครั้งแรกของคุณไม่ได้กำหนด โดยเฉพาะอย่างยิ่งความแปรปรวนที่สองของคู่นั้นมีการแจกแจงที่ลดลงด้วยความแปรปรวน 0 แต่มีความแปรปรวนร่วมที่เป็นบวกกับการเปลี่ยนแปลงครั้งแรกซึ่งเป็นไปไม่ได้
owensmartin

@owensmart ทำอะไรคุณมีความคิดใด ๆ วิธีการคำนวณค่าเหล่านี้?
ดร. Hoshang

คำจำกัดความของเกณฑ์น้ำหนักของชาวประมงคืออะไร?
Vladislavs Dovgalecs

ฉันหมายความว่าฟิชเชอร์จำแนกเชิงเส้นจะถูกกำหนดโดยเวกเตอร์ W ซึ่งจะเพิ่ม ... มันตั้งข้อสังเกตเกี่ยวกับวัสดุทุกเหมือนluthuli.cs.uiuc.edu/~daf/courses/Learning/Kernelpapers/...พี 2. ตกลง @xeon หรือไม่
ดร. Hoshang

คำแนะนำ: อะไรคือขอบเขตระหว่างสองคลาส? เป็นเส้นตรงพหุนามมีอย่างอื่นอีกไหม
Vladislavs Dovgalecs

คำตอบ:


11

w

wSBwwSWw,

m1,m2C1,C2

SB=(m1m2)(m1m2),SW=C1+C2.

SBw=λSWw,
λ
det(SBλSW)=0
w
SBλSW=(163λ1616162λ).

eigenvector ที่มีค่าลักษณะเฉพาะที่ใหญ่ที่สุดจะเพิ่มความฉลาดทางเรย์ลีห์ แทนที่จะทำการคำนวณด้วยมือฉันได้แก้ไขปัญหาค่าลักษณะเฉพาะทั่วไปใน Python โดยใช้scipy.linalg.eigและได้รับ ซึ่งแตกต่างจากวิธีแก้ปัญหาที่คุณพบในหนังสือของคุณ ด้านล่างฉันพล็อตไฮเปอร์เพลนที่ดีที่สุดของน้ำหนักเวกเตอร์ที่ฉันพบ (สีดำ) และไฮเปอร์เพลนของน้ำหนักเวกเตอร์ที่พบในหนังสือของคุณ (สีแดง)

w10.5547,w20.8321,

ป้อนคำอธิบายรูปภาพที่นี่


1
ตัวอย่างนี้น่าสนใจมาก ทั้งสองบรรทัดแยกกันทั้งสองคลาส แต่หนึ่งในนั้นคือ "ดีกว่า" จากมุมมองทฤษฎีการเรียนรู้
Vladislavs Dovgalecs

2
เกณฑ์ฟิชเชอร์มีรายละเอียดที่หัวข้อ 5-2-3 ในbooks.google.co.th/…
nini

1
@Lucas อาจจะเป็นผลลัพธ์ที่ใกล้เคียงกับความคิดเห็นของ xeon "บางทีเราควรรายงานเวกเตอร์หน่วย w เนื่องจากการไฮเปอร์เพลตถูกกำหนดโดยทิศทางไม่ใช่ขนาด" ใช่ไหม?
nini

1
โอ้ !!! คำถามที่ท้าทายฉันขอแนะนำให้ทุกคนดูหน้า 2 ในdml.ir/wp-content/uploads/2012/04/SPR-S12-M-Sol.pdf
user153695

1
@Lucas ขอบคุณ คุณช่วยเพิ่มรูปภาพอีกรูปสำหรับ W = [- 2/3 -2/3] และ W = [- 4/3 -2/3] และ W = [- 2 -3] ด้วยสามสีที่แตกต่างกันเพื่อดูขอบเขตได้หรือไม่ ขอบคุณ ฉันตั้งค่าความโปรดปรานให้คุณเพื่อคำตอบที่ดี
nini

7

SOLUTION1:

กำลังติดตาม Duda et al. (การจำแนกรูปแบบ) ซึ่งมีทางเลือกในการแก้ @lucas และในกรณีนี้ให้การคำนวณด้วยมือได้ง่ายมาก (หวังว่าโซลูชันทางเลือกนี้จะช่วยให้ !! :))

ในสองระดับ LDA วัตถุประสงค์คือ:

wTSBwwTSWwซึ่งหมายถึงการเพิ่มระดับความแปรปรวนระหว่างคลาสและลดระดับความแปรปรวนภายใน

โดยที่และที่นี่ คือเมทริกซ์ความแปรปรวนร่วมและหมายถึง class 1 และ 2 ตามลำดับSB=(m1m2)(m1m2)TSW=S1+S2S1,S2m1,m2

วิธีแก้ปัญหาของความฉลาดทาง raleigh ทั่วไปนี้เป็นโพรบค่าไอเกนิกทั่วไป

SBw=λSWwSW1SBw=λw

สูตรด้านบนมีวิธีแก้ปัญหาแบบปิด เป็นเมทริกซ์อันดับ 1 ที่มีพื้นฐานดังนั้นซึ่งสามารถเป็น normlizd เพื่อรับคำตอบSBm1m2wSW1(m1m2)

ฉันเพิ่งคำนวณค่าแล้วได้ [0.5547; 0.8321]w

SW1(m1m2)=(S1+S2)1(m1m2)=([2001]+[1001])1([00][44])=([1/3001/2])([00][44])=[1.33332.0000][0.55470.8321]

Ref: การจำแนกรูปแบบโดย Duda, Hart, Stork

SOLUTION2:

อีกวิธีหนึ่งก็สามารถแก้ไขได้โดยการหาเวกเตอร์ eigen กับปัญหาค่าไอเกนทั่วไป SBw=λSWw

พหุนามในแลมบ์ดาสามารถเกิดขึ้นโดยและการแก้ปัญหาในการพหุนามว่าจะเป็นค่าไอเกนสำหรับS_Ww ตอนนี้สมมติว่าคุณได้รับชุดค่า eigenเป็นรากของพหุนาม ตอนนี้แทนและได้รับที่สอดคล้องไอเกนเวกเตอร์เป็นวิธีการแก้ระบบเชิงเส้นของสมS_Ww_i ด้วยการทำเช่นนี้สำหรับแต่ละตัวฉันคุณจะได้ชุดเวกเตอร์และมันคือชุดของเวกเตอร์ไอเกนเป็นวิธีแก้ปัญหาS B Wdeterminant(SBλSW)SBw=λSWwλ1,λ2,...,λn,λ=λi,i{1,2,..,n}SBwi=λiSWwi{wi}i=1n

determinant(SBλSW)=[163λ1616162λ]=6λ280λดังนั้นค่าไอเกนจึงเป็น รากพหุนาม2-806λ280λ

ดังนั้น 0 และ 40/3 เป็นคำตอบสองข้อ สำหรับ LDA เวกเตอร์ eigen ที่สอดคล้องกับค่า eigen สูงสุดคือคำตอบλ=

คำตอบของระบบสมการและ(SBλiSW)wi=0λi=40/3

ซึ่งกลายเป็น[163λ1616162λ]wi[72484832]wi=0

คำตอบสำหรับระบบสมการข้างต้นคือซึ่งเหมือนกับโซลูชันก่อนหน้า[0.55470.8321][0.55470.8321]

หรืออีกวิธีหนึ่งที่เราสามารถพูดได้ว่าโกหกในพื้นที่โมฆะของ{bmatrix}[ - 72 48 48 - 32 ][0.55470.8321][72484832]

สำหรับ LDA สองคลาส eigen vector ที่มีค่า eigen สูงสุดคือคำตอบ โดยทั่วไปสำหรับคลาส C LDA เวกเตอร์ C - 1 eigen แรกถึงค่า C - 1 eigen สูงสุดเป็นวิธีแก้ปัญหา

วิดีโอนี้อธิบายถึงวิธีการคำนวณเวกเตอร์ eigen สำหรับปัญหาค่า eigen อย่างง่าย ( https://www.khanacademy.org/math/linear-algebra/alternate_bases/eigen_everything/v/linear-algebra-finding-eigenvectors-and-eigenspaces-example )

ต่อไปนี้เป็นตัวอย่าง http://www.sosmath.com/matrix/eigen2/eigen2.html

LDA หลายระดับ: http://en.wikipedia.org/wiki/Linear_discriminant_analysis#Multiclass_LDA

การคำนวณ Null Space ของเมทริกซ์: https://www.khanacademy.org/math/linear-algebra/vectors_and_spaces/null_column_space/v/null-space-2-calculating-the-null-space-of-a-matrix


1
คำตอบที่ดีคุณหมายถึงคำตอบของหนังสือผิด !! Okey?
ดร. Hoshang

ฉันเชื่อว่าคำตอบนี้ถูกต้องและหากหนังสือของคุณกำหนดและแตกต่างกันให้ดูสิ่งที่คุณได้รับจากคำจำกัดความเหล่านั้น S BSWSB
dksahuji

2
-1.33 เท่ากับ -4/3 แต่องค์ประกอบที่สองแตกต่างกัน อาจจองรายงานหน่วยเวกเตอร์ด้วย ไม่ถูกต้องใช่ไหม ขอบคุณมาก
ดร. Hoshang

2
โปรดทำโซลูชันที่สมบูรณ์ 2 เพื่อให้ได้ค่า W เพื่อให้รางวัล
nini

1
@ Dr.Hoshang: ทางออกในหนังสือของคุณผิด ฉันมีความคิดว่าทำไมไม่มี.
อะมีบาพูดว่า Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.