
Bài giảng Lập trình Python cho máy học: Bài 10 - TS. Nguyễn Vinh Tiệp
lượt xem 1
download

Bài giảng "Lập trình Python cho máy học: Bài 10 - Xây dựng mô hình máy học" tập trung vào quy trình xây dựng mô hình máy học từ đầu đến cuối, bao gồm các bước huấn luyện, đánh giá và tối ưu hóa mô hình. Nội dung bao gồm cách chọn mô hình phù hợp, huấn luyện mô hình với dữ liệu, đánh giá hiệu suất mô hình qua các chỉ số như accuracy, precision, recall, F1-score, và sử dụng các kỹ thuật như cross-validation để đảm bảo mô hình không bị quá khớp. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình Python cho máy học: Bài 10 - TS. Nguyễn Vinh Tiệp
- ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN XÂY DỰNG MÔ HÌNH MÁY HỌC Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM 1
- NỘI DUNG I. Model Selection và Evaluation A. Holdout Validation B. Cross Validation C. Hyper-parameters Optimization D. Evaluation Metric II. Handle Imbalanced Data Method A. Resampling B. Cost sensitive learning C. Tools III. Error Analysis Model 14 May, 2024 Thực hiện bởi Trường Đại học Công nghệ Thông tin, ĐHQG-HCM 2
- Holdout Validation ❏ Một phương pháp đơn giản để đánh giá các mô hình trên dữ liệu chưa biết ❏ Chia dư liệu hiện tại thành các tập con riêng biệt để tạo thành tập huấn luyện và tập xác thực (và có thể tập kiểm tra) Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Vấn đề với Holdout Validation PP yêu cầu dành một phần dữ liệu để thử nghiệm (không được sử dụng cho mô hình huấn luyện) Sử dụng dữ liệu Có thể có vấn đề khi xử lý các tập dữ liệu nhỏ vì nó giới hạn lượng dữ liệu mà mô hình có thể học Vấn đề với Holdout Validation Phân chia ngẫu nhiên có thể dẫn đến “thiên vị” nếu nó không đại diện cho toàn bộ tập dữ liệu Thiên vị do lấy mẫu ngẫu nhiên Điều này có thể dẫn đến việc mô hình hoạt động tốt trên tập xác thực (validation) nhưng lại hoạt động kém trên dữ liệu thực tế chưa được nhìn thấy. 4 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Vấn đề với Holdout Validation Mô hình được tinh chỉnh nhiều lần để tối ưu hóa hiệu suất trên validation set → dẫn đến overfitting Overfitting trên Validation Set Điều này có thể dẫn đến hiệu suất tăng cao và khả năng khái quát hóa kém đối với dữ liệu mới, chưa được nhìn thấy Vấn đề với Holdout Validation Có thể dẫn đến sự khác biệt lớn trong hiệu suất mô hình Variance Phân chia ngẫu nhiên dữ liệu nhiều lần → mỗi lần chúng tôi có thể nhận được các kết quả khác nhau do tính chất ngẫu nhiên của việc phân chia. 5 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Cross Validation là gì? ❏ Cross validation (CV) là một kỹ thuật được sử dụng trong ML và thống kê để đánh giá hiệu suất của mô hình trên dữ liệu chưa nhìn thấy ❏ CV là phương pháp lấy mẫu lại sử dụng các phần khác nhau của dữ liệu để kiểm tra và huấn luyện mô hình trên các lần lặp khác nhau. https://scikit-learn.org/stable/modules/cross_validation.html 6 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Tại sao chúng ta cần Cross Validation? Cross Validation Validation Why CV is often preferred over simple validation strategy? Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Tại sao Cross Validation? Sử dụng tốt hơn dữ liệu hạn chế Đánh giá độ ổn định của mô hình Lựa chọn mô hình Ít nhạy cảm hơn và điều chỉnh siêu với việc phân tham số vùng dữ liệu Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- CV: Advantages & Disadvantages Disadvantages Advantages Tăng chi phí tính toán do huấn Thường được ưu tiên khi cần luyện và đánh giá mô hình nhiều ước tính chính xác và đáng tin lần cậy hơn về hiệu suất mô hình, đặc biệt là để lựa chọn mô hình và điều chỉnh siêu tham số Tập dữ liệu lớn → simple validation strategy có thể thực tế hơn 9 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Các loại Cross Validation KFold Leave One Out StratifiedKFold GroupKFold RepeatedKFold max_depth Độ sâu tối đa của cây. Nếu Không, thì các nút sẽ được mở rộng cho đến khi tất cả các lá đều thuần túy hoặc cho đến khi tất cả các lá chứa ít hơn mẫu min_samples_split Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- KFold ❏ Một mô hình được huấn luyện bằng cách sử dụng (k - 1) số fold làm dữ liệu huấn luyện, một fold gấp để xác thực ❏ Kết quả mô hình được đánh giá trên phần dữ liệu còn lại (được sử dụng làm bộ kiểm tra để tính toán độ đo hiệu suất, chẳng hạn như độ chính xác) 11 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Leave One Out (LOO) ❏ Với n mẫu, có n tập huấn luyện và n tập kiểm tra khác nhau (KFold với k = n) → chi phí tính toán đắt, phương sai cao ❏ Theo nguyên tắc chung, hầu hết các nghiên cứu đều cho rằng nên ưu tiên 5 hoặc 10-CV so với LOO (có thể đánh giá quá cao lỗi khái quát hóa) 12 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- StratifiedKFold Biến thể của KFold trả về các nếp gấp phân tầng: mỗi bộ chứa khoảng phần trăm mẫu của từng lớp mục tiêu dưới dạng bộ hoàn chỉnh 13 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- GroupKFold ❏ Biến thể của KFold đảm bảo rằng cùng một nhóm không có mặt trong cả tập huấn luyện và tập kiểm tra 14 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Tổng hợp các phương pháp chia CV Khi nào nên sử dụng các phương pháp? Việc phân phối dữ liệu là Dữ liệu không có mất cân uniform bằng giữa các lớp KFOLD Dữ liệu là sự mất cân bằng Đảm bảo rằng mô hình giữa các lớp Stratified KFOLD Dữ liệu có cấu trúc Group KFOLD được thử nghiệm trên nhóm nhóm chưa từng thấy trước đó, phải tránh overfitting 15 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Sklearn: Splitter Class sklearn.model_selection 16 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Lựa chọn mô hình ❏ Lựa chọn mô hình bao gồm việc chọn mô hình dự đoán dự kiến sẽ cung cấp hiệu suất tốt nhất trên dữ liệu trong tương lai. Đánh giá hiệu suất của từng mô hình bằng Xác định tập hợp các mô hình ứng viên cần một phương pháp cross-validation (CV) kiểm tra Một thực tế phổ biến là xác định một tập CV score cung cấp ước tính về hiệu suất khái hợp các mô hình ngày càng phức tạp quát hóa Step 2 Step 4 Step 1 Step 3 Huấn luyện từng mô hình ứng viên bằng cách Chọn mô hình có hiệu suất xác thực sử dụng dữ liệu huấn luyện cao nhất (CV score) 17 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Quy trình lựa chọn mô hình ❏ Phương pháp tiêu chuẩn bao gồm bốn bước chính: source:https://fraud-detection-handbook.github.io 18 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Hyper-parameters Optimization ❏ Siêu tham số là cài đặt hoặc cấu hình của mô hình được đặt trước khi quá trình huấn luyện bắt đầu và không thể học trực tiếp từ dữ liệu. ❏ Tối ưu hóa siêu tham số là quá trình tìm ra sự kết hợp tốt nhất của các siêu tham số cho một mô hình học máy nhằm tối ưu hóa hiệu suất của nó trên một tác vụ nhất định. pseudo code for Hyper-parameters Optimization 19 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)
- Cách tìm kiếm siêu tham số? ❏ Tìm kiếm bao gồm: ❏ mô hình ước tính/ (hồi quy, phân loại,..) ❏ Không gian tham số ❏ Phương pháp tìm kiếm hoặc lấy mẫu ứng viên ❏ Xác thực chéo ❏ Hàm tính điểm 20 Trường ĐH CNTT – Lập trình Python cho Máy học (CS116)

CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình Python: Bài 2 - Trương Xuân Nam
26 p |
79 |
27
-
Bài giảng Lập trình Python: Bài 3 - Trương Xuân Nam
18 p |
81 |
26
-
Bài giảng Lập trình Python: Bài 1 - Trương Xuân Nam
42 p |
146 |
24
-
Bài giảng Lập trình Python: Bài 4 - Trương Xuân Nam
24 p |
81 |
24
-
Bài giảng Lập trình Python: Bài 5 - Trương Xuân Nam
28 p |
62 |
23
-
Bài giảng Lập trình Python: Bài 9 - Trương Xuân Nam
30 p |
67 |
21
-
Bài giảng Lập trình Python cho máy học: Bài 1 - TS. Nguyễn Vinh Tiệp
40 p |
5 |
2
-
Bài giảng Lập trình Python cho máy học: Bài 4 - TS. Nguyễn Vinh Tiệp
43 p |
3 |
2
-
Bài giảng Lập trình Python cho máy học: Bài mở đầu - TS. Nguyễn Vinh Tiệp
45 p |
2 |
2
-
Bài giảng Lập trình Python cho máy học: Bài 3 - TS. Nguyễn Vinh Tiệp
18 p |
2 |
2
-
Bài giảng Lập trình Python cho máy học: Bài 7 - TS. Nguyễn Vinh Tiệp
42 p |
1 |
1
-
Bài giảng Lập trình Python cho máy học: Bài 11 - TS. Nguyễn Vinh Tiệp
60 p |
1 |
1
-
Bài giảng Lập trình Python cho máy học: Bài 2 - TS. Nguyễn Vinh Tiệp
38 p |
2 |
1
-
Bài giảng Lập trình Python cho máy học: Bài 5 - TS. Nguyễn Vinh Tiệp
71 p |
1 |
1
-
Bài giảng Lập trình Python cho máy học: Bài 8 - TS. Nguyễn Vinh Tiệp
32 p |
1 |
1
-
Bài giảng Lập trình Python cho máy học: Bài 6 - TS. Nguyễn Vinh Tiệp
39 p |
2 |
1
-
Bài giảng Lập trình Python cho máy học: Bài 9 - TS. Nguyễn Vinh Tiệp
57 p |
1 |
1


Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
