เหตุใดคุณสมบัติทางวิศวกรรมจึงทำงาน


20

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

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

คณิตศาสตร์อยู่เบื้องหลังอะไร? หรือฉันคิดผิด

นอกจากนี้นั่นไม่ใช่ปัญหาสำหรับผู้จัดประเภทเช่น kNN ว่า "ยอดรวม" จะใหญ่กว่า "การโจมตี" หรือ "การป้องกัน" เสมอหรือไม่ ดังนั้นแม้หลังจาก standarization เราจะมีคุณสมบัติที่มีค่าจากช่วงที่แตกต่างกันอย่างไร


การรวมคุณสมบัติสองอย่างแน่นอนไม่ได้แสดงถึง "คุณสมบัติทางวิศวกรรม" โดยทั่วไป
xji

คำตอบ:


21

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

ก่อนอื่นฉันจะตอบว่าทำไมคุณสมบัติทางวิศวกรรมถึงทำงานทั่วไป

ภาพที่มีค่าพันคำ. รูปภาพนี้อาจบอกคุณเกี่ยวกับข้อมูลเชิงลึกเกี่ยวกับวิศวกรรมฟีเจอร์และสาเหตุที่ทำงาน ( แหล่งรูปภาพ)

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

  • ข้อมูลในพิกัดคาร์ทีเซียนมีความซับซ้อนมากขึ้นและค่อนข้างยากที่จะเขียนกฎ / สร้างแบบจำลองเพื่อจำแนกสองประเภท

  • ข้อมูลในพิกัดโพลาร์นั้นง่ายมาก: เราสามารถเขียนกฎง่าย ๆ บนเพื่อจำแนกสองประเภทR

นี่บอกเราว่าการแสดงข้อมูลมีความสำคัญมาก ในบางพื้นที่การทำงานบางอย่างง่ายกว่าการเว้นวรรคอื่น

ที่นี่ฉันตอบคำถามที่กล่าวถึงในตัวอย่างของคุณ (รวมในการโจมตีและป้องกัน)

อันที่จริงแล้วคุณสมบัติทางวิศวกรรมที่กล่าวถึงในตัวอย่างของการโจมตีและการป้องกันนี้จะไม่ทำงานได้ดีในหลาย ๆ รุ่นเช่นโมเดลเชิงเส้นและจะทำให้เกิดปัญหาบางอย่าง ดูพหุ ในทางกลับกันคุณสมบัติทางวิศวกรรมดังกล่าวอาจทำงานกับรุ่นอื่น ๆ เช่นต้นไม้ตัดสินใจ / ฟอเรสต์แบบสุ่ม ดูคำตอบของ @ Imran สำหรับรายละเอียด

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


ยอดรวมไม่จำเป็นต้องมี collinear กับส่วนเสริม ดูตัวอย่างคำตอบของฉัน
Kodiologist

15

ประเภทของโมเดลที่เราใช้อาจไม่มีประสิทธิภาพในการเรียนรู้การรวมคุณสมบัติบางอย่างที่มีอยู่

ad0a+d<01a+d0

เนื่องจากต้นไม้การตัดสินใจสามารถแยกตามแกนคุณลักษณะแต่ละอย่างเท่านั้นแบบจำลองของเราจึงจะพยายามสร้างบันไดให้พอดีกับเส้นซึ่งจะมีลักษณะดังนี้:

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

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

อย่างไรก็ตามหากเราเพิ่มa+dเป็นคุณลักษณะปัญหาจะกลายเป็นเรื่องเล็กน้อยสำหรับโครงสร้างการตัดสินใจ สามารถเพิกเฉยต่อบุคคลaและdคุณสมบัติและแก้ปัญหาได้ด้วยการa+d<0ตัดสินใจเพียงครั้งเดียว

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

a+d

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


1
นี่คือจุดที่แน่นอน ตัวเลือกของคุณสมบัติและตัวเลือกของรุ่นต้องได้รับการพิจารณาร่วมกัน เป็นข้อผิดพลาดทั่วไปในการลองและเหตุผลเกี่ยวกับการเลือกคุณสมบัติโดยไม่พิจารณาประเภทของรุ่นที่ใช้
Imran

1
ตัวอย่างเช่นหากคุณลองทำสิ่งเดียวกันกับการถดถอยเชิงเส้นแล้วaและdจะพอเพียงและเพิ่มa+dเป็นคุณลักษณะจะไม่สร้างความแตกต่าง
Imran

