Tạo đặc trưng cho train và test
Trước khi fit mô hình tuyến tính, bạn cần thêm một hằng số vào các đặc trưng để mô hình có hệ số chặn (intercept).
Bạn cũng sẽ tạo đặc trưng cho train và test. Nhờ vậy, ta fit mô hình trên tập train và đánh giá hiệu năng trên tập test. Ta luôn cần kiểm tra hiệu năng trên dữ liệu mà mô hình chưa thấy để bảo đảm không bị overfitting, tức là ghi nhớ quá sát các mẫu trong dữ liệu huấn luyện.
Với chuỗi thời gian như thế này, ta thường dùng dữ liệu cũ nhất làm tập huấn luyện và dữ liệu mới nhất làm tập kiểm tra. Cách này giúp đánh giá hiệu năng của mô hình trên dữ liệu gần đây nhất, mô phỏng thực tế hơn việc dự đoán trên dữ liệu chưa từng thấy.
Bài tập này là một phần của khóa học
Machine Learning cho Tài chính bằng Python
Hướng dẫn bài tập
- Import thư viện
statsmodels.apivới bí danhsm. - Thêm một hằng số vào biến
featuresbằng hàm.add_constant()của statsmodels. - Đặt
train_sizebằng 85% tổng số điểm dữ liệu (số hàng) dùng thuộc tính.shape[0]củafeatureshoặctargets. - Chia
linear_featuresvàtargetsthành các tập train và test bằngtrain_sizevà cú pháp đánh chỉ mục Python (ví dụ[start:stop]).
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Import the statsmodels.api library with the alias sm
___
# Add a constant to the features
linear_features = sm.____(features)
# Create a size for the training set that is 85% of the total number of samples
train_size = int(0.85 * ____)
train_features = linear_features[:train_size]
train_targets = targets[____]
test_features = linear_features[train_size:]
test_targets = targets[train_size:]
print(linear_features.shape, train_features.shape, test_features.shape)