การตีความการประเมินความผิดพลาดนอกถุงสำหรับ RandomForestRegressor


9

ฉันใช้การสุ่มตัวอย่างแบบสุ่มของฟอเรสต์ในข้อมูลของฉันและฉันเห็นว่าคะแนน oob นั้นได้มาเป็น 0.83 ฉันไม่แน่ใจว่ามันจะเป็นเช่นนี้ได้อย่างไร ฉันหมายความว่าเป้าหมายของฉันมีค่าสูงในช่วง 10 ^ 7 ดังนั้นถ้าเป็น MSE มันน่าจะสูงกว่านี้มาก ฉันไม่เข้าใจสิ่งที่ 0.83 มีความหมายที่นี่

ฉันใช้การสุ่มตัวอย่าง RandomForestRegressor ของงูใหญ่ของชุดเครื่องมือ sklearn

ฉันทำ

model = RandomForestRegressor (max_depth = 7, n_estimators = 100, oob_score = True, n_jobs = -1) model.fit (trainX, trainY)

จากนั้นฉันเห็น model.oob_score_ และรับค่าเช่น 0.83809026152005295


@Momo ฉันกำลังใช้ตัวสุ่มของป่าช้าป่าเถื่อนของไพ ธ อน ฉันแค่ใช้โมเดลเช่น
user34790

คำตอบ:


6

เพื่อเปรียบเทียบความจริงภาคพื้นดิน (เช่นค่าเป้าหมายที่ถูกต้อง / จริง) กับค่าเป้าหมายโดยประมาณ (เช่นที่คาดการณ์ไว้) โดยการสุ่มฟอเรสต์ scikit-Learn ไม่ได้ใช้ MSE แต่ (ต่างจากMATLABหรือBreiman 1996b ) ) อย่างที่คุณเห็นในโค้ดของforest.py :R2

self.oob_score_ = 0.0
for k in xrange(self.n_outputs_):
    self.oob_score_ += r2_score(y[:, k], predictions[:, k])
self.oob_score_ /= self.n_outputs_

r2_score()คำนวณค่าสัมประสิทธิ์ของการกำหนด aka R2ซึ่งมีคะแนนดีที่สุดคือ 1.0 และค่าต่ำกว่าแย่ลง

FYI:

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