Hướng dẫn poisson process python code - mã python quy trình poisson
Tôi cần viết một hàm trong Python 3, trả về một mảng các vị trí (x, y) trên trường hình chữ nhật (ví dụ: 100x100 điểm) nằm rải rác theo quy trình Poisson không gian đồng nhất. Show
Nội phân chính
Cho đến nay tôi đã tìm thấy tài nguyên này với mã Python, nhưng thật không may, tôi không thể tìm/cài đặt Scipy cho Python 3: http://connor-johnson.com/2014/02/25/spatial-point-processes/ Nó đã giúp tôi hiểu quá trình Poisson Point thực sự là gì và nó hoạt động như thế nào. Tôi đã chơi xung quanh với numpy.random.poisson một thời gian, nhưng tôi đang có một thời gian khó khăn để giải thích những gì nó trở lại. http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.poisson.html
Những gì tôi nghĩ rằng lệnh đó là tạo ra một trường 5x5 = (1, 5, 5) và các đối tượng tán xạ với tốc độ lambda = 1 trên trường đó. Các số được hiển thị trong ma trận kết quả là xác suất của một đối tượng nằm trên vị trí cụ thể đó. Làm thế nào tôi có thể phân tán, nói, mười đối tượng trên trường 5x5 đó theo một quá trình Poisson không gian đồng nhất? Dự đoán đầu tiên của tôi sẽ là lặp lại toàn bộ mảng và chèn một đối tượng vào mọi vị trí với "3", sau đó là một vị trí khác với "2", v.v. nên sử dụng để xác định xem một đối tượng có nên được chèn hay không. Theo tài nguyên sau, tôi có thể mô phỏng 10 đối tượng được phân tán trên một trường với tốc độ 1 bằng cách nhân tỷ lệ và số lượng đối tượng (10*1 = 10) và sử dụng giá trị đó làm lambda của tôi, tức là.
Tuy nhiên, tôi không thấy làm thế nào điều đó sẽ làm cho mọi thứ dễ dàng hơn. Tôi chỉ tăng tốc độ mà các đối tượng xuất hiện theo 10 theo cách đó. Quá trình Poisson Point ở Matlab Tóm lại, câu hỏi chính của tôi là: Làm thế nào tôi có thể sử dụng 6 để mô hình hóa số 7 của các đối tượng bị phân tán trên trường 2 chiều 8?Trong bài viết này, chúng tôi sẽ khám phá quá trình phân phối Poisson và Poisson trong Python. Mục lục
Giới thiệuNó đã giúp tôi hiểu quá trình Poisson Point thực sự là gì và nó hoạt động như thế nào. Tôi đã chơi xung quanh với numpy.random.poisson một thời gian, nhưng tôi đang có một thời gian khó khăn để giải thích những gì nó trở lại.
Quá trình Poisson là gìNhững gì tôi nghĩ rằng lệnh đó là tạo ra một trường 5x5 = (1, 5, 5) và các đối tượng tán xạ với tốc độ lambda = 1 trên trường đó. Các số được hiển thị trong ma trận kết quả là xác suất của một đối tượng nằm trên vị trí cụ thể đó. Làm thế nào tôi có thể phân tán, nói, mười đối tượng trên trường 5x5 đó theo một quá trình Poisson không gian đồng nhất? Dự đoán đầu tiên của tôi sẽ là lặp lại toàn bộ mảng và chèn một đối tượng vào mọi vị trí với "3", sau đó là một vị trí khác với "2", v.v. nên sử dụng để xác định xem một đối tượng có nên được chèn hay không. Theo tài nguyên sau, tôi có thể mô phỏng 10 đối tượng được phân tán trên một trường với tốc độ 1 bằng cách nhân tỷ lệ và số lượng đối tượng (10*1 = 10) và sử dụng giá trị đó làm lambda của tôi, tức là. Tuy nhiên, tôi không thấy làm thế nào điều đó sẽ làm cho mọi thứ dễ dàng hơn. Tôi chỉ tăng tốc độ mà các đối tượng xuất hiện theo 10 theo cách đó. Quá trình Poisson Point ở Matlab Tóm lại, câu hỏi chính của tôi là: Làm thế nào tôi có thể sử dụng 6 để mô hình hóa số 7 của các đối tượng bị phân tán trên trường 2 chiều 8?Phân phối Poisson là gì?Trong bài viết này, chúng tôi sẽ khám phá quá trình phân phối Poisson và Poisson trong Python.
Sự kết luận Để tiếp tục làm theo hướng dẫn này, chúng tôi sẽ cần các thư viện Python sau: Scipy, Numpy và Matplotlib. PMF (hàm khối lượng xác suất) của phân phối Poisson được đưa ra bởi: $$ p (k, \ lambda) = \ frac {\ lambda^{k} e^{-\ lambda}} {k!} $$ ở đâu:
\ (Pr (x = k) \) có thể được đọc là: Xác suất Poisson của K sự kiện trong một khoảng thời gian. Và CDF (hàm phân phối tích lũy) của phân phối Poisson được đưa ra bởi: $$ f (k, \ lambda) = \ sum^{k} _ {i = 0} \ frac {\ lambda^{i} e^{-\ lambda}} {i!} $$ Ví dụ phân phối PoissonBây giờ chúng ta đã biết một số công thức để làm việc, hãy để đi qua một ví dụ chi tiết. Nhớ lại dữ liệu bão mà chúng tôi đã đề cập trong các phần trước. Chúng tôi biết rằng tần số lịch sử của bão là 7 mỗi năm (đó là tốc độ, \ (\ mu \) và điều này tạo thành giá trị \ (\ lambda \) của chúng tôi (vì \ (\ lambda = \ mu \)): $$ \ lambda = 7 $$ Câu hỏi chúng ta có thể có là xác suất quan sát chính xác 5 cơn bão trong năm nay là gì? Và điều này tạo thành giá trị \ (k \) của chúng tôi: $$ k = 5 $$ Sử dụng công thức từ phần trước, chúng ta có thể tính toán xác suất Poisson: $$ P (5, 7) = \ frac {(7^{5}) (e^{-7})} {5!} = 0.12772 \ xấp xỉ 12,77 \%$$ $$ Do đó, xác suất quan sát chính xác 5 cơn bão vào năm tới bằng 12,77%. Đương nhiên, chúng tôi tò mò về xác suất của các tần số khác. Poisson PMF (Hàm khối xác suất)Hãy xem xét bảng dưới đây cho thấy xác suất Poisson của tần số bão (0-15):
Sử dụng bảng trên, chúng ta có thể tạo hình ảnh sau đây về hàm khối lượng xác suất Poisson cho ví dụ này: Poisson PMFPoisson CDF (chức năng phân phối tích lũy)Hãy xem xét bảng dưới đây cho thấy xác suất tích lũy Poisson của tần số bão (0-15):
Poisson PMF Poisson CDF (chức năng phân phối tích lũy)Hãy xem xét bảng dưới đây cho thấy xác suất tích lũy Poisson của tần số bão (0-15): \ (F (k, \ lambda) \) 0,73% 2,96%8,18% 17,3%
30,07%
44,97%
59,87% 72,91%83,05%.pmf() method of the scipy.poisson generator. It will need two parameters:
97,3%
98,72%
Note: 99,43%\(k\) value and the corresponding probability:
98,72%
99,43% 99,76%99,9%k values array that we created earlier as well as the pmf values array in this step. Sử dụng bảng trên, chúng ta có thể tạo hình ảnh sau đây về chức năng phân phối tích lũy Poisson cho ví dụ này:matplotlib library, we can easily plot the Poisson PMF using Python: 098,72% 99,43%99,76%99,9%.cdf() method of the scipy.poisson generator. It will need two parameters:
Và bây giờ chúng ta có thể tạo một mảng với các giá trị xác suất tích lũy Poisson: 1Và bạn nên nhận được: 2Note: Nếu bạn muốn in nó theo cách đẹp hơn với mỗi giá trị \ (k \) và xác suất tích lũy tương ứng:\(k\) value and the corresponding cumulative probability: 3Và bạn nên nhận được: 4Nếu bạn muốn in nó theo cách đẹp hơn với mỗi giá trị \ (k \) và xác suất tích lũy tương ứng: Điều này giống hệt như chúng ta đã thấy trong ví dụ mà chúng ta đã tính toán xác suất tích lũy bằng tay.Lô poisson cdf sử dụng pythonk values array that we created earlier as well as the pmf values array in this step. Chúng tôi sẽ cần mảng giá trị K mà chúng tôi đã tạo sớm hơn cũng như mảng giá trị PMF trong bước này.matplotlib library, we can easily plot the Poisson PMF using Python: 5Và bạn nên nhận được: Nếu bạn muốn in nó theo cách đẹp hơn với mỗi giá trị \ (k \) và xác suất tích lũy tương ứng:Điều này giống hệt như chúng ta đã thấy trong ví dụ mà chúng ta đã tính toán xác suất tích lũy bằng tay.Lô poisson cdf sử dụng python Chúng tôi sẽ cần mảng giá trị K mà chúng tôi đã tạo sớm hơn cũng như mảng giá trị PMF trong bước này. |