trước đây Tôi có một loạt dữ liệu đến (gọi tới một trung tâm gọi tự động) về việc một người mua một sản phẩm cụ thể, 1 cho mua, 0 không mua.Ước tính xác suất cho các xác suất khác từ
Tôi muốn sử dụng dữ liệu này để tạo xác suất ước tính rằng một người sẽ mua một sản phẩm cụ thể, nhưng vấn đề là tôi có thể cần phải làm điều đó với dữ liệu lịch sử tương đối ít về số lượng người mua/không mua sản phẩm đó.
Một người bạn đề nghị rằng với xác suất Bayesian bạn có thể "giúp" ước tính xác suất bằng cách đưa ra "phân bố xác suất trước", về cơ bản đây là thông tin về những gì bạn mong đợi thấy trước khi tính đến dữ liệu thực tế.
Vì vậy, những gì tôi muốn làm là tạo ra một phương pháp mà có một cái gì đó giống như chữ ký này (Java):
double estimateProbability(double[] priorProbabilities, int buyCount, int noBuyCount);
priorProbabilities là một mảng của xác suất tôi đã nhìn thấy cho sản phẩm trước đó, trong đó phương pháp này sẽ sử dụng để tạo phân phối trước cho xác suất này. buyCount và noBuyCount là dữ liệu thực tế cụ thể cho sản phẩm này, từ đó tôi muốn ước tính xác suất của người dùng mua, được cung cấp dữ liệu và trước đó. Điều này được trả về từ phương thức này là gấp đôi.
Tôi không cần một giải pháp toán học hoàn hảo, chỉ cần một cái gì đó sẽ làm tốt hơn so với trước đó thống nhất hoặc bằng phẳng (ví dụ: xác suất = buyCount/(buyCount + noBuyCount)). Vì tôi quen thuộc hơn với mã nguồn hơn ký hiệu toán học, tôi sẽ đánh giá cao nếu mọi người có thể sử dụng mã trong lời giải thích của họ.
vấn đề thực sự mát mẻ, và tôi nghĩ rằng tôi biết giải pháp Bayesian chính xác, nhưng nó vẫn sẽ mất một lúc để mã (bạn sẽ nhớ giả thực thi, nguồn AKA Python tôi? một tad gỉ với Java ... ;-). –
Alex, vâng - Python hoặc giả python là hoàn toàn tốt đẹp! – sanity
tôi không nghĩ rằng đây là một vấn đề lập trình cho mỗi se; nó là một câu hỏi toán học lý thuyết được bao bọc trong một phương thức java. –