ที่นี่ @gung อ้างอิงถึงกฎ. 632+ การค้นหาโดย Google อย่างรวดเร็วไม่ได้ให้คำตอบที่เข้าใจง่ายว่ากฎนี้หมายถึงอะไรและใช้เพื่อจุดประสงค์ใด มีคนช่วยอธิบายกฎ. 632+ หน่อยได้ไหม
ที่นี่ @gung อ้างอิงถึงกฎ. 632+ การค้นหาโดย Google อย่างรวดเร็วไม่ได้ให้คำตอบที่เข้าใจง่ายว่ากฎนี้หมายถึงอะไรและใช้เพื่อจุดประสงค์ใด มีคนช่วยอธิบายกฎ. 632+ หน่อยได้ไหม
คำตอบ:
ฉันจะไปที่ตัวประมาณ 0.632 แต่มันจะเป็นการพัฒนาที่ค่อนข้างยาว:
สมมติว่าเราต้องการทำนายด้วยโดยใช้ฟังก์ชันซึ่งอาจขึ้นอยู่กับพารามิเตอร์บางอย่างที่ประเมินโดยใช้ข้อมูลเช่น
การประมาณค่าผิดพลาดโดยการคาดการณ์คือโดยที่คือฟังก์ชันการสูญเสีย มักเรียกว่าข้อผิดพลาดในการฝึกอบรม Efron และคณะ เรียกมันว่าอัตราข้อผิดพลาดที่ชัดเจนหรืออัตราการประกาศใหม่ มันไม่ดีมากเพราะเราจะใช้ข้อมูลของเราเพื่อให้พอดีกับFส่งผลให้ถูกทำให้ลำเอียงลง คุณต้องการที่จะทราบวิธีที่ดีรูปแบบของคุณไม่ในการทำนายค่าใหม่L(xi,yi)f¯errf
บ่อยครั้งที่เราใช้การตรวจสอบความถูกต้องไขว้เป็นวิธีง่ายๆในการประเมินข้อผิดพลาดการคาดการณ์ตัวอย่างพิเศษที่คาดหวัง
วิธีที่นิยมทำเช่นนี้คือทำการตรวจสอบข้าม -fold แบ่งข้อมูลของคุณออกเป็นกลุ่ม (เช่น 10) สำหรับแต่ละกลุ่มพอดีกับรูปแบบของคุณที่เหลือกลุ่มและทดสอบบน TH กลุ่ม ข้อผิดพลาดการคาดการณ์ตัวอย่างเพิ่มเติมที่ผ่านการตรวจสอบแล้วของเรานั้นเป็นเพียงค่าเฉลี่ยโดยที่เป็นฟังก์ชั่นดัชนีบางอย่างที่ระบุพาร์ติชันที่การสังเกตได้รับการจัดสรรและเป็นค่าที่คาดการณ์ของโดยใช้ข้อมูลที่ไม่ได้อยู่ในชุด thK k K - 1 k
ประมาณนี้จะอยู่ที่ประมาณเป็นกลางสำหรับข้อผิดพลาดการทำนายเป็นจริงเมื่อและมีความแปรปรวนขนาดใหญ่และมีมากขึ้นการคำนวณราคาแพงสำหรับขนาดใหญ่Kดังนั้นอีกครั้งที่เราเห็นอคติ - ความแปรปรวนการค้าที่เล่น
แทนที่จะใช้การตรวจสอบความถูกต้องข้ามเราสามารถใช้ bootstrap เพื่อประเมินข้อผิดพลาดการทำนายตัวอย่างแบบพิเศษ Bootstrap resampling สามารถใช้ในการประเมินการกระจายตัวตัวอย่างของสถิติใด ๆ หากข้อมูลการฝึกอบรมของเราคือจากนั้นเราสามารถนึกถึงการเก็บตัวอย่าง (พร้อมการแทนที่) จากชุดนี้โดยที่แต่ละชุดเป็นตัวอย่างตัวอย่าง ตอนนี้เราสามารถใช้ตัวอย่างบูตสแตรปของเราเพื่อประเมินข้อผิดพลาดในการทำนายตัวอย่างแบบพิเศษ:โดยที่คือค่าที่ทำนายไว้ที่จากแบบจำลองที่พอดีกับ
อย่างไรก็ตามถ้าเรามีฟังก์ชั่นการคาดคะเนที่สูงเกินไป (เช่น ) ดังนั้นแม้แต่ตัวประมาณ. 632 ก็จะเอนเอียงลง เครื่องมือประมาณการ. 632+ ได้รับการออกแบบมาให้มีการประนีประนอมระหว่างและน้อย พร้อม โดยที่คืออัตราข้อผิดพลาดที่ไม่มีข้อมูลประมาณโดยการประเมินรูปแบบการทำนายของชุดค่าผสมที่เป็นไปได้ทั้งหมด เป้าหมายและพยากรณ์x_i
นี่วัดอัตราการ overfitting สัมพัทธ์ หากไม่มีการ overfitting (R = 0 เมื่อ ) นี่จะเท่ากับ. 632
คุณจะพบข้อมูลเพิ่มเติมในส่วนที่ 3 นี้1กระดาษ แต่เพื่อสรุปถ้าคุณเรียกตัวอย่างของตัวเลขจากวาดแบบสุ่มและมีการแทนที่มีค่าเฉลี่ยประมาณองค์ประกอบที่ไม่ซ้ำกัน
เหตุผลมีดังนี้ เราเติมโดยการสุ่มตัวอย่างครั้ง (แบบสุ่มและด้วยการเปลี่ยน) จาก\} พิจารณาโดยเฉพาะอย่างยิ่งดัชนี\}
แล้ว:
และ
และนี่คือความจริง (สังหรณ์ใจเนื่องจากเราสุ่มตัวอย่างด้วยการแทนที่ความน่าจะเป็นไม่ได้ขึ้นอยู่กับ )
ดังนั้น
นอกจากนี้คุณยังสามารถจำลองเล็ก ๆ น้อย ๆ นี้เพื่อตรวจสอบคุณภาพของการประมาณค่า (ซึ่งขึ้นอยู่กับ ):
n <- 100
fx01 <- function(ll,n){
a1 <- sample(1:n, n, replace=TRUE)
length(unique(a1))/n
}
b1 <- c(lapply(1:1000,fx01,n=100), recursive=TRUE)
mean(b1)
1. Bradley Efron และ Robert Tibshirani (1997) การปรับปรุงการตรวจสอบข้าม: วิธีการบูต . 632+ วารสารของสมาคมอเมริกันสถิติฉบับ 92, หมายเลข 438, pp. 548--560
จากประสบการณ์ของฉันโดยพื้นฐานจากการจำลองสถานการณ์ bootstrap รุ่น 0.632 และ 0.632+ นั้นมีความจำเป็นเท่านั้นเนื่องจากปัญหาร้ายแรงที่เกิดจากการใช้กฎการให้คะแนนความแม่นยำที่ไม่เหมาะสมกล่าวคือสัดส่วน "จำแนก" อย่างถูกต้อง เมื่อคุณใช้กฎการให้คะแนนที่เหมาะสม (เช่นคะแนน deviance-based หรือ Brier) หรือกึ่งกึ่งกลาง (เช่น -index = AUROC) มาตรฐาน bootstrap การมองโลกในแง่ดีของ Efron-Gong ก็ใช้ได้ดี
คำตอบเหล่านั้นมีประโยชน์มาก ฉันหาวิธีสาธิตด้วยคณิตศาสตร์ไม่ได้ดังนั้นฉันจึงเขียนโค้ด Python ที่ใช้งานได้ดี:
from numpy import mean
from numpy.random import choice
N = 3000
variables = range(N)
num_loop = 1000
# Proportion of remaining variables
p_var = []
for i in range(num_loop):
set_var = set(choice(variables, N))
p=len(set_var)/float(N)
if i%50==0:
print "value for ", i, " iteration ", "p = ",p
p_var.append(p)
print "Estimator of the proportion of remaining variables, ", mean(p_var)