Re: How to classify unseen multi instance data?

Ulrich Mayring <[email protected]> Sat, 27 Jan 2024 13:56:31 +0100
Newsgroups gmane.comp.ai.weka
Message-ID <[email protected]>
Hi Peter,

first off, many thanks for your explanations. As you can see, I am a 
total beginner in Weka terminology and concepts.

Am 25.01.24 um 21:44 schrieb Peter Reutemann:
> 
> At prediction time you re-use (rather than re-create) the header from
> the training data to create new Instance objects. These Instance
> objects you then present to the classifier to obtain predictions.

Are there any examples for how this procedure works with multi-instance 
data?

I am using a DatabaseLoader to load the header. Unfortunately calling 
loader.getStructure() does not work due to a bug in Weka, so I have to 
use loader.getDataSet() and subsequently delete all Instances, which 
will leave me with just the header. But then I need to add all 
Attributes, because they are not contained in the header. This is 
basically the same procedure I previously did in training.

Maybe what you mean is that after training I should somehow save the 
header to the database and reload it later? So that I would already have 
all the attributes? Or do you mean that the header is contained in the 
Classifier and I could get it from there after loading the trained 
Classifier?

> Yes and no. Whilst it would be nice to determine this via the Java
> type, the general RELATIONAL attribute is column-based and not
> row-based (and we already have DenseInstance and SparseInstance row
> types). The idea behind the attribute is to represent data from a
> relational database. But, this attribute can also be used to represent
> the simpler multi-instance data, by encapsulating the bag in such an
> attribute.

Why does it matter where the data is coming from (relational database or 
files or maybe an external API)? And what is the difference in terms of 
internal structure between "simpler multi-instance data" and "data from 
a relational database"? In the documentation I found only one type of 
multi-instance data and that is the "bag" type.

> The RELAGGS filter is specifically designed for processing data from a
> relational database (the original code worked straight off JDBC
> databases):
> https://weka.sourceforge.io/doc.stable/weka/filters/unsupervised/attribute/RELAGGS.html

Are there any examples how to use this filter in Java? What kind of 
processing does it do?

Kind regards, Ulrich


_______________________________________________
Wekalist mailing list -- [email protected]
Send posts to [email protected]
To unsubscribe send an email to [email protected]
To subscribe, unsubscribe, etc., visit https://list.waikato.ac.nz/postorius/lists/wekalist.list.waikato.ac.nz
List etiquette: http://www.cs.waikato.ac.nz/~ml/weka/mailinglist_etiquette.html