2010-08-17 12 views
18

मैं समय श्रृंखला डेटा के क्लस्टरिंग के-का मतलब कैसे कर सकता हूं? मैं समझता हूं कि यह कैसे काम करता है जब इनपुट डेटा बिंदुओं का एक सेट होता है, लेकिन मुझे नहीं पता कि 1XM के साथ एक समय श्रृंखला को क्लस्टर कैसे करें, जहां एम डेटा लंबाई है। विशेष रूप से, मुझे यकीन नहीं है कि समय श्रृंखला डेटा के लिए क्लस्टर के माध्य को कैसे अपडेट किया जाए।मैं समय श्रृंखला डेटा पर के-साधन क्लस्टरिंग कैसे कर सकता हूं?

मेरे पास लेबल की गई समय श्रृंखला का एक सेट है, और मैं यह जांचने के लिए के-अर्थ एल्गोरिदम का उपयोग करना चाहता हूं कि मैं एक समान लेबल वापस प्राप्त करूंगा या नहीं। मेरा एक्स मैट्रिक्स एन एक्स एम होगा, जहां एन समय श्रृंखला की संख्या है और एम ऊपर वर्णित डेटा लंबाई है।

क्या कोई यह जानता है कि यह कैसे करें? उदाहरण के लिए, मैं this k-means MATLAB code को कैसे संशोधित कर सकता हूं ताकि यह समय श्रृंखला डेटा के लिए काम करेगा? इसके अलावा, मैं यूक्लिडियन दूरी के अलावा विभिन्न दूरी मीट्रिक का उपयोग करने में सक्षम होना चाहता हूं।

बेहतर मेरी संदेह दर्शाने के लिए, यहाँ कोड मैं समय श्रृंखला डेटा के लिए संशोधित किया है:


% Check if second input is centroids 
if ~isscalar(k) 
    c=k; 
    k=size(c,1); 
else 
    c=X(ceil(rand(k,1)*n),:); % assign centroid randomly at start 
end 

% allocating variables 
g0=ones(n,1); 
gIdx=zeros(n,1); 
D=zeros(n,k); 

% Main loop converge if previous partition is the same as current 
while any(g0~=gIdx) 
%  disp(sum(g0~=gIdx)) 
    g0=gIdx; 
    % Loop for each centroid 
    for t=1:k 
     % d=zeros(n,1); 
     % Loop for each dimension 
     for s=1:n 
      D(s,t) = sqrt(sum((X(s,:)-c(t,:)).^2)); 
     end 
    end 
    % Partition data to closest centroids 
    [z,gIdx]=min(D,[],2); 
    % Update centroids using means of partitions 
    for t=1:k 

     % Is this how we calculate new mean of the time series? 
     c(t,:)=mean(X(gIdx==t,:)); 

    end 
end 

उत्तर

6

समय श्रृंखला आम तौर पर उच्च आयामी हैं। और आपको समानता के लिए तुलना करने के लिए विशेष दूरी समारोह की आवश्यकता है। इसके अलावा, आउटलेटर्स हो सकते हैं।

के-साधन कम (आयामी) यूक्लिडियन दूरी के साथ निम्न-आयामी रिक्त स्थान के लिए डिज़ाइन किया गया है। यह outliers की ओर बहुत मजबूत नहीं है, क्योंकि यह उन पर वर्ग वजन डालता है।

समय श्रृंखला डेटा पर के-साधनों का उपयोग करने के लिए मुझे एक अच्छा विचार नहीं लगता है। अधिक आधुनिक, मजबूत क्लस्टरिंग एल्गोरिदम में देखने का प्रयास करें। कई आपको डीटीडब्लू जैसे समय श्रृंखला दूरी सहित मनमाने ढंग से दूरी कार्यों का उपयोग करने की अनुमति देंगे।

+0

क्या आप कृपया कुछ मजबूत क्लस्टरिंग एल्गोरिदम सुझा सकते हैं। और डीटीडब्ल्यू क्या है? धन्यवाद। – samkhan13

+1

समय श्रृंखला पर किसी भी पुस्तक को पकड़ो, और यह आपको डीटीडब्ल्यू सिखाएगा। या "टाइम सीरीज डीटीडब्लू" के लिए गूगल। यह कला की स्थिति है। क्लस्टरिंग के लिए, विकिपीडिया पर डीबीएससीएएन और ऑप्टिक्स देखें। उनका उपयोग डीटीडब्ल्यू के साथ किया जा सकता है, के-साधन नहीं कर सकते हैं। –

+0

धन्यवाद यह मदद करता है :) – samkhan13

2

यह शायद एक जवाब के लिए बहुत देर हो चुकी है, लेकिन:

ऊपर उपयोग आर तरीकों आपको "Iterative Incremental Clustering of Time Series" के लिए देखकर अधिक विधियां मिलेंगी।

1

यदि आप वास्तव में क्लस्टरिंग का उपयोग करना चाहते हैं, तो अपने आवेदन पर निर्भर करते हुए आप प्रत्येक बार श्रृंखला के लिए कम आयामी फीचर वेक्टर उत्पन्न कर सकते हैं। उदाहरण के लिए, फोरियर ट्रांसफॉर्म इत्यादि से समय श्रृंखला का मतलब, मानक विचलन, प्रभावशाली आवृत्ति का उपयोग करें। यह के-साधनों के उपयोग के लिए उपयुक्त होगा, लेकिन क्या यह आपको उपयोगी परिणाम देगा आपके विशिष्ट एप्लिकेशन और आपके समय की सामग्री पर निर्भर करता है श्रृंखला।

1

मैं हाल ही में kml आर पैकेज में आया हूं जो अनुदैर्ध्य डेटा के लिए के-साधन क्लस्टरिंग को लागू करने का दावा करता है। मैंने इसे खुद से नहीं देखा है।

एस 0 अगाबोज़ॉर्गी, ए एस शिरखोरसिदी और टी। यिंग वाह द्वारा Time-series clustering - A decade review पेपर भी विकल्पों की तलाश करने के लिए उपयोगी हो सकता है। एक और अच्छा पेपर हालांकि कुछ हद तक दिनांक Clustering of time series data-a survey टी। वॉरेन लियो द्वारा किया गया है।

संबंधित मुद्दे