help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Data clustering


From: Juan Pablo Carbajal
Subject: Re: Data clustering
Date: Mon, 23 Jun 2014 20:39:17 +0200

On Mon, Jun 23, 2014 at 5:06 PM, CdeMills <address@hidden> wrote:
> Juan Pablo Carbajal-2 wrote
>> I hva edone similr stuff in very different ways. For examlpe a direct
>> use of diff can do it or running averages of the L2 norm derivative on
>> the smoothed output, even moving histrograms can help you decide when
>> you are stable. It all depends a lot on the time scale.
>> If you want to go data driven, you can try kmeans and then detect the
>> outliers from each cluster (they probably will be transitional
>> values). Try also the soft partition fcm in the fuzzy logic package.
>>  Can you send a example data or plot?
>
> Hello,
>
> I enclose an example. There system is launched at 100% with a soft-start
> mechanism. After allowing time to stabilisation, the power is reduced by
> steps of 10 %, then put back at 100%.  The enclosed file contains: "Signal";
> the raw data; "indt", the start and end of each stable period; and Sshort, a
> shortened version with only the stable segments.
>
> The end of the stable parts are at (rounded); 39    48    58    68    79
> 87    97   107
>
> If I do
> [idx, center]=kmeans(Sshort,8);
> I get (sorted and rounded) : 39    48    58    75    92   107   107   108
> The strange point is that the last segment is repeated thrice.
>
> data.data <http://octave.1599824.n4.nabble.com/file/n4664952/data.data>
>
> Any idea on how to automatically cluster such kind of data ?
>
> Regards
>
> Pascal
>
>
>
> --
> View this message in context: 
> http://octave.1599824.n4.nabble.com/Data-clustering-tp4664909p4664952.html
> Sent from the Octave - General mailing list archive at Nabble.com.
>
> _______________________________________________
> Help-octave mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/help-octave

If this is the data you are going to be working with, the best is to use diff:

s = diff (Sshort);
idx = find (abs(s)>5)
idx =

    74
   101
   131
   167
   186
   218
   250
   272

plot (Sshort,'-',idx,Sshort(idx),'.r')

If it gets noisy or fuzzier you can try findpeaks or to cluster the
result of diff.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]