Hi Lahiru,

svn location of the decaying window can be found in this jira -
https://wso2.org/jira/browse/CEP-968

seshika

On Tue, Nov 11, 2014 at 10:10 PM, Lahiru Sandaruwan <lahi...@wso2.com>
wrote:

> This is cool Lasantha!
>
> I will definitely evaluate/study this and come back.
>
> On Tue, Nov 11, 2014 at 8:51 PM, Lasantha Fernando <lasantha....@gmail.com
> > wrote:
>
>> Hi Lahiru,
>>
>> Would it be possible to use linear regression already available as
>> Siddhi extensions in [1] or maybe improve on that existing extensions
>> to extend it to fit polynomial curves? The code is available here [2].
>>
>> I think forecasting is also available which can be useful in this
>> usecase. WDYT? Just sharing my 2 cents.. :-)
>>
>> [1] http://mail.wso2.org/mailarchive/architecture/2014-March/015696.html
>> [2]
>> https://github.com/wso2-dev/siddhi/tree/master/modules/siddhi-extensions
>>
>> Thanks,
>> Lasantha
>>
>> On Tue, Nov 11, 2014 at 3:58 PM, Lahiru Sandaruwan <lahi...@wso2.com>
>> wrote:
>> > Hi all,
>> >
>> > This contains the content i already sent to Stratos dev. Idea is to
>> > highlight and separate the new improvement.
>> >
>> > Current implementation
>> >
>> > Currently CEP calculates average, gradient, and second derivative and
>> send
>> > those values to Autoscaler. Then Autoscaler predicts the values using S
>> =
>> > u*t + 0.5*a*t*t.
>> >
>> > In this method CEP calculation is not very much accurate as it does not
>> > consider all the events when calculating the gradient and second
>> derivative.
>> > Therefore the equation we apply doesn't yield the best prediction.
>> >
>> > Proposed Implementation
>> >
>> > CEP's task
>> >
>> > I think best approach is to do "curve fitting"[1] for received event
>> sample
>> > in a particular time window. Refer "Locally weighted linear regression"
>> > section at [2] for more details.
>> >
>> > We would need a second degree polynomial fitter for this, where we can
>> use
>> > Apache commons math library for this. Refer the sample at [3], we can
>> run
>> > this with any degree. e.g. 2, 3. Just increase the degree to increase
>> the
>> > accuracy.
>> >
>> > E.g.
>> > So if get degree 2 polynomial fitter, we will have an equation like
>> below
>> > where value(v) is our statistic value and time(t) is the time of event.
>> >
>> > Equation we get from received events,
>> > v = a*t*t + b*t + c
>> >
>> > So the solution is,
>> >
>> > Find memberwise curves that fits events received in specific window(say
>> 10
>> > minutes) at CEP
>> > Send the parameters of fitted line(a, b, and c in above equation) with
>> the
>> > timestamp of last event(T) in the window, to Autoscaler
>> >
>> > Autoscaler's task
>> >
>> > Autoscaler use v = a*t*t + b*t + c function to predict the value in any
>> > timestamp from the last timestamp
>> >
>> > E.g. Say we need to find the value(v) after 1 minute(assuming we
>> carried all
>> > the calculations in milliseconds),
>> >
>> > v = a * (T+60000) * (T+60000) + b * (T+60000) + c
>> >
>> > So we have memberwise predictions and we can find clusterwise
>> prediction by
>> > averaging all the memberwise values.
>> >
>> >
>> > Please send your thoughts.
>> >
>> > Thanks.
>> >
>> > [1] http://en.wikipedia.org/wiki/Curve_fitting
>> > [2] http://cs229.stanford.edu/notes/cs229-notes1.pdf
>> > [3]
>> http://commons.apache.org/proper/commons-math/userguide/fitting.html
>> >
>> >
>> > --
>> > --
>> > Lahiru Sandaruwan
>> > Committer and PMC member, Apache Stratos,
>> > Senior Software Engineer,
>> > WSO2 Inc., http://wso2.com
>> > lean.enterprise.middleware
>> >
>> > email: lahi...@wso2.com blog: http://lahiruwrites.blogspot.com/
>> > linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>> >
>>
>
>
>
> --
> --
> Lahiru Sandaruwan
> Committer and PMC member, Apache Stratos,
> Senior Software Engineer,
> WSO2 Inc., http://wso2.com
> lean.enterprise.middleware
>
> email: lahi...@wso2.com blog: http://lahiruwrites.blogspot.com/
> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>
>

Reply via email to