Phát hiện điểm chuyển mạch với lập trình xác suất (pymc)


9

Tôi hiện đang đọc "cuốn sách" lập trình xác suất và phương pháp xác thực cho tin tặc . Tôi đã đọc một vài chương và tôi đã suy nghĩ về Chương đầu tiên trong đó ví dụ đầu tiên với pymc bao gồm việc phát hiện một điểm phù thủy trong tin nhắn văn bản. Trong ví dụ đó, biến ngẫu nhiên để chỉ báo khi điểm chuyển mạch đang xảy ra được chỉ báo bằng . Sau bước MCMC, phân phối sau của được đưa ra:τττnhập mô tả hình ảnh ở đây

Đầu tiên, điều có thể học được từ biểu đồ này là có khả năng chuyển đổi gần 50% mà điểm chuyển đổi xảy ra vào ngày 45. Mặc dù nếu không có điểm chuyển đổi thì sao? Thay vì giả sử có một điểm chuyển mạch và sau đó cố gắng tìm nó, tôi muốn phát hiện nếu trên thực tế có một điểm chuyển đổi.

Tác giả trả lời câu hỏi "đã có một điểm chuyển đổi xảy ra" bằng cách "Không có thay đổi xảy ra hoặc thay đổi dần dần theo thời gian, phân phối sau của sẽ được lan truyền nhiều hơn". Nhưng làm thế nào bạn có thể trả lời điều này với khả năng di chuyển, ví dụ như có 90% khả năng một điểm chuyển đổi xảy ra, và có 50% khả năng nó xảy ra vào ngày 45.τ

Có phải mô hình cần phải được thay đổi? Hoặc điều này có thể được trả lời với mô hình hiện tại?


Đề cập đến tác giả cuốn sách @ Cam.Davidson.Pilon, người có thể có câu trả lời tốt hơn của tôi dưới đây.
Sean Easter

Câu trả lời:


6

SeanEaster có một số lời khuyên tốt. Yếu tố Bayes có thể khó tính toán, nhưng có một số bài đăng blog tốt dành riêng cho yếu tố Bayes trong PyMC2.

Một câu hỏi liên quan chặt chẽ là sự phù hợp của một mô hình. Một phương pháp công bằng cho việc này chỉ là kiểm tra - hậu thế có thể cho chúng ta bằng chứng về sự phù hợp. Giống như trích dẫn:

"Không có thay đổi xảy ra hoặc thay đổi dần dần theo thời gian, phân phối sau của sẽ được lan truyền nhiều hơn"τ

Đây là sự thật. Phần sau khá cao gần thời gian 45. Như bạn nói> 50% khối lượng là 45, trong khi nếu không có điểm chuyển đổi thì khối lượng (về mặt lý thuyết) phải gần 1/80 = 1,125% tại thời điểm 45.

Những gì bạn đang hướng tới là tái cấu trúc lại tập dữ liệu được quan sát, đưa ra mô hình của bạn. Trong Chương 2 , chúng là mô phỏng tạo dữ liệu giả. Nếu dữ liệu quan sát của bạn trông cực kỳ khác với dữ liệu nhân tạo của bạn, thì có khả năng mô hình của bạn không phù hợp.

Tôi xin lỗi vì câu trả lời không nghiêm khắc, nhưng thực sự đó là một khó khăn lớn mà tôi chưa khắc phục được một cách hiệu quả.


Có lẽ không liên quan đến câu trả lời của bạn, tôi chỉ đang suy nghĩ nhiều. Không thể điều chỉnh sigmoid cho dữ liệu và dựa trên tham số beta quyết định xem độ dốc có cho thấy sự thay đổi hay không. Có lẽ ngưỡng xác định nếu có một điểm chuyển đổi có thể được học từ các ví dụ sau đó. Có lẽ điều này cũng có thể với các tham số . Nếu 1 khác quá nhiều so với 2 thì có một điểm chuyển đổi khác không. Điều này cũng có thể được thực hiện với một ngưỡng được học từ các ví dụbước sóng bước sóngλλλ
Olivier_s_j

1
Ví dụ: phù hợp với mô hình: , trong đó ? Điều đó sẽ làm việc tôi tin, và sẽ cho phép chuyển tiếp suôn sẻ. Bạn đúng rằng suy luận về độ dốc của có thể xác định xem điểm chuyển đổi có tồn tại không. Tôi thực sự thích điều này, bạn nên khám phá nó nhiều hơn. p = 1 / ( 1 + e x p ( - β t ) ) βλ1p+λ2(1p)p=1/(1+exp(βt))β
Cam.Davidson.Pilon

Về câu hỏi về sự phù hợp của mô hình, tôi muốn thêm rằng các giá trị p dự đoán sau là một cách để đánh giá sự phù hợp. Xem bài viết này .
Sean Easter

2

Đó là câu hỏi so sánh mô hình nhiều hơn: Điều quan tâm là liệu một mô hình không có điểm chuyển đổi giải thích dữ liệu tốt hơn mô hình có điểm chuyển đổi. Một cách tiếp cận để trả lời câu hỏi đó là tính toán hệ số Bayes của các mô hình có và không có điểm chuyển đổi. Nói tóm lại, yếu tố Bayes là tỷ lệ xác suất của dữ liệu theo cả hai mô hình:

K=Pr(D|M1)Pr(D|M2)=Pr(θ1|M1)Pr(D|θ1,M1)dθ1Pr(θ2|M2)Pr(D|θ2,M2)dθ2

Nếu là mô hình sử dụng điểm chuyển đổi và là mô hình không có, thì giá trị cao cho có thể được hiểu là ủng hộ mạnh mẽ mô hình điểm chuyển đổi. (Bài viết trên wikipedia được liên kết ở trên đưa ra hướng dẫn về giá trị K đáng chú ý.)M 2 KM1M2K

Cũng lưu ý rằng trong ngữ cảnh MCMC, các tích phân trên sẽ được thay thế bằng tổng các giá trị tham số từ chuỗi MCMC. Một cách xử lý triệt để hơn các yếu tố Bayes, với các ví dụ, có sẵn ở đây .

Đối với câu hỏi tính toán xác suất của một điểm chuyển mạch, điều đó tương đương với việc giải . Nếu bạn giả sử các linh mục bằng nhau trên hai mô hình, thì tỷ lệ cược sau của các mô hình tương đương với yếu tố Bayes. (Xem slide 5 tại đây .) Sau đó, vấn đề chỉ là giải quyết bằng cách sử dụng yếu tố Bayes và yêu cầu cho n (độc quyền) mô hình sự kiện đang được xem xét.P ( M 1 | D ) n i = 1 P ( M i | D ) = 1P(M1|D)P(M1|D)i=1nP(Mi|D)=1

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.