Tôi có một câu hỏi về hai phương pháp khác nhau từ các thư viện khác nhau dường như làm cùng một công việc. Tôi đang cố gắng để làm cho mô hình hồi quy tuyến tính.
Đây là mã mà tôi sử dụng thư viện statsmodel với 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
Điều này in ra GFT + Wiki / GT R-bình phương 0.981434611923
và cái thứ hai là scikit learn library Phương thức mô hình tuyến tính:
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)
Điều này in ra GFT + Wiki / GT R-bình phương: 0,8543
Vì vậy, câu hỏi của tôi là cả hai phương pháp đều in kết quả R ^ 2 của chúng tôi nhưng một phương pháp được in ra 0,98 và phương pháp còn lại là 0,85.
Từ sự hiểu biết của tôi, OLS làm việc với tập dữ liệu đào tạo. Vì vậy, câu hỏi của tôi,
- Có cách nào làm việc với tập dữ liệu thử nghiệm với OLS không?
- Điểm số của bộ dữ liệu traning có cho chúng ta bất kỳ ý nghĩa nào không (Trong OLS chúng tôi không sử dụng bộ dữ liệu thử nghiệm)? Từ kiến thức trước đây của tôi, chúng tôi phải làm việc với dữ liệu thử nghiệm.
- Sự khác biệt giữa OLS và hồi quy tuyến tính scikit là gì. Cái nào chúng ta sử dụng để tính điểm của mô hình?
Cảm ơn vì bất kì sự giúp đỡ.