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


13

ฉันเข้าใจแนวคิดของการปรับเมทริกซ์ข้อมูลเพื่อใช้ในตัวแบบการถดถอยเชิงเส้น ตัวอย่างเช่นใน R คุณสามารถใช้:

scaled.data <- scale(data, scale=TRUE)

คำถามเดียวของฉันคือสำหรับการสังเกตใหม่ที่ฉันต้องการทำนายค่าผลลัพธ์พวกเขาจะปรับขนาดได้อย่างถูกต้องอย่างไร มันจะเป็นscaled.new <- (new - mean(data)) / std(data)อย่างไร


1
เพื่อให้ได้ค่ากลับมาทำy = y_esc * sd(y) + mean(y)แต่มันจะยุ่งกับคุณสมบัติของแบบจำลองฉันเดาดังนั้นฉันยังรอคำตอบทางเทคนิคมากขึ้นด้วย!
เฟอร์นันโด

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

คำตอบ:


13

คำตอบสั้น ๆ สำหรับคำถามของคุณคือใช่ - นิพจน์สำหรับ scaled.new นั้นถูกต้อง (ยกเว้นที่คุณต้องการsdแทนที่จะเป็นstd)

อาจเป็นเรื่องที่น่าสังเกตว่าสเกลนั้นมีอาร์กิวเมนต์ที่เป็นตัวเลือกซึ่งคุณสามารถใช้:

scaled.new <- scale(new, center = mean(data), scale = sd(data))

นอกจากนี้วัตถุที่ส่งคืนโดยสเกล (scaled.data) มีแอตทริบิวต์ที่ถือการจัดกึ่งกลางตัวเลขและการขยายที่ใช้ (ถ้ามี) ซึ่งคุณสามารถใช้:

scaled.new <- scale(new, attr(scaled.data, "scaled:center"), attr(scaled.data, "scaled:scale"))

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


ฉันหวังว่าจะมีวิธีที่ง่ายกว่าเล็กน้อยในการทำสิ่งนี้เช่นscaled.new <- scale(new, use.attrs = scaled.data)
wordforthewise

@ คำพูดต่อไปมันจะไม่ยากที่จะเขียน wrapper สำหรับ scale.default เพื่อให้บรรลุ ฉันสงสัยว่า R-core จะให้ความสำคัญสูง
user20637

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