Hi
I want to ask you how to obtain the data after labeling unlabeled data.
What I mean is if I feed JCLAL a labeled and unlabeled data and perform the active learning, how do I get to obtain the data after labeling them?
I hope my question is clear, and excuse my bad english.
best regards
Abdul
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sorry for the delay, but we are working hard in the next version of JCLAL. In the new version available we have included a new feature that possibly answers your question.
The class hierarchy of JCLAL is quite flexible that allows to include new features, modify or extend existing ones, with a very low cost.
We have included a real-usage scenario in the current version of JCLAL, where the user provides a small labeled set from which the initial classifier is trained, and an unlabeled set for determining the unlabeled instances that should be query in each iteration. In each iteration, the unlabeled instances selected are showed to the user, the user labels the instances and they are added to the labeled set. This real-usage scenario allows to obtain the set of labeled instances at the end of the session for further analysis.
This is an example for using this new feature:
<experiment> <process evaluation-method-type="net.sf.jclal.evaluation.method.RealScenario"> <file-labeled>datasets/abalone-labeled.arff</file-labeled> <file-unlabeled>datasets/abalone-unlabeled.arff</file-unlabeled> <algorithm type="net.sf.jclal.activelearning.algorithm.ClassicalALAlgorithm"> <stop-criterion type="net.sf.jclal.activelearning.stopcriteria.MaxIteration"> <max-iteration>10</max-iteration> </stop-criterion> <stop-criterion type="net.sf.jclal.activelearning.stopcriteria.UnlabeledSetEmpty"> <listener type="net.sf.jclal.listener.RealScenarioListener"> <informative-instances>reports/real-scenario-informative-data.txt</informative-instances> </listener> <scenario type="net.sf.jclal.activelearning.scenario.PoolBasedSamplingScenario"> <batch-mode type="net.sf.jclal.activelearning.batchmode.QBestBatchMode"> <batch-size>1</batch-size> </batch-mode> <oracle type="net.sf.jclal.activelearning.oracle.ConsoleHumanOracle"> <query-strategy type="net.sf.jclal.activelearning.singlelabel.querystrategy.EntropySamplingQueryStrategy"> <wrapper-classifier type="net.sf.jclal.classifier.WekaClassifier"> <classifier type="weka.classifiers.bayes.NaiveBayes"> </classifier></wrapper-classifier> </query-strategy> </oracle></scenario> </stop-criterion></algorithm> </process> </experiment>
All oracles have a object that store the last instances that have been selected, and finally, these instances can be saved into a file for further analysis.
I hope that this new feature can help you. Should you still have any other suggestions for improvement, please let us know.
Best regards
Oscar
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi
I want to ask you how to obtain the data after labeling unlabeled data.
What I mean is if I feed JCLAL a labeled and unlabeled data and perform the active learning, how do I get to obtain the data after labeling them?
I hope my question is clear, and excuse my bad english.
best regards
Abdul
Hi Abdul,
Sorry for the delay, but we are working hard in the next version of JCLAL. In the new version available we have included a new feature that possibly answers your question.
The class hierarchy of JCLAL is quite flexible that allows to include new features, modify or extend existing ones, with a very low cost.
We have included a real-usage scenario in the current version of JCLAL, where the user provides a small labeled set from which the initial classifier is trained, and an unlabeled set for determining the unlabeled instances that should be query in each iteration. In each iteration, the unlabeled instances selected are showed to the user, the user labels the instances and they are added to the labeled set. This real-usage scenario allows to obtain the set of labeled instances at the end of the session for further analysis.
This is an example for using this new feature:
<experiment> <process evaluation-method-type="net.sf.jclal.evaluation.method.RealScenario"> <file-labeled>datasets/abalone-labeled.arff</file-labeled> <file-unlabeled>datasets/abalone-unlabeled.arff</file-unlabeled> <algorithm type="net.sf.jclal.activelearning.algorithm.ClassicalALAlgorithm"> <stop-criterion type="net.sf.jclal.activelearning.stopcriteria.MaxIteration"> <max-iteration>10</max-iteration> </stop-criterion> <stop-criterion type="net.sf.jclal.activelearning.stopcriteria.UnlabeledSetEmpty"> <listener type="net.sf.jclal.listener.RealScenarioListener"> <informative-instances>reports/real-scenario-informative-data.txt</informative-instances> </listener> <scenario type="net.sf.jclal.activelearning.scenario.PoolBasedSamplingScenario"> <batch-mode type="net.sf.jclal.activelearning.batchmode.QBestBatchMode"> <batch-size>1</batch-size> </batch-mode> <oracle type="net.sf.jclal.activelearning.oracle.ConsoleHumanOracle"> <query-strategy type="net.sf.jclal.activelearning.singlelabel.querystrategy.EntropySamplingQueryStrategy"> <wrapper-classifier type="net.sf.jclal.classifier.WekaClassifier"> <classifier type="weka.classifiers.bayes.NaiveBayes"> </classifier></wrapper-classifier> </query-strategy> </oracle></scenario> </stop-criterion></algorithm> </process> </experiment>
All oracles have a object that store the last instances that have been selected, and finally, these instances can be saved into a file for further analysis.
I hope that this new feature can help you. Should you still have any other suggestions for improvement, please let us know.
Best regards
Oscar