Hi All,

I have finished implementing a Window (ClassifyHtWindowProcessor) to do the 
classification based on Hoeffding Tree. So if you define the event stream as 
below
you can send initial set of events to build the classification model then after 
the building the tree with given number of events WindowProcess will start 
doing the predictions for the defined class (With current implementation only 
one class is supported and it has to be the last attribute in the stream 
definition). Window processor arguments are number of training events required 
to build the tree and the desired class value comes true with the prediction 
(In this case event will emit when the decision comes as not to play ).

siddhiManager.defineStream("define stream weather (outlook optional(sunny, 
overcast, rainy), temperature optional(hot, mild, cool),humidity optional(high, 
normal),windy optional(TRUE, FALSE),play optional(yes, no))");
        siddhiManager.addQuery("from weather#window.classifyHt(14,no)" +
                "select play " +
                "insert into Results for all-events ;”);

Current implementation has following limitations.

Do not support numeric values to build the distribution.
Only a single class can be predicted.
To improve the performance we can do Tie Breaking Hoeffding tree implementation 
and do more refining for the algorithm.

If you have more feedback or real dataset I can test that would be great.

Regards
Lahiru


On Sep 23, 2014, at 4:52 AM, Ginnaliya Gamathige, Lahiru Manananda 
<[email protected]<mailto:[email protected]>> wrote:

Hi Paul,
On Sep 23, 2014, at 4:35 AM, Paul Fremantle 
<[email protected]<mailto:[email protected]>> wrote:

I think this is really useful. I'm not convinced the word nominal is well-known 
enough to be completely clear in this context.

what about

define stream weather( outlook options={sunny, overcast, rainy} )
+1

Lahiru

Paul



On 21 September 2014 19:45, Ginnaliya Gamathige, Lahiru Manananda 
<[email protected]<mailto:[email protected]>> wrote:
Hi Devs,

I am developing a classification algorithm for siddhi and I have a requirement 
of defining attributes as a nominal attribute.

Nominal attribute is similar to a string attribute but during the definition we 
have to give the possible values for that attribute.
One of the value from that set can come as the actual value in a particular 
event. I can see in the code Siddhi doesn’t support this (Please correct me if 
I am wrong), so
I am thinking of changing the Siddhi language grammar to parse nominal 
attribute as below.

Example query: define stream weather(outlook nominal{sunny, overcast, rainy}, 
temperature nominal{hot, mild, cool}, humidity nominal{high, normal},windy 
nominal{TRUE, FALSE},play nominal{yes, no}).

If there is a better way to do this, please provide me some feedback.

During the classification algorithm it will use numeric values which maps to 
these possible values(Ex: sunny=0,overcase=1,rainy=2) and do the calculation 
using numeric values. Initial phase of the algorithm
I am implementing[1], I hope to process nominal values (which is easy to 
implement), then algorithm should support processing numeric data too.

If you have any feedback please let me know.

[1]http://homes.cs.washington.edu/~pedrod/papers/kdd00.pdf

Regards
Lahiru

_______________________________________________
Architecture mailing list
[email protected]<mailto:[email protected]>
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture




--
Paul Fremantle
CTO and Co-Founder, WSO2
OASIS WS-RX TC Co-chair, Apache Member

UK: +44 207 096 0336<tel:%2B44%20207%20096%200336>

blog: http://pzf.fremantle.org<http://pzf.fremantle.org/>
twitter.com/pzfreo<http://twitter.com/pzfreo>
[email protected]<mailto:[email protected]>

wso2.com<http://wso2.com/> Lean Enterprise Middleware

Disclaimer: This communication may contain privileged or other confidential 
information and is intended exclusively for the addressee/s. If you are not the 
intended recipient/s, or believe that you may have received this communication 
in error, please reply to the sender indicating that fact and delete the copy 
you received and in addition, you should not print, copy, retransmit, 
disseminate, or otherwise use the information contained in this communication. 
Internet communications cannot be guaranteed to be timely, secure, error or 
virus-free. The sender does not accept liability for any errors or omissions.
_______________________________________________
Architecture mailing list
[email protected]<mailto:[email protected]>
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

_______________________________________________
Architecture mailing list
[email protected]<mailto:[email protected]>
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to