Khi nào tôi nên sử dụng bootstrapping?
[Gist embed code (this it for embedding directly into the website if that’s preferred: ]def bootstrapped_conf_interval(data, metric, num_runs=1000, conf=.95): Show
""" mục đích. Tính khoảng tin cậy cho hiệu suất mô hình (số liệu) Thông số —————- dữ liệu. danh sách các điểm dữ liệu ở định dạng được get_metric chấp nhận Hệ mét. các tùy chọn bao gồm 'độ chính xác', 'độ chính xác', 'thu hồi' và 'điểm f1' conf. mức độ chắc chắn mà bạn muốn về phạm vi giá trị có thể có của số liệu đo lường của bạn num_run. int chỉ định số lượng mẫu dữ liệu được khởi động mà bạn muốn trả lại ———- Bộ tin cậy với số float dưới dạng các mục cũ. (. 2,. 3) “”” kết quả = [] # lấy num _runs các mẫu khởi động của dữ liệu chưa được gắn nhãn và được gắn nhãn cho tôi trong phạm vi (num_runs) bootstrapped_data = np. ngẫu nhiên. lựa chọn (dữ liệu, len (dữ liệu)) kết quả. nối thêm (get_metric (bootstrapped_data, số liệu)) kết quả. loại() bootstrapped_mean = tổng (kết quả) / float (len (kết quả)) x_bar = get_metric(dữ liệu, số liệu) # bạn muốn cắt bỏ bao nhiêu chỉ số đo được ở một trong hai đầu left_index = int(num_runs * (1 – conf) / 2) # sai lệch so với phương tiện bootstrapped delta_interval = [kết quả[left_index] – bootstrapped_mean, kết quả[-left_index] – bootstrapped_mean] # độ lệch so với giá trị trung bình so với mẫu thực tế, không phải mẫu khởi động khoảng thời gian = [delta_interval[0] + x_bar, delta_interval[1] + x_bar] khoảng thời gian trở lại 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
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 Hướng dẫn tổng quanHướng dẫn này được chia thành 4 phần;
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 BootstrapPhươ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
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
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
— 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
— 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 BootstrapCó 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ẫuTrong 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
— 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ạiSố 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ệcChú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 độngChú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ộngPhầ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á
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êmPhầ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
Sách
API
Bài viết
Tóm lượcTrong 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 Tại sao bạn sẽ sử dụng bootstrapping?“Ưu điểm của bootstrapping là đó là một cách đơn giản để lấy các ước tính về sai số chuẩn và khoảng tin cậy , đồng thời thuận tiện . ”
Lợi thế của số liệu thống kê bootstrapping là gì?Một lợi thế chính là bootstrapping không cần bạn đưa ra bất kỳ giả định nào về dữ liệu (chẳng hạn như tính quy tắc), bất kể .
Một hạn chế chính của bootstrap là gì?Nó không thực hiện hiệu chỉnh sai lệch , v.v. Không có cách chữa trị cho cỡ mẫu nhỏ. Bootstrap rất mạnh, nhưng nó không phải là ma thuật — nó chỉ có thể hoạt động với thông tin có sẵn trong mẫu ban đầu. Nếu các mẫu không đại diện cho toàn bộ dân số, thì bootstrap sẽ không chính xác lắm. |