จะทำให้ข้อมูลเป็นมาตรฐานระหว่าง -1 ถึง 1 ได้อย่างไร


36

ฉันเคยเห็นสูตรการปรับสภาพ min-max แล้ว แต่นั่นทำให้ค่าปกติอยู่ระหว่าง 0 ถึง 1 ฉันจะทำให้ข้อมูลของฉันเป็นมาตรฐานระหว่าง -1 ถึง 1 ได้อย่างไร ฉันมีทั้งค่าลบและค่าบวกในเมทริกซ์ข้อมูลของฉัน


1
หากคุณกำลังทำงานใน R ดูหัวข้อนี้สำหรับตัวเลือกไม่กี่ โดยเฉพาะอย่างยิ่งความคิดเห็นเกี่ยวกับคำตอบที่ยอมรับมีฟังก์ชั่นนี้ซึ่งคุณตั้ง 'newMax' เป็น 1 และ 'newMin' เป็น -1 และเรียกใช้ฟังก์ชันในข้อมูลของคุณ
— mtreg

คุณสามารถค้นหาการอ้างอิงได้ที่วิกิพีเดียดังต่อไปนี้: en.wikipedia.org/wiki/Normalization__statistics)
— salem

จาวาสคริตัวอย่างที่นำมาจากที่นี่ ฟังก์ชัน convertRange (ค่า, r1, r2) {return (value - r1 [0]) * (r2 [1] - r2 [0]) / (r1 [1] - r1 [0]) + r2 [0]; } convertRange (328.17, [300.77, 559.22], [1, 10]); >>> 1.9541497388276272
— Giuseppe Canale

1
@covfefe หากคุณยังอยู่ใกล้คุณอาจต้องการตอบหนึ่งในคำตอบ
— Simone

คำตอบ:


97

คุณปกติคุณลักษณะของxใน[0,1]

x′=x−minxmaxx−minx
x[0,1]

หากต้องการทำให้ปกติในคุณสามารถใช้:[−1,1]

x″=2x−minxmaxx−minx−1

โดยทั่วไปคุณสามารถรับตัวแปรใหม่ใน[ a , b ] :x‴[a,b]

x‴=(b−a)x−minxmaxx−minx+a

15
สุจริตฉันไม่มีการอ้างอิงสำหรับสิ่งนี้ มันเป็นเพียงการแปลงเชิงเส้นของตัวแปรสุ่ม ดูผลของการแปลงเชิงเส้นที่สนับสนุนตัวแปรสุ่ม
— Simone

-1

ฉันทดสอบข้อมูลที่สร้างแบบสุ่มและ

Xout=(b−a)Xin−minXinmaxXin−minXin+a

ไม่รักษารูปร่างของการกระจาย ต้องการดูที่มาของการใช้ฟังก์ชันของตัวแปรสุ่ม

วิธีการที่ใช้รักษารูปร่างให้ฉันได้ใช้:

Xout=Xin−μinσin⋅σout+μout

ที่ไหน

σout=b−a6

(ฉันยอมรับว่าการใช้ 6 เป็นบิตสกปรก ) และ

μout=b+a2

และ

aและbเป็นช่วงที่ต้องการ เพื่อให้เป็นต่อคำถามเดิมจะ = - 1และข= 1a=−1b=1

ฉันมาถึงผลลัพธ์จากเหตุผลนี้

Zout=Zin

Xout−μoutσout=Xin−μinσin


3
คุณแน่ใจหรือไม่ว่าสิ่งนี้รับประกันว่าข้อมูลที่ถูกแปลงจะอยู่ภายในขอบเขตหรือไม่? ใน R set.seed(1); scale(rnorm(1000))*.333ลอง: 1.230871ฉันจะได้รับสูงสุดของ วิธีการของคุณดูเหมือนจะเป็นเพียงแค่ปรับแต่งข้อมูลที่เป็นมาตรฐานมากกว่าที่จะทำให้เป็นมาตรฐานตามที่ร้องขอ โปรดทราบว่าคำถามไม่ได้ขอวิธีการที่จะรักษารูปร่างของการกระจาย (ซึ่งจะเป็นข้อกำหนดที่แปลกสำหรับการทำให้เป็นมาตรฐาน)
— gung - Reinstate Monica

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

1
aข

2
@whuber จริง แต่ฉันหมายถึงว่าในชุดข้อมูลที่กำหนด (เช่นการรักษาข้อมูลที่คงที่) พวกเขายังคงอยู่ในลักษณะเดียวกับค่าเฉลี่ยตัวอย่างและฟังก์ชั่นเบี่ยงเบนมาตรฐานตัวอย่างเป็นค่าคงที่เมื่อมาตรฐานชุดข้อมูล ความประทับใจของฉันคือว่า OP ต้องการทำให้ชุดข้อมูลเป็นมาตรฐานไม่ใช่การแจกจ่าย
— โนอาห์

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