Quá khớp và tổ hợp mô hình

Machine Learning cho Tài chính bằng Python

Nathan George

Data Science Professor

quá khớp

Machine Learning cho Tài chính bằng Python

Đơn giản hóa mô hình

mạng giới hạn

Machine Learning cho Tài chính bằng Python

Tùy chọn cho neural network

Các cách xử lý quá khớp:

  • Giảm số nút
  • Dùng regularization L1/L2
  • Dropout
  • Kiến trúc autoencoder
  • Early stopping
  • Thêm nhiễu vào dữ liệu
  • Ràng buộc max-norm
  • Tổ hợp mô hình (Ensembling)
Machine Learning cho Tài chính bằng Python

Dropout

dropout

Machine Learning cho Tài chính bằng Python

Dropout trong keras

from keras.layers import Dense, Dropout

model = Sequential() model.add(Dense(500, input_dim=scaled_train_features.shape[1], activation='relu')) model.add(Dropout(0.5)) model.add(Dense(100, activation='relu')) model.add(Dense(1, activation='linear'))
Machine Learning cho Tài chính bằng Python

So sánh trên tập kiểm tra

Giá trị R$^2$ trên AMD khi không dùng dropout:

  • train: 0.91
  • test: -0.72

Khi dùng dropout:

  • train: 0.46
  • test: -0.22
Machine Learning cho Tài chính bằng Python

Tổ hợp mô hình

random forest

Machine Learning cho Tài chính bằng Python

Triển khai tổ hợp mô hình

# tạo dự đoán từ 2 mô hình neural net
test_pred1 = model_1.predict(scaled_test_features)
test_pred2 = model_2.predict(scaled_test_features)

# xếp ngang các dự đoán và lấy trung bình theo hàng test_preds = np.mean(np.hstack((test_pred1, test_pred2)), axis=1)
Machine Learning cho Tài chính bằng Python

So sánh ensemble

Điểm R$^2$ của Mô hình 1 trên tập test:

  • -0.179

mô hình 2:

  • -0.148

ensemble (trung bình dự đoán):

  • -0.146
Machine Learning cho Tài chính bằng Python

Dropout và ensemble!

Machine Learning cho Tài chính bằng Python

Preparing Video For Download...