อัลกอริทึมการจำแนกทางสถิติใดที่สามารถทำนายความจริง / เท็จสำหรับลำดับของอินพุตได้


15

กำหนดลำดับของอินพุตฉันต้องพิจารณาว่าลำดับนี้มีคุณสมบัติที่ต้องการหรือไม่ คุณสมบัติสามารถเป็นจริงหรือเท็จนั่นคือมีเพียงสองคลาสที่เป็นไปได้ที่ลำดับสามารถเป็นของ

ความสัมพันธ์ที่แน่นอนระหว่างลำดับและคุณสมบัตินั้นไม่ชัดเจน แต่ฉันเชื่อว่ามันสอดคล้องกันมากและควรให้ยืมเพื่อการจำแนกทางสถิติ ฉันมีหลายกรณีที่ต้องฝึกลักษณนามถึงแม้ว่ามันอาจจะมีเสียงดังเล็กน้อยในแง่ที่ว่ามีความเป็นไปได้ที่จะมีการมอบหมายลำดับคลาสที่ไม่ถูกต้องในชุดฝึกอบรมนี้

ตัวอย่างข้อมูลการฝึกอบรม:

Sequence 1: (7 5 21 3 3) -> true
Sequence 2: (21 7 5 1) -> true
Sequence 3: (12 21 7 5 11 1) -> false
Sequence 4: (21 5 7 1) -> false
...

