Phân cụm thời gian động


40

Điều gì sẽ là cách tiếp cận để sử dụng Độ cong thời gian động (DTW) để thực hiện phân cụm chuỗi thời gian?

Tôi đã đọc về DTW như một cách để tìm sự tương đồng giữa hai chuỗi thời gian, trong khi chúng có thể được thay đổi theo thời gian. Tôi có thể sử dụng phương pháp này làm thước đo tương tự cho thuật toán phân cụm như k-mean không?


2
có, bạn có thể sử dụng thước đo tương tự làm đầu vào cho k nghĩa là phân cụm và sau đó xác định các nhóm trong dữ liệu của bạn.
dự báo

Cảm ơn câu trả lời của bạn. Tôi đoán rằng với mỗi lần lặp, tôi sẽ cần phải tạo ma trận khoảng cách cho mỗi cặp (centroid, clustering) và tính toán lại các centroid theo kiểu chuẩn, như là một phương tiện của tất cả các chuỗi thuộc về cụm?
Marko

1
Alexanderr Blekh trong câu trả lời dưới đây có một bài đăng trên blog cung cấp một ví dụ chi tiết về cách thực hiện việc này trong R.
forecaster

2
@forecaster không sử dụng phương tiện k với DTW. k-có nghĩa là giảm thiểu phương sai, không phải khoảng cách. Phương sai là bình phương Euclide, nhưng điều đó không có nghĩa là phương tiện k có thể tối ưu hóa các khoảng cách khác. Giá trị trung bình không, và trong DTW, việc xây dựng các phản mẫu tương đối dễ dàng, giống như một sóng hình sin được bù bởi : cả hai đều rất giống nhau bởi DTW, nhưng giá trị trung bình của chúng là không đổi - rất giống với cả hai. π
Anony-Mousse

1
K-mean không phải là một thuật toán thích hợp để phân cụm chuỗi thời gian. Các mô hình markov ẩn cho dữ liệu theo chiều dọc, rời rạc là phù hợp. Hiện tại có một số cuốn sách về chủ đề này cũng như những đóng góp chính từ Oded Netzer (Columbia) và Steve Scott (Google). Một cách tiếp cận khác là phương pháp lý thuyết thông tin được phát triển bởi Andreas Brandmaier tại Max Planck được gọi là phân cụm hoán vị. Ông cũng đã viết một mô-đun R. So sánh các giải pháp cụm là một vấn đề khác nhau. Bài viết của Marina Meila, So sánh cụm, Báo cáo công nghệ thống kê U của Washington là tốt nhất.
Mike Hunter

Câu trả lời:


33

Đừng không sử dụng k-means cho chuỗi thời gian.

DTW không được giảm thiểu theo giá trị trung bình; phương tiện k có thể không hội tụ và ngay cả khi nó hội tụ nó sẽ không mang lại kết quả rất tốt. Giá trị trung bình là một ước lượng bình phương nhỏ nhất trên tọa độ. Nó giảm thiểu phương sai, không phải khoảng cách tùy ý và phương tiện k được thiết kế để giảm thiểu phương sai, không phải khoảng cách tùy ý .

Giả sử bạn có hai chuỗi thời gian. Hai sóng hình sin, có cùng tần số và thời gian lấy mẫu khá dài; nhưng chúng được bù bởi . Vì DTW không cong vênh thời gian, nó có thể căn chỉnh chúng sao cho chúng khớp hoàn hảo, ngoại trừ điểm đầu và điểm cuối. DTW sẽ chỉ định một khoảng cách khá nhỏ cho hai chuỗi này. Tuy nhiên, nếu bạn tính giá trị trung bình của hai chuỗi, nó sẽ là 0 - chúng hủy bỏ. Giá trị trung bình không làm cong vênh thời gian động và mất tất cả giá trị mà DTW có được. Trên dữ liệu đó, phương tiện k có thể không hội tụ và kết quả sẽ là vô nghĩa. K-nghĩa thực sự chỉ nên được sử dụng với phương sai (= bình phương Euclide) hoặc một số trường hợp tương đương (như cosine, trên dữ liệu chuẩn hóa L2, trong đó độ tương tự cosine πgiống như khoảng cách Euclide bình phương)2

Thay vào đó, hãy tính toán một ma trận khoảng cách bằng DTW, sau đó chạy phân cụm theo thứ bậc, chẳng hạn như liên kết đơn. Trái ngược với k-mean, sê-ri thậm chí có thể có độ dài khác nhau.


4
Tất nhiên, có PAM (K-medoid) hoạt động với khoảng cách tùy ý. Một trong nhiều thuật toán hỗ trợ khoảng cách tùy ý - k-nghĩa là không. Các lựa chọn khác là DBSCAN, OPTICS, CLARANS, HAC, ...
Anony-Mousse

1
Có lẽ. Bởi vì k-medoid sử dụng DTW-medoid để tìm trung tâm cụm chứ không phải trung bình L2. Tôi không biết về bất kỳ chuỗi thời gian thành công trong thế giới thực. Tôi tin rằng tôi đã xem các bài báo, nhưng không có bài nào thực sự sử dụng kết quả. Chỉ bằng chứng về khái niệm.
Anony-Mousse

1
@Aleksandr Blekh đã đưa ra đây là một trong những ví dụ của mình nbviewer.ipython.org/github/alexminnaar/ trộm Ý kiến ​​của bạn về nó là gì?
Marko

1
Vấn đề đồ chơi. Vô dụng trong thế giới thực. Dữ liệu thực có nhiều nhiễu, sẽ làm tổn thương nhiều hơn các đường cong hình sin trơn tru và các mẫu được trình bày trong dữ liệu này.
Anony-Mousse

