จะทำให้ข้อมูลเป็นมาตรฐานระหว่าง -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=xminxmaxxminx
x[0,1]

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

x=2xminxmaxxminx1

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

x=(ba)xminxmaxxminx+a

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

-1

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

Xout=(ba)XinminXinmaxXinminXin+a

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

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

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

ที่ไหน

σout=ba6

(ฉันยอมรับว่าการใช้ 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.