Máy tính thống kê Bootstrapping
Để làm cho các giới hạn đó có thể so sánh được với giá trị trung bình đã cắt được quan sát (7. 225), chúng tôi đã nhân chúng với sai số chuẩn của nó (độ lệch chuẩn của phương tiện cắt giảm bootstrap ở giai đoạn đầu) đưa ra giới hạn là 4. 019533 và 13. 505900 Show
Chúng tôi đã áp dụng trình tự đã cho ở trên bằng cách sử dụng mã R này.
Các giới hạn bootstrap được làm mịn phần trăm đơn giản mà chúng tôi thu được là 6. 875 và 7. 925
Chúng tôi đã áp dụng trình tự đã cho ở trên bằng cách sử dụng mã R sau.
Ngoài ra, để tránh phải lặp lại, chúng tôi đã thu được kết quả của mình dưới dạng biểu đồ giá trị P và sử dụng các giá trị giới hạn độ tin cậy ước tính bằng phép nội suy Hơn nữa, vì những dữ liệu này được tính, thay vì lấy mẫu một mô hình tham số (được trang bị) tùy ý, chúng tôi đã sử dụng một bootstrap được làm mịn. Tuy nhiên, vì việc thay đổi dân số mô hình của chúng tôi sẽ thay đổi phương sai của nó, nên chúng tôi đã tính toán băng thông sau mỗi lần thay đổi Cuối cùng, vì chúng tôi đang thay đổi mẫu nhưng lấy mẫu lại mẫu đã làm mịn, giả sử tham số mà chúng tôi đang ước tính là giá trị trung bình đã cắt bớt 10% của tổng thể, chúng tôi đã giả định thêm rằng một mẫu gồm 50 × 5000 quan sát sẽ cho chúng tôi một kết quả hợp lý không thiên vị. Các giới hạn đảo ngược thử nghiệm mà chúng tôi thu được, sau 100 thử nghiệm bootstrap phần trăm được làm mịn bằng Gaussian, là 6. 673416 và 7. 668602 Chúng tôi đã xuất bản một bài báo về giải quyết một cách có hệ thống sự không chắc chắn trong học máy nguyên tử, trong đó chúng tôi tập trung vào một phương pháp tổng hợp bootstrap cơ bản
Một mô-đun trợ giúp để tạo các máy tính bootstrap, có khả năng đưa ra không chỉ dự đoán mô hình trung bình mà cả các khoảng không chắc chắn, được mô tả tại đây. Lưu ý rằng bạn nên thận trọng khi sử dụng các khoảng không chắc chắn và, như chúng tôi mô tả trong bài báo trên, cách giải thích “đúng” về việc nhìn thấy các giới hạn không chắc chắn lớn đối với một cấu hình nguyên tử cụ thể là cần phải có một phép tính cấu trúc điện tử mới (ở cấu hình đó), Tập huấn¶Đoạn script dưới đây cho thấy một ví dụ đơn giản về việc tạo một nhóm bootstrap gồm 10 máy tính cho một tập huấn luyện mẫu nhỏ. (Nhưng bạn có thể muốn có kích thước tập hợp lớn hơn 10 để có số liệu thống kê hợp lý. ) from amp.utilities import Logger from amp.stats.bootstrap import BootStrap def generate_data(count, filename='training.traj'): """Generates test or training data with a simple MD simulation.""" import os from ase import Atoms, Atom, units import ase.io from ase.calculators.emt import EMT from ase.build import fcc110 from ase.md.velocitydistribution import MaxwellBoltzmannDistribution from ase.md import VelocityVerlet from ase.constraints import FixAtoms if os.path.exists(filename): return traj = ase.io.Trajectory(filename, 'w') atoms = fcc110('Pt', (2, 2, 2), vacuum=7.) atoms.extend(Atoms([Atom('Cu', atoms[7].position + (0., 0., 2.5)), Atom('Cu', atoms[7].position + (0., 0., 5.))])) atoms.set_constraint(FixAtoms(indices=[0, 2])) atoms.calc = EMT() atoms.get_potential_energy() traj.write(atoms) MaxwellBoltzmannDistribution(atoms, 300. * units.kB) dyn = VelocityVerlet(atoms, dt=1. * units.fs) for step in range(count - 1): dyn.run(50) traj.write(atoms) generate_data(5, 'training.traj') calc_text = """ from amp import Amp from amp.descriptor.gaussian import Gaussian from amp.model.neuralnetwork import NeuralNetwork from amp.model import LossFunction calc = Amp(descriptor=Gaussian(), model=NeuralNetwork(), dblabel='../amp-db', envcommand='loadamp') calc.model.lossfunction = LossFunction(force_coefficient=0., convergence={'force_rmse': None}) """ start_command = 'python run.py' calc = BootStrap(log=Logger('bootstrap.log')) calc.train(images='training.traj', n=10, calc_text=calc_text, start_command=start_command, label='bootstrap') Chạy đoạn script trên một lần và đợi nó hoàn thành (có thể là <1 phút). Bạn sẽ thấy rất nhiều thư mục được tạo bằng máy tính tập hợp. Chạy lại cùng một tập lệnh và nó sẽ dọn sạch/lưu trữ các thư mục này vào một tệp nén (. hắc ín. gz) và tạo tệp tham số máy tính có tên là 'bootstrap. ensemble', mà bạn có thể tải bằng Bootstrap(load='bootstrap. quần thể'), như được mô tả sau Đầu tiên, một số lưu ý trên. Các máy tính riêng lẻ được tạo bằng biến calc_text trong tập lệnh trên; Ở phần trên, start_command tùy chọn là lệnh để bắt đầu công việc, mặc định là “python run. py”. Tại đây, nó chạy tuần tự quá trình đào tạo của từng máy tính; . Nếu máy của bạn có >10 lõi hoặc bạn không quan tâm đến việc tất cả các quy trình đào tạo đều cạnh tranh để giành tài nguyên, thì bạn có thể cho tất cả chúng chạy song song bằng cách đặt dấu và (trong hệ thống *nix) ở cuối dòng này, nghĩa là “ . tôi &” Rất có thể, bạn muốn chạy ứng dụng này trên cụm máy tính hiệu suất cao sử dụng hệ thống xếp hàng. Trong trường hợp này, start_command là lệnh xếp hàng của bạn, đối với hệ thống SLURM của chúng tôi, đây chỉ là start_command = 'sbatch run.py' Nếu bạn cần cung cấp các tiêu đề cho hệ thống xếp hàng của mình, bạn có thể thực hiện chúng với nội dung như bên dưới headerlines = """#SBATCH --time=00:30:00 #SBATCH --nodes=1 #SBATCH --ntasks-per-node=8 #SBATCH --partition=batch """ ... calc.train(images='training.traj', n=10, train_line=train_line, calc_text=calc_text, headerlines=headerlines, start_command=start_command, label='bootstrap') Theo cách tương tự, bạn cũng có thể cung cấp một train_line tùy chỉnh nếu cần; Đang tải và sử dụng¶Nhóm bootstrap có thể được tải thông qua từ khóa tải của máy tính. Tập lệnh bên dưới hiển thị một ví dụ về tải máy tính và sử dụng nó để dự đoán năng lượng và sự lan truyền của quần thể cho các hình ảnh đào tạo import ase.io from amp.stats.bootstrap import BootStrap calc = BootStrap(load='bootstrap.ensemble') traj = ase.io.Trajectory('training.traj') for image in traj: energies = calc.get_potential_energy(image, output=(0.05, 0.5, 0.95)) print(energies) energy = image.get_potential_energy() print(energy) Lưu ý rằng cuộc gọi đến calc. get_potential_energy trả về ba dự đoán năng lượng, ở phân vị thứ 5, 50 (trung vị) và 95, như được chỉ định với bộ (0. 05, 0. 5, 0. 95). Khi bạn chạy chương trình này, bạn sẽ thấy rằng dự đoán trung bình phù hợp với năng lượng thực (từ hình ảnh. get_potential_energy) khá tốt, trong khi sự lan truyền trong dữ liệu là do sự thưa thớt của dữ liệu; Đào tạo rảnh tay¶Trong sử dụng điển hình, việc gọi phương thức Giá trị bootstrap được tính như thế nào?Các giá trị bootstrap trong cây phát sinh gen cho biết rằng trong số 100, có bao nhiêu lần cùng một nhánh được quan sát thấy khi lặp lại quá trình tạo cây phát sinh gen trên một tập hợp dữ liệu được lấy mẫu lại. If we get this observation 100 times out of 100, then this supports our result.
Làm thế nào để tính toán khoảng thời gian bootstrap?Tính toán δ* = x* − x cho mỗi mẫu bootstrap (x là giá trị trung bình của dữ liệu gốc), sắp xếp chúng từ nhỏ nhất đến lớn nhất. Chọn δ. 1 là phân vị thứ 90, δ. 9 là phân vị thứ 10 của danh sách đã sắp xếp của δ*, cung cấp khoảng tin cậy 80% cho [x−δ.
bootstrapping có ý nghĩa gì trong thống kê?Bootstrapping là lấy mẫu có thay thế từ dữ liệu được quan sát để ước tính độ biến thiên trong một thống kê quan tâm . Xem thêm phép thử hoán vị, một hình thức lấy mẫu lại có liên quan. Một ứng dụng phổ biến của bootstrap là đánh giá độ chính xác của ước tính dựa trên một mẫu dữ liệu từ một dân số lớn hơn.
Làm thế nào để khởi động trong Excel?Ví dụ từng bước sau đây cho thấy cách thực hiện bootstrapping trong Excel. . Bước 1. Nhập dữ liệu gốc Bước 2. Tạo mẫu Bootstrap Bước 3. Tính toán thống kê quan tâm cho từng mẫu Bước 4. Tính khoảng tin cậy Bootstrapped Tài nguyên bổ sung |