1
Tôi nghĩ rằng phân nhóm phân cấp là sự lựa chọn tốt hơn. Bạn sẽ không thể xử lý một số lượng lớn các loạt.
Anony-Mousse

49

Có, bạn có thể sử dụng phương pháp DTW để phân loại và phân cụm chuỗi thời gian . Tôi đã biên soạn các tài nguyên sau , tập trung vào chính chủ đề này (gần đây tôi đã trả lời một câu hỏi tương tự, nhưng không phải trên trang web này, vì vậy tôi đang sao chép nội dung ở đây để thuận tiện cho mọi người):


2
+1 bộ sưu tập tuyệt vời các bài báo và blog. Tài liệu tham khảo rất tốt.
dự báo

@forecaster: Cảm ơn bạn đã upvote và những lời tử tế! Vui mừng bạn thích bộ sưu tập. Thật buồn khi hiện tại tôi không có thời gian để học dự báo và nhiều lĩnh vực thống kê và khoa học dữ liệu khác nghiêm túc hơn, nhưng tôi sử dụng mọi cơ hội để học một cái gì đó mới.
Alexanderr Blekh

1
@AleksandrBlekh Cảm ơn rất nhiều về câu trả lời của bạn, tôi đã thảo luận với Anony-Mousse về cái aproach này, vì tôi đặc biệt quan tâm đến DTW như một thước đo tương tự cho phương tiện K, vì vậy tôi có thể lấy centroid làm đầu ra. Ý kiến ​​và kinh nghiệm của bạn với nó là gì? Như bạn có thể thấy Anony-Mousse đã đưa ra một số lập luận rằng kết quả có thể không tốt trong trường hợp này ... Có thể một số kinh nghiệm cá nhân trong một vấn đề thực tế?
Marko

1
OK cảm ơn lần nữa. Bạn có +1 từ tôi và anh ấy được chấp nhận câu trả lời, vì câu hỏi của tôi thiên về k-mean và DTW hơn.
Marko

1
@pera: Niềm vui của tôi. Cảm ơn đã nâng cấp. Hoàn toàn hiểu và đồng ý về sự chấp nhận, không có vấn đề gì cả.
Alexanderr Blekh

1

Một phương pháp gần đây DTW Barycenter Averaging (DBA) đã được đề xuất bởi Petitjean et al. đến chuỗi thời gian trung bình. Trong một bài báo khác, họ đã chứng minh bằng thực nghiệm và lý thuyết làm thế nào nó có thể được sử dụng để phân cụm chuỗi thời gian với phương tiện k. Một triển khai được cung cấp trên GitHub bởi các tác giả ( liên kết đến mã ).

1 F. Petitjean, G. Forestier, GI Webb, AE Nicholson, Y. Chen và E. Keogh, "Độ cong vênh thời gian động trung bình của chuỗi thời gian cho phép phân loại chính xác và nhanh hơn", 2014 Hội nghị quốc tế về khai thác dữ liệu, Thâm Quyến, 2014 .

2 F. Petitjean, P. Gançarski, Tóm tắt một tập hợp chuỗi thời gian bằng cách tính trung bình: Từ trình tự Steiner đến liên kết nhỏ gọn, Khoa học máy tính lý thuyết, Tập 414, Số 1, 2012


2
vui lòng cung cấp tài liệu tham khảo đầy đủ thay vì liên kết. Liên kết có thể chết
Antoine

1

Dynamic Time Warp so sánh các điểm dữ liệu đã nhận ra, có thể có hoặc không hoạt động. Một cách tiếp cận chặt chẽ hơn là so sánh sự phân bố chuỗi thời gian bằng một thước đo gọi là khoảng cách kính viễn vọng .

Điều thú vị về số liệu này là việc tính toán theo kinh nghiệm được thực hiện bằng cách khớp một loạt các phân loại nhị phân như SVM.

Đối với một lời giải thích ngắn gọn, xem điều này .

Đối với chuỗi thời gian phân cụm, nó được hiển thị để vượt trội hơn DTW; xem Bảng 1 trong bài báo gốc [1].

[1] Ryabko, D., & Mary, J. (2013). Một số liệu dựa trên phân loại nhị phân giữa các phân phối chuỗi thời gian và sử dụng nó trong các vấn đề thống kê và học tập. Tạp chí Nghiên cứu Máy học, 14 (1), 2837-2856.


2
Một biên tập viên đã cố gắng ghi chú: "Jérémie Mary (đồng tác giả) có một trang web thảo luận về thuật toán với cách triển khai R.
gung - Rebstate Monica

@gung Wow, tuyệt vời! Tôi đã có thư từ với tác giả đầu tiên và anh ấy đã không đề cập đến điều này.
horaceT

Tôi thực sự chỉ đang sao chép từ một người đã cố gắng chỉnh sửa câu trả lời này thành câu trả lời của bạn, @horaceT. Tôi không biết quá nhiều về nó.
gung - Phục hồi Monica

0

Vâng. Một cách tiếp cận ngây thơ và có khả năng chậm có thể là,

  1. Tạo tất cả các kết hợp cụm của bạn. k là số đếm cụm và n là số sê-ri. Số lượng các mặt hàng trả lại nên được n! / k! / (n-k)!. Đây sẽ là một cái gì đó giống như các trung tâm tiềm năng.
  2. Đối với mỗi chuỗi, tính toán khoảng cách qua DTW cho từng trung tâm trong mỗi nhóm cụm và gán nó cho nhóm tối thiểu.
  3. Đối với mỗi nhóm cụm, tính tổng khoảng cách trong các cụm riêng lẻ.
  4. Chọn mức tối thiểu.

Tôi đã sử dụng điều này cho một dự án nhỏ. Đây là kho lưu trữ của tôi về Phân cụm chuỗi thời giancâu trả lời khác của tôi về vấn đề này.

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.