ฉันมีคำถามเกี่ยวกับวิธีการที่แตกต่างกันสองวิธีจากห้องสมุดที่แตกต่างกันซึ่งดูเหมือนจะทำงานเดียวกัน ฉันกำลังพยายามสร้างแบบจำลองการถดถอยเชิงเส้น
นี่คือรหัสที่ฉันใช้ห้องสมุด statsmodel กับ OLS:
X_train, X_test, y_train, y_test = cross_validation.train_test_split(x, y, test_size=0.3, random_state=1)
x_train = sm.add_constant(X_train)
model = sm.OLS(y_train, x_train)
results = model.fit()
print "GFT + Wiki / GT R-squared", results.rsquared
เอกสารนี้พิมพ์GFT + Wiki / GT R-squared 0.981434611923
และอันที่สองคือ scikit Learn library วิธีการโมเดลเชิงเส้น:
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
print 'GFT + Wiki / GT R-squared: %.4f' % model.score(X_test, y_test)
เอกสารนี้พิมพ์GFT + Wiki / GT R-squared: 0.8543
ดังนั้นคำถามของฉันคือทั้งสองวิธีพิมพ์ผลลัพธ์ R ^ 2 ของเรา แต่วิธีหนึ่งพิมพ์ออกมา 0.98 และอีกวิธีหนึ่งคือ 0.85
จากความเข้าใจของฉัน OLS ทำงานกับชุดข้อมูลการฝึกอบรม ดังนั้นคำถามของฉัน
- มีวิธีการที่ใช้กับชุดข้อมูลทดสอบกับ OLS หรือไม่
- คะแนนชุดข้อมูลการฝึกอบรมให้ความหมายกับเราหรือไม่ (ใน OLS เราไม่ได้ใช้ชุดข้อมูลทดสอบ) จากความรู้ที่ผ่านมาของเราเราต้องทำงานกับข้อมูลการทดสอบ
- อะไรคือความแตกต่างระหว่าง OLS และ scikit การถดถอยเชิงเส้น เราใช้อันไหนในการคำนวณคะแนนของโมเดล?
ขอบคุณสำหรับความช่วยเหลือ