ในแง่หยาบทรัพย์สินจะถูกกำหนดโดยชุดของค่าในลำดับ (เช่นการปรากฏตัวของ "11" หมายความว่าทรัพย์สินเกือบจะเป็นเท็จ) เช่นเดียวกับคำสั่งของค่า (เช่น "21 7 5" "เพิ่มโอกาสที่อสังหาริมทรัพย์จะเป็นจริง)

หลังจากการฝึกอบรมฉันควรจะสามารถจัดลำดับลักษณนามที่มองไม่เห็นก่อนหน้านี้เช่น(1 21 7 5 3)กันและควรให้ความมั่นใจว่าทรัพย์สินเป็นจริง มีอัลกอริทึมที่รู้จักกันดีสำหรับการฝึกอบรมตัวจําแนกด้วยอินพุต / เอาท์พุตชนิดนี้หรือไม่?

ฉันได้พิจารณาตัวจําแนกเบส์แบบไร้เดียงสา (ซึ่งไม่สามารถปรับให้เข้ากับความจริงที่ว่าลําดับนั้นมีความสําคัญอย่างน้อยก็ไม่ได้โดยไม่ท ฉันได้ตรวจสอบด้วยวิธีแบบจำลองมาร์คอฟที่ซ่อนอยู่ซึ่งดูเหมือนจะไม่เหมาะสมเพราะมีเพียงหนึ่งเอาต์พุตเท่านั้นที่มีอยู่แทนที่จะเป็นหนึ่งเอาต์พุตต่ออินพุต ฉันพลาดอะไร?


คุณมีวิธีในการวัดระยะห่างระหว่างคู่ลำดับหรือไม่? ความยาวของลำดับขั้นต่ำและ / หรือสูงสุดเป็นที่รู้จักหรือไม่?
Craig Wright

@ CraigWright ไม่มีการวัดระยะทางที่ใช้งานได้ที่ฉันคิดได้ ความยาวสูงสุดในลำดับที่ 12 และอย่างน้อยประมาณ 4 อาจจะถือว่า นอกจากนี้ยังมีค่าที่แตกต่างกันประมาณ 30 ค่า (ไม่ใช่ค่าธรรมชาติที่ไม่ จำกัด เพียงแค่ความเป็นไปได้ที่ค่อนข้างเล็ก)
Roman Starkov

ตัวแปรตอบสนองหลายตัวแปรที่คุณพูดถึงคืออะไร? ฉันอ่านปัญหาของคุณเนื่องจากนี่เป็นเอาต์พุตไบนารีและบางทีคุณสามารถสร้างตัวแปรจำลองได้ Var1.1, Var1.12, ... , Var12.12
B_Miner

@ B_Miner ฉันอาจเข้าใจผิดว่า HMM ทำงานอย่างไร แต่ดูเหมือนว่ามันจะทำงานได้ดังต่อไปนี้: ฉันป้อนลำดับการป้อนข้อมูลของฉัน (abcde) และส่งออกลำดับที่ซ่อนอยู่ที่ตรงกับที่ดีที่สุดนั่นคือ (a 'b' c 'd' e ' ) ฉันไม่คิดว่าตัวแปรจำลองจะแก้ปัญหานี้ได้ ฉันต้องการการจัดหมวดหมู่จริง / เท็จสำหรับลำดับทั้งหมด
Roman Starkov

@romkyns นั่นไม่ใช่วิธีการทำงานของ HMM HMM เป็นกระบวนการที่น่าจะเป็น กำหนดลำดับและ HMM Mคุณสามารถคำนวณความน่าจะเป็นที่Mจะส่งออกs (โดยใช้การเขียนโปรแกรมแบบไดนามิก; อัลกอริทึมการส่งต่อ) นอกจากนี้ด้วยชุดลำดับการฝึกอบรมคุณสามารถค้นหา HMM Mที่มีโอกาสสูงสุดในการสร้างลำดับการฝึกอบรมเหล่านั้น (โดยใช้อัลกอริทึม Baum-Welch) ดังนั้น HMM อาจเป็นสิ่งที่ควรลองที่นี่ แม้ว่าจะมีรายละเอียดบางอย่างที่ต้องกรอก sMMsM
DW

คำตอบ:


10

คุณสามารถลองใช้วิธีความน่าจะเป็นที่คล้ายกับตัวจําแนกเบส์ไร้เดียงสา แต่มีข้อสมมติฐานที่อ่อนแอ ตัวอย่างเช่นแทนที่จะใช้การสันนิษฐานอิสรภาพอย่างเข้มแข็ง

p(xc)=p(x0c)tp(xtxt1,c)

คือเลเบลของคลาส, xคือลำดับของคุณ คุณจำเป็นต้องประเมินการกระจายสองเงื่อนไขหนึ่งสำหรับ= 1และหนึ่งสำหรับ C = 0cxc=1c=0

ตามกฎของ Bayes:

p(c=1x)=p(xc=1)p(c=1)p(xc=1)p(c=1)+p(xc=0)p(c=0).

การแจกแจงแบบไหนที่จะเลือกสำหรับขึ้นอยู่กับสมมติฐานอื่น ๆ ที่คุณสามารถทำเกี่ยวกับลำดับและจำนวนข้อมูลที่คุณมีp(xtxt1,c)

ตัวอย่างเช่นคุณสามารถใช้:

p(xtxt1,c)=π(xt,xt1,c)iπ(xi,xt1,c)

ด้วยการแจกแจงเช่นนี้หากมี 21 ตัวเลขที่แตกต่างกันที่เกิดขึ้นในลำดับของคุณคุณจะต้องประมาณพารามิเตอร์π ( x t , x t , c )บวก21 2 = 42พารามิเตอร์สำหรับp ( x 0 | )บวก2พารามิเตอร์สำหรับการP ( C )21212=882π(xt,xt,c)212=42p(x0c)2p(c)

หากสมมติฐานของโมเดลของคุณไม่เป็นไปตามที่กล่าวมามันสามารถช่วยในการปรับแต่งพารามิเตอร์โดยตรงเกี่ยวกับประสิทธิภาพการจัดหมวดหมู่ตัวอย่างเช่นโดยการลดการสูญเสียบันทึกโดยเฉลี่ยให้เหลือน้อยที่สุด

1#D(x,c)Dlogp(cx)

ใช้การไล่ระดับสี - โคตร


(+1) ฉันชอบอันนี้ อย่างไรก็ตามหนึ่งอาจต้องใช้ข้อมูลจำนวนมากเพื่อให้ได้การประมาณการที่เชื่อถือได้สำหรับp(xt|xt1,c)
steffen

หากคุณสามารถตั้งสมมติฐานเพิ่มเติมเกี่ยวกับการแจกแจงที่เกี่ยวข้องคุณอาจหลีกเลี่ยงพารามิเตอร์ที่น้อยลง ตัวอย่างเช่นถ้าคุณรู้ว่าเป็นทวินามและE [ x tx t - 1 , c ] = x t - 1คุณจะต้องประมาณสองพารามิเตอร์เท่านั้น หนึ่งสำหรับค่าของแต่ละค แน่นอนถ้าคุณไม่สามารถทำการสันนิษฐานได้และมีข้อมูลไม่เพียงพอคุณไม่สามารถทำอะไรได้มากมาย ไม่มีอาหารกลางวันฟรีp(xtxt1,c)E[xtxt1,c]=xt1c
ลูคัส

6

ฉันขอแนะนำให้คุณกำหนดคุณสมบัติบางอย่างแล้วเลือกอัลกอริทึมการเรียนรู้ของเครื่องเพื่อใช้กับคุณสมบัติเหล่านั้น

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

  • "ถุงตัวเลข" คุณอาจนับจำนวนครั้งที่เป็นไปได้ที่ปรากฏในลำดับ ตัวอย่างเช่นสมมติว่าแต่ละลำดับทำจากตัวเลข 1-30 เท่านั้น จากนั้นคุณสามารถสร้างคุณสมบัติ 30 อย่าง; TH นับคุณลักษณะกี่ครั้งจำนวนฉันปรากฏในลำดับ ตัวอย่างเช่นลำดับสร้างเวกเตอร์คุณลักษณะ (0,0,2,0,1,0,1,0, ... , 0,1,0, ... , 0)ii(7 5 21 3 3)

  • "กระเป๋าของไดแกรม" digram เป็นคู่ของตัวเลขที่ต่อเนื่องกัน ตามลำดับคุณสามารถแยกส่วนย่อยทั้งหมด จากนั้นคุณสามารถนับได้ว่าแต่ละครั้งที่ digram ที่เป็นไปได้ปรากฏขึ้นกี่ครั้ง ยกตัวอย่างเช่นลำดับ(7 5 21 3 3)มีดังต่อไปนี้เป็น digrams ที่: 7 5, 5 21, และ21 3 3 3สมมติว่าลำดับนั้นทำจากตัวเลข 1-30 มี digrams ที่เป็นไปได้ดังนั้นคุณจึงได้รับ30 2คุณสมบัติ ได้รับลำดับคุณสามารถสร้างคุณสมบัติเวกเตอร์นี้302302

  • "ถุงตรีโกณมิติ" คุณสามารถพิจารณาตรีโกณฯ ซึ่งเป็นลำดับของตัวเลขสามตัวติดต่อกันจากลำดับเดิม คุณสามารถทำเช่นเดียวกับข้างต้น

d=30+302+303d

ii

d


ความพยายามครั้งแรกที่ฉันนำไปใช้จริง ๆ คือ "ถุงตรีโกณมิติ" ที่มีการจำแนก Bayesian ที่ไร้เดียงสา ผลลัพธ์เป็นสิ่งที่ให้กำลังใจ แต่ก็ไม่ยอดเยี่ยม ฉันคิดว่าสิ่งนี้อาจเกี่ยวข้องกับความจริงที่ว่าตรีโกณมิติไม่ได้เป็นอิสระเลย: ถ้าฉันมี "1 2 3" ดังนั้นฉันก็มีแนวโน้มที่จะมีตรีโกณมิติ "2 3 *" บางทีฉันควรทดสอบด้วยฟีเจอร์ที่แน่นอนมากกว่านี้
Roman Starkov

การทดลองเพิ่มเติมทั้งในชุดคุณลักษณะที่แตกต่างกันและด้วยอัลกอริทึมการเรียนรู้ที่แตกต่างกันเป็นความคิดที่ดี นอกจากนี้ตามคำอธิบายปัญหาของคุณคุณอาจต้องการเพิ่มฟีเจอร์สำหรับการปรากฏตัวของแต่ละหมายเลข (ถุงคำไม่ใช่แค่ถุงสามเหลี่ยม): ถ้าคุณใช้เฉพาะตรีโกณมิติคุณกำลังทำให้อัลกอริทึมการเรียนรู้ของเครื่องเรียนรู้ยากขึ้น ความจริงเช่น "ลำดับที่มี 11 เกือบจะไม่มีทรัพย์สิน"
DW

2

สิ่งที่คุณทำอย่างมีประสิทธิภาพคือการทดสอบสมมติฐานในอนุกรมเวลา HMM จะทำงานให้คุณแม้ว่าคุณจะต้องปรับให้เข้ากับกรณีของคุณ

สุจริตถ้าคุณไม่สามารถเขียนคำอธิบายทางคณิตศาสตร์บางอย่างเกี่ยวกับสิ่งที่คุณพยายามตรวจพบคุณจะไม่ไปไกล บางทีคุณสามารถบอกเราเกี่ยวกับคุณสมบัติที่คุณคาดหวังที่จะเห็น?


1
การเรียนรู้ของเครื่องแสดงให้เราเห็นว่าเราสามารถไปได้ไกลโดยไม่ต้องมีความคิดเกี่ยวกับสิ่งที่จะมองหา
bayerj

1

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


1

คุณเคยลองใช้เครือข่ายแบบเบย์ไหม? นั่นเป็นสิ่งแรกที่ฉันคิดว่าเมื่อฉันต้องการหลอมรวมข้อมูลหลาย ๆ ชิ้น (เข้าทีละครั้ง) เพื่อให้ได้มาซึ่งความน่าจะเป็นของตัวแปรสุ่ม

เครือข่ายแบบเบย์ไม่พึ่งพาสมมติฐานความเป็นอิสระที่ Bayes ไร้เดียงสาทำ

BTW แบบจำลองมาร์คอฟที่ซ่อนอยู่เป็นกรณีพิเศษของเครือข่ายแบบเบย์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.