ฉันได้อัปเดตคำตอบเพื่อให้ชัดเจนยิ่งขึ้น
Imran

1
นอกจากนี้การแยกข้ามเส้นทแยงมุมต้องใช้การแบ่งหนึ่งครั้ง บันไดที่คุณวาด "ใช้แล้ว" เจ็ดทางแยก
สะสม

3

totaltotalattackdefenseattackdefensetotalattacktotaldefense17

นอกจากนี้นั่นไม่ใช่ปัญหาสำหรับผู้จัดประเภทเช่น kNN ว่า "ยอดรวม" จะใหญ่กว่า "การโจมตี" หรือ "การป้องกัน" เสมอหรือไม่ ดังนั้นแม้หลังจาก standarization เราจะมีคุณสมบัติที่มีค่าจากช่วงที่แตกต่างกันอย่างไร

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


1
เป็นเรื่องจริงเหรอ? แน่นอนในตัวแบบเชิงเส้นอย่างง่ายมันไม่ใช่: เมทริกซ์[attack, defense, total]นั้นอยู่ในอันดับที่ 2 แน่นอนฉันสามารถจินตนาการในบางสิ่งบางอย่างเช่นตัวแบบเชิงเส้นที่มีการลงโทษซึ่งสามารถสร้างความแตกต่างได้ แต่นั่นขึ้นอยู่กับสัญชาตญาณ คุณช่วยอธิบายได้ไหมว่าทำไมattackและหากdefenseไม่สัมพันธ์กันอย่างรุนแรงtotal(ซึ่งเกิดขึ้นเมื่อใดattackและdefenseมีความสัมพันธ์เชิงลบอย่างรุนแรง) ทำไมจึงtotalเป็นประโยชน์
หน้าผา AB

1
@CliffAB ในอดีตฉันเป็นกะล่อนเล็กน้อยที่นี่ ฉันพูดถูกว่าคุณสมบัติที่สร้างขึ้นจะมีประโยชน์เมื่อมันไม่สัมพันธ์อย่างมากกับตัวทำนายอื่น ๆ และนั่นtotalไม่จำเป็นต้องมีความสัมพันธ์อย่างยิ่งกับattackหรือdefenseแต่คุณจะไม่เคยใช้ตัวทำนายสองตัวและผลรวมของพวกมันในรูปแบบเดียวกัน พึ่งพากับหมายถึงความสัมพันธ์ที่แข็งแกร่งระหว่างบางสองในสาม
Kodiologist

1

เพื่อให้คำตอบทั่วไปวิศวกรรมฟีเจอร์ในกรณีส่วนใหญ่นั้นเกี่ยวกับการแยกฟีเจอร์ที่มีความหมายออกจากข้อมูลของคุณดังนั้นถ้าคุณให้ข้อมูลเพิ่มเติมกับโมเดลของคุณมันควรจะทำงานได้ดีกว่า สมมติว่าข้อมูลของคุณประกอบด้วยที่อยู่อีเมลในรูปแบบ 'name.surname@domain.country-code' หากคุณใช้ตามที่เป็นในแบบจำลองของคุณแต่ละคนจะมีลักษณะเฉพาะด้วยอีเมลที่ไม่ซ้ำกันดังนั้นสิ่งนี้จะไม่บอกอะไรเรามากนัก มันจะบอกเราว่าอีเมลหนึ่งอาจเป็นของบุคคลอื่นแล้ว ด้วยคุณสมบัติทางวิศวกรรมจากที่อยู่ดังกล่าวคุณสามารถดึงข้อมูลเกี่ยวกับเพศ (ชื่อ) ที่เป็นไปได้ภูมิหลังของครอบครัวและเชื้อชาติ (นามสกุล) สัญชาติ (โดเมน) และอื่น ๆ อีกมากมาย - มันให้ข้อมูลที่สวยมากใช่ไหม


1

คุณพยายามทำอะไรให้สำเร็จด้วย "คุณสมบัติ" ทั้งหมดของคุณ? หากคุณเปรียบเทียบฮีโร่การโจมตีและการป้องกันอาจมีประโยชน์มากกว่า หากคุณจะพบประเภทของการสร้าง (วิธีการเชิงเชิงเทียบกับวิธีการเชิงรับ) จะมีประโยชน์บางทีการโจมตี / การป้องกันอาจมีประโยชน์มากกว่า หรือMyAttack - YourDefenseมีประโยชน์มากกว่า

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

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