2011-01-12 45 views
5

Để tiết kiệm băng thông và để không phải tạo ra hình ảnh/đồ thị mình tôi có kế hoạch về việc sử dụng API biểu đồ của Google:Graph âm mưu: chỉ giữ dữ liệu phù hợp nhất

http://code.google.com/apis/chart/

mà hoạt động bằng cách đơn giản là phát hành a (tiềm năng dài) GET (hoặc POST) và sau đó Google tự tạo và phục vụ đồ thị.

Hiện tại tôi có đồ thị được tạo bởi khoảng hai nghìn mục và tôi muốn cắt giảm số lượng mục tùy ý này (ví dụ bằng cách chỉ giữ lại 50% mục gốc hoặc 10% mục gốc).

Làm cách nào để tôi có thể quyết định mục nào tôi nên giữ để có biểu đồ mới gần nhất với biểu đồ gốc?

Đây có phải là một số loại vấn đề phù hợp với đường cong không?

Lưu ý rằng tôi biết rằng tôi có thể làm POST API biểu đồ của Google lên đến 16K dữ liệu và điều này có thể đủ cho nhu cầu của tôi, nhưng tôi vẫn tò mò

Trả lời

3

Những gì bạn đang tìm kiếm để làm được gọi là downsampling hoặc decimation. Về cơ bản bạn lọc dữ liệu và sau đó thả N - 1 ra khỏi mỗi mẫu N (decimation hoặc down-sampling theo hệ số N). Một bộ lọc thô chỉ là lấy một đường trung bình di chuyển cục bộ. Ví dụ. nếu bạn muốn ước tính bằng hệ số N = 10 thì thay thế 10 điểm bằng mức trung bình của 10 điểm đó. Lưu ý rằng với sơ đồ trên, bạn có thể mất một số dữ liệu tần số cao từ cốt truyện của bạn (vì bạn có hiệu quả thấp khi lọc dữ liệu) - nếu điều quan trọng là thấy sự thay đổi ngắn hạn thì một cách tiếp cận khác là vẽ tất cả các điểm N như một thanh dọc đơn đại diện cho dải (ví dụ: min..max) của các điểm N đó.

+0

Không, điều này không giữ biểu đồ mới gần với bản gốc. Trong thực tế, bạn có thể mất tất cả các dữ liệu có liên quan (có thể chỉ là một phân đoạn của các điểm X). Nếu OP có nghĩa là để làm nghiêm túc "dữ liệu có liên quan", đây không phải là giải pháp. –

+0

Bạn đề cập đến hai giải pháp được đề xuất nào ở trên? Downsampling/decimation hoặc âm mưu phạm vi? –

+0

Trong cả hai bạn, bạn chỉ đơn giản là sửa đổi dữ liệu, ít nhất là cho các nhà thống kê, luôn luôn là không có, bởi vì các điểm "không phải là điểm dữ liệu thực". Nếu bạn muốn giữ "tinh thần" của biểu đồ, những phương pháp này sẽ không làm, bạn cần một cách tiếp cận thông minh hơn. Tuy nhiên, nếu sự trung thành dữ liệu không quan trọng đối với OP, thì có, các phương pháp đơn giản này sẽ làm. –

1

Tóm tắt biểu đồ (dữ liệu chuỗi thời gian) là một vấn đề rất khó. Nó giống như quyết định, trong một văn bản, những gì là "có liên quan" một phần để giữ trong một tóm tắt tự động của nó. Tôi khuyên bạn nên sử dụng một trong những thư viện được kính trọng nhất để tìm kiếm "các mẫu quan tâm" trong dữ liệu chuỗi thời gian theo số Eamonn Keogh

3

flot-downsample plugin cho thư viện đồ họa JavaScript Flot có thể làm những gì bạn đang tìm kiếm, cho tới một điểm.

Mục đích là cố gắng giữ lại các đặc điểm hình ảnh của dòng ban đầu bằng cách sử dụng ít điểm dữ liệu hơn đáng kể.

Nghiên cứu đằng sau thuật toán này được ghi thành tài liệu in the author's thesis.

Lưu ý rằng nó không hoạt động đối với bất kỳ loại chuỗi nào và sẽ không cho kết quả có ý nghĩa khi bạn muốn có hệ số lấy mẫu vượt quá 10, theo kinh nghiệm của tôi.

Vấn đề là nó cắt chuỗi trong cửa sổ có kích thước bằng nhau rồi giữ một điểm trên mỗi cửa sổ. Vì bạn có thể có dữ liệu dày đặc hơn trong một số cửa sổ so với các cửa sổ khác nên kết quả không nhất thiết là tối ưu. Nhưng nó hiệu quả (chạy trong thời gian tuyến tính).

Các vấn đề liên quan