Phương pháp tổ hợp (Ensemble)

Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Lisa Stuart

Data Scientist

Kỹ thuật học tổ hợp

  • Bootstrap Aggregation
  • Boosting
  • Xếp chồng mô hình (stacking)
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Đo lỗi

Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Cây nông

Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Cây cao

Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Cây to

Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Mô hình tuyến tính

Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Bias

Giả định quan hệ tuyến tính (sai)

  • Độ chệch (bias) cao
  • Underfitting
  • Khái quát hóa kém
  • Tăng độ phức tạp sẽ giảm bias
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Mô hình phức tạp

Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Variance

Mô hình rất phức tạp:

  • Phương sai (variance) cao
  • Overfitting
  • Khái quát hóa kém
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Đánh đổi Bias–Variance

1 Nguồn: Elements of Statistical Learning 2 Trevor Hastie, Robert Tibshirani, Jerome Friedman
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Bagging (Bootstrap aggregation)

  • Mẫu bootstrap
    • Chọn mẫu có hoàn lại (with replacement)
    • Cùng một hàng có thể được chọn
  • Xây mô hình cho từng mẫu
  • Trung bình đầu ra
  • Giảm variance

1 https://medium.com/@rrfd/boosting-bagging-and-stacking-ensemble-methods-with-sklearn-and-mlens-a455c0c982de
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Boosting

  • Nhiều mô hình xây tuần tự
  • Tăng trọng số cho dự đoán sai
  • Giảm bias

1 https://blog.bigml.com/2017/03/14/introduction-to-boosted-trees/
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Xếp chồng mô hình (Model stacking)

  • Dự đoán Mô hình 1
  • Dự đoán Mô hình 2...
  • Dự đoán Mô hình N
  • Xếp chồng để có mô hình chính xác cao hơn
    • Dùng dự đoán của mô hình cơ sở (Mô hình N) làm đầu vào cho mô hình tầng 2

1 http://supunsetunga.blogspot.com/
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Gói Vecstack

# import modules
from sklearn.ensemble import BaggingClassifier
from sklearn.ensemble import AdaBoostClassifier
from xgboost import XGBClassifier
from vecstack import stacking

# Create list: stacked_models
stacked_models = [BaggingClassifier(n_estimators=25, random_state=123), AdaBoostClassifier(n_estimators=25, random_state=123)]

# Stack the models: stack_train, stack_test
stack_train, stack_test = stacking(stacked_models, X_train, y_train, X_test, regression=False, mode='oof_pred_bag', 
                                   needs_proba=False, metric=accuracy_score, n_folds=4, stratified=True, shuffle=True, random_state=0, verbose=2)

# Initialize and fit 2nd level model
final_model = XGBClassifier(random_state=123, n_jobs=-1, learning_rate=0.1, n_estimators=10, max_depth=3)
final_model_fit = final_model.fit(stack_train, y_train)

# Predict: stacked_pred
stacked_pred = final_model.predict(stack_test)

# Final prediction score
print('Final prediction score: [%.8f]' % accuracy_score(y_test, stacked_pred))
1 https://towardsdatascience.com/automate-stacking-in-python-fc3e7834772e
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Hàm cho ensemble

Thuật toán Hàm
Bootstrap aggregation sklearn.ensemble.BaggingClassifier()
Boosting sklearn.ensemble.AdaBoostClassifier()
XGBoost xgboost.XGBClassifier()
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Bagging vs boosting

Kỹ thuật Bias Variance
Bootstrap aggregation (Bagging) Tăng Giảm
Boosting Giảm Tăng
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Câu hỏi trắc nghiệm: kỹ thuật ensemble chính

Phát biểu nào sau đây đúng về ba kỹ thuật chính của phương pháp tổ hợp trong ML? Chọn phát biểu đúng:

  • Boosting làm giảm phương sai của mô hình.
  • Boosting làm tăng khả năng dự đoán của bộ phân loại.
  • Bagging (bootstrap aggregation) làm giảm bias.
  • Xếp chồng mô hình kết hợp dự đoán từ các mô hình riêng lẻ để tạo mô hình chính xác hơn.
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Đáp án: kỹ thuật ensemble chính

Phát biểu nào sau đây đúng về ba kỹ thuật chính của phương pháp tổ hợp trong ML? Đáp án đúng là:

  • Xếp chồng mô hình kết hợp dự đoán từ các mô hình riêng lẻ để tạo mô hình chính xác hơn. (Mô hình cuối lấy dự đoán của nhiều mô hình con hầu như luôn tốt hơn từng mô hình đơn lẻ.)
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Các đáp án sai: kỹ thuật ensemble chính

Phát biểu nào sau đây đúng về ba kỹ thuật chính của phương pháp tổ hợp trong ML?

  • Boosting làm giảm phương sai của mô hình. (Boosting làm giảm bias và thường làm tăng variance để đạt điểm cân bằng cho khái quát hóa tốt.)
  • Boosting làm tăng khả năng dự đoán của bộ phân loại. (Boosting giảm bias; độ chính xác có thể tăng hoặc không.)
  • Bagging (bootstrap aggregation) làm giảm bias. (Bagging làm giảm variance.)
Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Ayo berlatih!

Luyện tập câu hỏi phỏng vấn Machine Learning bằng Python

Preparing Video For Download...