อัลกอริธึมการเรียนรู้ของเครื่องใดดีสำหรับการประเมินว่าคุณลักษณะใดมีความสำคัญมากกว่า


12

ฉันมีข้อมูลที่มีคุณสมบัติขั้นต่ำที่ไม่เปลี่ยนแปลงและมีคุณสมบัติเพิ่มเติมบางอย่างที่สามารถเปลี่ยนแปลงได้และมีผลกระทบอย่างมากต่อผลลัพธ์ ชุดข้อมูลของฉันมีลักษณะดังนี้:

คุณสมบัติคือ A, B, C (แสดงเสมอ) และ D, E, F, G, H (บางครั้งก็ปรากฏ)

A = 10, B = 10, C = 10                  outcome = 10
A = 8,  B = 7,  C = 8                   outcome = 8.5
A = 10, B = 5,  C = 11, D = 15          outcome = 178
A = 10, B = 10, C = 10, E = 10, G = 18  outcome = 19
A = 10, B = 8,  C = 9,  E = 8,  F = 4   outcome = 250
A = 10, B = 11, C = 13, E = 8,  F = 4   outcome = 320
...

ฉันต้องการทำนายค่าผลลัพธ์และการรวมกันของพารามิเตอร์เพิ่มเติมมีความสำคัญมากสำหรับการกำหนดผลลัพธ์ ในตัวอย่างนี้การมีอยู่ของ E และ F นำไปสู่ผลลัพธ์ที่ยิ่งใหญ่ในขณะที่ E และ G ไม่มีอยู่ อัลกอริทึมหรือเทคนิคการเรียนรู้ด้วยเครื่องใดดีในการจับปรากฏการณ์นี้


โดย "บางครั้งมีอยู่" คุณหมายถึงคุณรู้คุณค่าของพวกเขาเพียงบางครั้งหรือไม่ หรือว่าพวกเขาจะไม่เล่นบทบาทในกรณีส่วนใหญ่? หรืออาจเป็นอย่างอื่น?
David J. Harris

@ DavidJ.Harris โดย "บางครั้งนำเสนอ" ฉันหมายความว่าตัวอย่างการฝึกอบรมเฉพาะไม่มีคุณสมบัติ มันเหมือนกับว่ามันเท่ากับศูนย์ ในปัญหาของฉันฟีเจอร์ทั้งหมดของฉันจะเป็นตัวเลขบวกในช่วงที่กำหนด (ตัวอย่างจาก 5 ถึง 15 หรือ 100 ถึง 1,000)
Benjamin Crouzier

1
มันอาจจะดีที่จะดูที่ลิงค์นี้eren.0fees.net/2012/10/22/...
erogol

คำตอบ:


14

นี้เป็นหนึ่งในพื้นที่หลักของการวิจัยในเครื่องเรียนรู้และเป็นที่รู้จักกันเลือกลักษณะ

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


3

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

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

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

  2. ความยากลำบากในการแยกความสำคัญของตัวแปรเดียวเนื่องจากมันอาจมีความสำคัญเฉพาะในการเชื่อมต่อหรือการมีปฏิสัมพันธ์กับตัวแปรอื่น

  3. ตัวแปรบางอย่างอาจมีความสำคัญสำหรับการสังเกตการณ์บางอย่างเท่านั้น การขาดความสำคัญในการสังเกตอื่น ๆ อาจทำให้สับสนในการวัดความสำคัญโดยรวมโดยเฉลี่ยจากความแตกต่างที่แท้จริง

นอกจากนี้ยังเป็นเรื่องยากที่จะได้รับการ interpretable ทันทีเมตริกสำหรับความสำคัญของตัวแปรตรงตามที่กำหนดโดยรูปแบบที่มันอาจจะไม่ได้ผลิตเป็นจำนวนเดียว (โดยเฉพาะอย่างยิ่งในกรณีของการห่อ) แต่ในกรณีเหล่านี้มีการกระจายความสำคัญสำหรับแต่ละตัวแปร

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


3

@Bitwise กล่าวถึงการเลือกคุณลักษณะหรือการแยกคุณลักษณะเป็นส่วนใหญ่ของการวิจัยในตัวเองและมีวิธีนับไม่ถ้วนที่จะทำ

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

การถดถอยหลายครั้งอาจเป็นเทคนิคที่เก่าแก่ที่สุด แนวความคิดนี้เหมาะสมกับแบบจำลองเพื่ออธิบายการตอบสนองจากผู้ทำนายและเก็บเฉพาะผู้ทำนายที่มีผลกระทบอย่างมากต่อการตอบสนอง (สัมประสิทธิ์ขนาดใหญ่ของสัดส่วน) ที่นี่คุณอาจจะต้องเขียนโค้ดตัวตนของ D, E, F และ G เป็นD=0, E=0, F=0, G =0หรือสิ่งที่ต้องการ

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


2

ฉันใช้ Information Gain (หรือที่รู้จักในชื่อ Mutual Information) ที่ปรึกษาของฉันและฉันใช้วิธีการที่อธิบายไว้ในบทความนี้อย่างสม่ำเสมอCohen, 2008สำหรับการวิเคราะห์คุณสมบัติสำหรับการจำแนกประเภทโดย SVM


2

ป่าสุ่มอาจมีประโยชน์สำหรับสิ่งที่คุณต้องการทำ แพคเกจ randomForestสำหรับ R มีฟังก์ชั่นที่คำนวณ 2 มาตรการสำคัญ นอกจากนี้ยังมีความสามารถในการสร้างแผนการพึ่งพาอาศัยบางส่วนเพื่อให้คุณสามารถตรวจสอบผลกระทบเล็กน้อยที่นักทำนายอาจมีต่อการตอบสนอง


1

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

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