วิธีปรับมาตรฐานข้อมูลสำหรับโครงข่ายประสาทและฟอเรสต์ตัดสินใจ


10

ฉันมีชุดข้อมูลที่มี 20,000 ตัวอย่างแต่ละตัวมีคุณสมบัติที่แตกต่างกัน 12 แบบ ตัวอย่างแต่ละตัวอย่างเป็นหมวดหมู่ 0 หรือ 1 ฉันต้องการฝึกโครงข่ายประสาทและกลุ่มฟอเรสต์ตัดสินใจจัดกลุ่มตัวอย่างเพื่อให้ฉันสามารถเปรียบเทียบผลลัพธ์และเทคนิคทั้งสองได้

สิ่งแรกที่ฉันสะดุดคือการฟื้นฟูข้อมูลที่เหมาะสม คุณลักษณะหนึ่งอยู่ในช่วงอีกคุณลักษณะหนึ่งในและมีคุณลักษณะหนึ่งที่ใช้ค่า 8 และบางครั้งส่วนใหญ่ 7 ดังนั้นเมื่อฉันอ่านในแหล่งที่แตกต่างกัน ข้อมูลเป็นสิ่งสำคัญสำหรับเครือข่ายประสาท ดังที่ฉันค้นพบมีวิธีที่เป็นไปได้มากมายในการทำให้ข้อมูลเป็นมาตรฐานเช่น:[0,106][30,40]

  1. การปรับสภาพให้ต่ำสุด - สูงสุด : ช่วงอินพุตจะถูกแปลงเชิงเส้นเป็นช่วง (หรืออีกทางหนึ่งมีความสำคัญหรือไม่?)[0,1][1,1]
  2. การทำให้เป็นมาตรฐานของ Z : ข้อมูลถูกแปลงให้มีค่าเฉลี่ยศูนย์และความแปรปรวนของหน่วย:
    ynew=yoldmeanVar

ฉันควรเลือกบรรทัดฐานใด การฟื้นฟูสภาพป่าเป็นสิ่งจำเป็นสำหรับการตัดสินใจด้วยหรือไม่? ด้วยการทำให้เป็นมาตรฐาน Z คะแนนคุณสมบัติที่แตกต่างของข้อมูลการทดสอบของฉันไม่ได้อยู่ในช่วงเดียวกัน นี่อาจเป็นปัญหาหรือไม่? คุณสมบัติทุกอย่างควรทำให้เป็นมาตรฐานด้วยอัลกอริทึมเดียวกันดังนั้นฉันจึงตัดสินใจใช้ Min-Max สำหรับคุณสมบัติทั้งหมดหรือ Z-Score สำหรับคุณสมบัติทั้งหมด

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

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

คำตอบ:


21

ฉันไม่เห็นด้วยกับความคิดเห็นอื่น

ครั้งแรกของทั้งหมดที่ฉันเห็นจำเป็นที่จะต้องข้อมูลปกติไม่มีต้นไม้ตัดสินใจ ต้นไม้ตัดสินใจทำงานโดยการคำนวณคะแนน (ปกติเอนโทรปี) สำหรับแต่ละส่วนที่แตกต่างกันของข้อมูลx_i) การนำการแปลงไปใช้กับข้อมูลที่ไม่เปลี่ยนลำดับของข้อมูลไม่ทำให้เกิดความแตกต่าง(Xxi,X>xi)

ป่าสุ่มเป็นเพียงต้นไม้ตัดสินใจดังนั้นมันจึงไม่เปลี่ยนเหตุผลนี้

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

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

มันจะสร้างความแตกต่างเมื่อใด เมื่อคุณใช้ backpropagation แบบดั้งเดิมที่มีฟังก์ชั่นการเปิดใช้งาน sigmoid มันสามารถทำให้อิ่มตัว sigmoid อนุพันธ์

พิจารณาฟังก์ชัน sigmoid (สีเขียว) และอนุพันธ์ (สีน้ำเงิน):

sigmoid

จะเกิดอะไรขึ้นถ้าคุณทำไม่ปกติข้อมูลของคุณว่าข้อมูลของคุณจะถูกคูณด้วยน้ำหนักสุ่มและคุณจะได้รับสิ่งที่ต้องการ 0 อนุพันธ์ของ sigmoid คือ (โดยประมาณ) ศูนย์และกระบวนการฝึกอบรมไม่ได้เคลื่อนไหว เครือข่ายประสาทที่คุณลงท้ายด้วยเป็นเพียงเครือข่ายประสาทที่มีน้ำหนักแบบสุ่ม (ไม่มีการฝึกอบรม)s(9999)=0

สิ่งนี้ช่วยให้เรารู้หรือไม่ว่าฟังก์ชั่นการฟื้นฟูสภาพปกติที่ดีที่สุดคืออะไร แต่แน่นอน! ก่อนอื่นสิ่งสำคัญคือการใช้การทำให้เป็นมาตรฐานที่ศูนย์ข้อมูลของคุณเพราะการใช้งานส่วนใหญ่จะเริ่มต้นอคติที่ศูนย์ ฉันจะปกติระหว่าง -0.5 และ 0.5 \แต่คะแนนมาตรฐานก็ดีเช่นกันXminXmaxXminX0.5

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

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


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

หวังว่านี่จะช่วยได้


1
คำตอบที่ดีฉันจะเพิ่มว่ามันขึ้นอยู่กับการกระจายของข้อมูลที่คุณกำลังติดต่อด้วยและไม่ว่าคุณจะลบค่าผิดปกติหรือไม่ ข้อมูลปกติจะดูดีมากถ้าคุณสร้างมาตรฐาน อย่างไรก็ตามการกระจายที่สม่ำเสมออาจดูดีขึ้นมากเมื่อใช้การทำให้เป็นมาตรฐานต่ำสุด / สูงสุด นอกจากนี้การแจกแจงบันทึกปกติด้วย sigma = 10 อาจซ่อนพฤติกรรมที่น่าสนใจจำนวนมากใกล้กับศูนย์หากคุณต่ำสุด / ทำให้เป็นปกติ
AN6U5

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