Phương pháp bootstrap là một kỹ thuật lấy mẫu lại được sử dụng để ước tính số liệu thống kê về dân số bằng cách lấy mẫu tập dữ liệu có thay thế
Nó có thể được sử dụng để ước tính số liệu thống kê tóm tắt như giá trị trung bình hoặc độ lệch chuẩn. Nó được sử dụng trong học máy ứng dụng để ước tính kỹ năng của các mô hình học máy khi đưa ra dự đoán về dữ liệu không có trong dữ liệu huấn luyện
Một thuộc tính mong muốn của các kết quả từ việc ước tính kỹ năng mô hình học máy là kỹ năng ước tính có thể được trình bày với khoảng tin cậy, một tính năng không có sẵn với các phương pháp khác như xác thực chéo
Trong hướng dẫn này, bạn sẽ khám phá phương pháp lấy mẫu lại bootstrap để ước tính kỹ năng của các mô hình học máy trên dữ liệu không nhìn thấy được
Sau khi hoàn thành hướng dẫn này, bạn sẽ biết
- Phương pháp bootstrap liên quan đến việc lặp đi lặp lại việc lấy mẫu lại một tập dữ liệu với sự thay thế
- Rằng khi sử dụng bootstrap, bạn phải chọn kích thước của mẫu và số lần lặp lại
- scikit-learning cung cấp một chức năng mà bạn có thể sử dụng để lấy mẫu lại tập dữ liệu cho phương thức bootstrap
Bắt đầu dự án của bạn với cuốn sách mới của tôi Statistics for Machine Learning, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ
Bắt đầu nào
Giới thiệu sơ lược về Phương pháp Bootstrap
Ảnh của john mcsporran, bảo lưu một số quyền.
Hướng dẫn tổng quan
Hướng dẫn này được chia thành 4 phần;
- Phương pháp Bootstrap
- Cấu hình của Bootstrap
- Ví dụ đã làm việc
- API khởi động
Cần trợ giúp về Thống kê cho Machine Learning?
Tham gia khóa học xử lý sự cố email miễn phí trong 7 ngày của tôi ngay bây giờ [có mã mẫu]
Nhấp để đăng ký và cũng nhận được phiên bản PDF Ebook miễn phí của khóa học
Tải xuống khóa học nhỏ MIỄN PHÍ của bạn
Phương pháp Bootstrap
Phương pháp bootstrap là một kỹ thuật thống kê để ước tính số lượng về dân số bằng cách ước tính trung bình từ nhiều mẫu dữ liệu nhỏ
Điều quan trọng là các mẫu được xây dựng bằng cách vẽ các quan sát từ một mẫu dữ liệu lớn tại một thời điểm và đưa chúng trở lại mẫu dữ liệu sau khi chúng được chọn. Điều này cho phép một quan sát nhất định được đưa vào một mẫu nhỏ nhất định nhiều lần. Phương pháp lấy mẫu này được gọi là lấy mẫu có thay thế
Quá trình xây dựng một mẫu có thể được tóm tắt như sau
- Chọn kích thước của mẫu
- Trong khi kích thước của mẫu nhỏ hơn kích thước đã chọn
- Chọn ngẫu nhiên một quan sát từ tập dữ liệu
- Thêm nó vào mẫu
Phương pháp bootstrap có thể được sử dụng để ước tính số lượng dân số. Điều này được thực hiện bằng cách liên tục lấy các mẫu nhỏ, tính toán số liệu thống kê và lấy giá trị trung bình của số liệu thống kê được tính toán. Ta có thể tóm tắt quy trình này như sau
- Chọn một số mẫu bootstrap để thực hiện
- Chọn cỡ mẫu
- Đối với mỗi mẫu bootstrap
- Vẽ một mẫu có thay thế với kích thước đã chọn
- Tính thống kê trên mẫu
- Tính giá trị trung bình của thống kê mẫu được tính toán
Quy trình này cũng có thể được sử dụng để ước tính kỹ năng của một mô hình học máy
Bootstrap là một công cụ thống kê cực kỳ mạnh mẽ và có thể áp dụng rộng rãi, có thể được sử dụng để định lượng độ không đảm bảo liên quan đến một công cụ ước tính hoặc phương pháp học thống kê nhất định
— Trang 187, Giới thiệu về Học tập Thống kê, 2013
Điều này được thực hiện bằng cách đào tạo mô hình trên mẫu và đánh giá kỹ năng của mô hình trên những mẫu không có trong mẫu. Các mẫu này không có trong một mẫu nhất định được gọi là mẫu ngoài túi hoặc viết tắt là OOB
Quy trình sử dụng phương pháp bootstrap này để ước tính kỹ năng của mô hình có thể được tóm tắt như sau
- Chọn một số mẫu bootstrap để thực hiện
- Chọn cỡ mẫu
- Đối với mỗi mẫu bootstrap
- Vẽ một mẫu có thay thế với kích thước đã chọn
- Khớp một mô hình trên mẫu dữ liệu
- Ước tính kỹ năng của người mẫu trên mẫu ngoài túi
- Tính giá trị trung bình của mẫu ước tính kỹ năng mô hình
Các mẫu không được chọn thường được gọi là mẫu “out-of-bag”. Đối với một lần lặp lại quy trình lấy mẫu bootstrap nhất định, một mô hình được xây dựng dựa trên các mẫu đã chọn và được sử dụng để dự đoán các mẫu đã xuất xưởng
— Trang 72, Mô hình dự báo ứng dụng, 2013
Điều quan trọng là mọi sự chuẩn bị dữ liệu trước khi lắp mô hình hoặc điều chỉnh siêu tham số của mô hình phải diễn ra trong vòng lặp for trên mẫu dữ liệu. Điều này là để tránh rò rỉ dữ liệu khi kiến thức về tập dữ liệu thử nghiệm được sử dụng để cải thiện mô hình. Đổi lại, điều này có thể dẫn đến một ước tính lạc quan về kỹ năng mô hình
Một tính năng hữu ích của phương pháp bootstrap là mẫu ước tính kết quả thường tạo thành phân phối Gaussian. Ngoài việc tóm tắt phân phối này với xu hướng trung tâm, có thể đưa ra các phép đo phương sai, chẳng hạn như độ lệch chuẩn và lỗi chuẩn. Hơn nữa, một khoảng tin cậy có thể được tính toán và sử dụng để giới hạn ước tính được trình bày. Điều này rất hữu ích khi trình bày kỹ năng ước tính của một mô hình học máy
Cấu hình của Bootstrap
Có hai tham số phải được chọn khi thực hiện bootstrap. kích thước của mẫu và số lần lặp lại của thủ tục để thực hiện
Cỡ mẫu
Trong học máy, người ta thường sử dụng kích thước mẫu giống với tập dữ liệu gốc
Mẫu bootstrap có cùng kích thước với tập dữ liệu gốc. Do đó, một số mẫu sẽ được biểu diễn nhiều lần trong mẫu bootstrap trong khi những mẫu khác hoàn toàn không được chọn
— Trang 72, Mô hình dự báo ứng dụng, 2013
Nếu tập dữ liệu quá lớn và hiệu quả tính toán là một vấn đề, thì có thể sử dụng các mẫu nhỏ hơn, chẳng hạn như 50% hoặc 80% kích thước của tập dữ liệu
lặp đi lặp lại
Số lần lặp lại phải đủ lớn để đảm bảo có thể tính được các số liệu thống kê có ý nghĩa, chẳng hạn như giá trị trung bình, độ lệch chuẩn và sai số chuẩn trên mẫu
Tối thiểu có thể là 20 hoặc 30 lần lặp lại. Các giá trị nhỏ hơn có thể được sử dụng sẽ thêm phương sai vào số liệu thống kê được tính trên mẫu của các giá trị ước tính
Lý tưởng nhất là mẫu ước tính sẽ càng lớn càng tốt với nguồn thời gian, với hàng trăm hoặc hàng nghìn lần lặp lại
Ví dụ đã làm việc
Chúng ta có thể làm cho quy trình bootstrap trở nên cụ thể với một ví dụ nhỏ đã được thực hiện. Chúng tôi sẽ làm việc thông qua một lần lặp lại quy trình
Hãy tưởng tượng chúng ta có một bộ dữ liệu với 6 quan sát
1
[0. 1, 0. 2, 0. 3, 0. 4, 0. 5, 0. 6]
Bước đầu tiên là chọn kích thước của mẫu. Ở đây, chúng ta sẽ sử dụng 4
Tiếp theo, chúng ta phải chọn ngẫu nhiên quan sát đầu tiên từ bộ dữ liệu. Hãy chọn 0. 2
1
mẫu = [0. 2]
Quan sát này được trả về tập dữ liệu và chúng tôi lặp lại bước này 3 lần nữa
1
mẫu = [0. 2, 0. 1, 0. 2, 0. 6]
Bây giờ chúng tôi có mẫu dữ liệu của chúng tôi. Ví dụ này chứng minh một cách có mục đích rằng cùng một giá trị có thể xuất hiện bằng 0, một hoặc nhiều lần trong mẫu. Đây là quan sát 0. 2 xuất hiện hai lần
Một ước tính sau đó có thể được tính toán trên mẫu được rút ra
1
thống kê = tính toán [[0. 2, 0. 1, 0. 2, 0. 6]]
Những quan sát không được chọn cho mẫu có thể được sử dụng làm quan sát ngoài mẫu
1
oob = [0. 3, 0. 4, 0. 5]
Trong trường hợp đánh giá một mô hình học máy, mô hình đó phù hợp với mẫu đã vẽ và được đánh giá trên mẫu bên ngoài
1
2
3
4
xe lửa = [0. 2, 0. 1, 0. 2, 0. 6]
kiểm tra = [0. 3, 0. 4, 0. 5]
mô hình = phù hợp [đào tạo]
thống kê = đánh giá [mô hình, thử nghiệm]
Điều đó kết thúc một lần lặp lại thủ tục. Nó có thể được lặp lại 30 lần hoặc nhiều hơn để đưa ra một mẫu thống kê được tính toán
1
thống kê = [. ]
Mẫu thống kê này sau đó có thể được tóm tắt bằng cách tính giá trị trung bình, độ lệch chuẩn hoặc các giá trị tóm tắt khác để đưa ra ước tính có thể sử dụng cuối cùng của thống kê
1
ước tính = trung bình [[. ]]
API khởi động
Chúng tôi không phải thực hiện phương thức bootstrap theo cách thủ công. Thư viện scikit-learning cung cấp một triển khai sẽ tạo một mẫu bootstrap duy nhất của tập dữ liệu
Có thể sử dụng hàm resample[] scikit-learning. Nó lấy mảng dữ liệu làm đối số, có lấy mẫu thay thế hay không, kích thước của mẫu và hạt giống cho trình tạo số giả ngẫu nhiên được sử dụng trước khi lấy mẫu
Ví dụ: chúng ta có thể tạo một bootstrap để tạo một mẫu thay thế bằng 4 quan sát và sử dụng giá trị 1 cho trình tạo số giả ngẫu nhiên
1
khởi động = lấy mẫu lại[dữ liệu, replace=True, n_samples=4, random_state=1]
Thật không may, API không bao gồm bất kỳ cơ chế nào để dễ dàng thu thập các quan sát bên ngoài có thể được sử dụng làm bộ thử nghiệm để đánh giá một mô hình phù hợp
Ít nhất trong trường hợp đơn biến, chúng ta có thể thu thập các quan sát bên ngoài bằng cách sử dụng cách hiểu danh sách Python đơn giản
1
2
# quan sát ngoài túi
oob = [x cho x in data if x not in boot]
Chúng tôi có thể kết hợp tất cả những điều này với tập dữ liệu nhỏ của chúng tôi được sử dụng trong ví dụ hoạt động của phần trước
1
2
3
4
5
6
7
8
9
10
# scikit-learning bootstrap
từ sklearn. các tiện ích nhập lấy mẫu lại
# mẫu dữ liệu
dữ liệu = [0. 1, 0. 2, 0. 3, 0. 4, 0. 5, 0. 6]
# chuẩn bị mẫu bootstrap
khởi động = lấy mẫu lại[dữ liệu, replace=True, n_samples=4, random_state=1]
in['Bootstrap Mẫu. %s' % khởi động]
# quan sát ngoài túi
oob = [x cho x in data if x not in boot]
in['OOB mẫu. %s' % oob]
Chạy ví dụ in các quan sát trong mẫu bootstrap và những quan sát đó trong mẫu xuất xưởng
1
2
Bootstrap mẫu. [0. 6, 0. 4, 0. 5, 0. 1]
Mẫu OOB. [0. 2, 0. 3]
Tiện ích mở rộng
Phần này liệt kê một số ý tưởng để mở rộng hướng dẫn mà bạn có thể muốn khám phá
- Liệt kê 3 số liệu thống kê tóm tắt mà bạn có thể ước tính bằng phương pháp bootstrap
- Tìm 3 bài nghiên cứu sử dụng phương pháp bootstrap để đánh giá hiệu năng của các mô hình machine learning
- Thực hiện chức năng của riêng bạn để tạo mẫu và mẫu xuất xưởng bằng phương pháp bootstrap
Nếu bạn khám phá bất kỳ tiện ích mở rộng nào trong số này, tôi rất muốn biết
Đọc thêm
Phần này cung cấp nhiều tài nguyên hơn về chủ đề này nếu bạn muốn tìm hiểu sâu hơn
bài viết
- Cách tính khoảng tin cậy Bootstrap cho kết quả học máy bằng Python
Sách
- Mô hình dự báo ứng dụng, 2013
- Giới thiệu về học tập thống kê, 2013
- Giới thiệu về Bootstrap, 1994
API
- sklearning. đồ dùng. resample[] API
- sklearning. model_selection. API lựa chọn mô hình
Bài viết
- Lấy mẫu lại [thống kê] trên Wikipedia
- Bootstrapping [thống kê] trên Wikipedia
- Quy tắc ngón tay cái cho số lượng mẫu bootstrap, CrossValiated
Tóm lược
Trong hướng dẫn này, bạn đã khám phá ra phương pháp lấy mẫu lại bootstrap để ước tính kỹ năng của các mô hình máy học trên dữ liệu không nhìn thấy được