Package ai.libs.jaicore.ml.weka
Class WekaUtil
- java.lang.Object
-
- ai.libs.jaicore.ml.weka.WekaUtil
-
public class WekaUtil extends java.lang.Object
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static booleanareInstancesEqual(weka.core.Instance a, weka.core.Instance b)static weka.classifiers.ClassifiercloneClassifier(weka.classifiers.Classifier c)static java.util.Collection<java.util.List<java.lang.String>>getAdmissibleSearcherEvaluatorCombinationsForAttributeSelection()Determines all attribute selection variants (search/evaluator combinations with default parametrization)static java.util.Collection<java.lang.Integer>[]getArbitrarySplit(IWekaInstances data, java.util.Random rand, double... portions)static java.util.List<weka.core.Attribute>getAttributes(weka.core.Instance inst)static java.util.List<weka.core.Attribute>getAttributes(weka.core.Instances inst, boolean includeClassAttribute)static java.util.Collection<java.lang.String>getBasicClassifiers()static java.util.Collection<java.lang.String>getBasicLearners()static java.util.Collection<java.lang.String>getBinaryClassifiers()static java.util.Collection<java.lang.String>getClassesActuallyContainedInDataset(weka.core.Instances data)static double[]getClassesAsArray(weka.core.Instances inst)static java.util.List<java.lang.Double>getClassesAsList(weka.core.Instances inst)static java.util.List<java.lang.String>getClassesDeclaredInDataset(weka.core.Instances data)static java.lang.StringgetClassifierDescriptor(weka.classifiers.Classifier c)static java.lang.StringgetClassName(weka.core.Instance instance)static java.util.List<java.lang.String>getClassNames(weka.core.Instance instance)static java.util.Map<java.lang.String,java.lang.Integer>getClassNameToIDMap(weka.core.Instance instance)static java.lang.StringgetClassSplitAssignments(java.util.List<weka.core.Instances> split)static java.util.List<java.io.File>getDatasetsInFolder(java.io.File folder)static java.lang.StringgetDescriptor(java.lang.Object o)static weka.core.InstancesgetEmptySetOfInstancesWithRefactoredClass(weka.core.Instances instances)static weka.core.InstancesgetEmptySetOfInstancesWithRefactoredClass(weka.core.Instances instances, java.util.List<java.lang.String> classes)static java.util.Collection<java.lang.String>getFeatureEvaluators()static int[]getIndicesOfContainedInstances(weka.core.Instances dataset, weka.core.Instances subset)Compute indices of instances of the original data set that are contained in the given subset.static int[]getIndicesOfSubset(weka.core.Instances data, weka.core.Instances subset)static weka.core.InstancesgetInstancesOfClass(weka.core.Instances data, java.lang.String className)static weka.core.InstancesgetInstancesOfClass(weka.core.Instances data, java.util.Collection<java.lang.String> classNames)static java.util.Map<java.lang.String,weka.core.Instances>getInstancesPerClass(weka.core.Instances data)static intgetIntValOfClassName(weka.core.Instance instance, java.lang.String className)static java.util.Collection<java.lang.String>getMetaLearners()static java.util.Collection<java.lang.String>getNativeMultiClassClassifiers()static weka.core.AttributegetNewClassAttribute(weka.core.Attribute attribute)static weka.core.AttributegetNewClassAttribute(weka.core.Attribute attribute, java.util.List<java.lang.String> classes)static intgetNumberOfInstancesFromClass(weka.core.Instances data, java.lang.String c)static intgetNumberOfInstancesFromClass(weka.core.Instances data, java.util.Collection<java.lang.String> cs)static java.util.Map<java.lang.String,java.lang.Integer>getNumberOfInstancesPerClass(weka.core.Instances data)static java.util.Collection<weka.core.Option>getOptionsOfWekaAlgorithm(java.lang.Object o)static java.util.Collection<java.lang.String>getPossibleClassValues(weka.core.Instance instance)static java.lang.StringgetPreprocessorDescriptor(weka.attributeSelection.ASEvaluation c)static java.lang.StringgetPreprocessorDescriptor(weka.attributeSelection.ASSearch c)static weka.core.InstancegetRefactoredInstance(weka.core.Instance instance)static weka.core.InstancegetRefactoredInstance(weka.core.Instance instance, java.util.List<java.lang.String> classes)static weka.core.InstancesgetRefactoredInstances(weka.core.Instances data, java.util.Map<java.lang.String,java.lang.String> classMap)static doublegetRelativeNumberOfInstancesFromClass(weka.core.Instances data, java.lang.String c)static doublegetRelativeNumberOfInstancesFromClass(weka.core.Instances data, java.util.Collection<java.lang.String> cs)static java.util.List<weka.core.Attribute>getReplacedAttributeList(java.util.List<weka.core.Attribute> attributes, weka.core.Attribute classAttribute)static java.util.Collection<java.lang.String>getSearchers()static java.util.List<IWekaInstances>getStratifiedSplit(IWekaInstances data, long seed, double portionOfFirstFold)static java.util.List<IWekaInstances>getStratifiedSplit(IWekaInstances data, java.util.Random random, double portionOfFirstFold)static java.util.List<weka.core.Instances>getStratifiedSplit(weka.core.Instances data, long seed, double portionOfFirstFold)static booleanhasOnlyNumericAttributes(weka.core.Instances instances)static org.nd4j.linalg.api.ndarray.INDArrayinstances2matrix(weka.core.Instances inst)Binarizes nominal features and returns an ND4J matrixstatic java.lang.StringinstancesToJsonString(weka.core.Instances data)static booleanisDebug()static booleanisValidPreprocessorCombination(java.lang.String searcher, java.lang.String evaluator)static weka.core.InstancesjsonStringToInstances(java.lang.String json)static weka.core.InstancesmergeClassesOfInstances(weka.core.Instances data, java.util.Collection<java.lang.String> cluster1, java.util.Collection<java.lang.String> cluster2)static weka.core.InstancesmergeClassesOfInstances(weka.core.Instances data, java.util.List<java.util.Set<java.lang.String>> instancesCluster)static booleanneedsBinarization(weka.core.Instances wekaInstances, boolean ignoreClassAttribute)Returns true if there is at least one nominal attribute in the given dataset that has more than 2 values.static java.lang.StringprintNestedWekaClassifier(weka.classifiers.Classifier c)static java.util.List<IWekaInstances>realizeSplit(IWekaInstances data, java.util.Collection<java.lang.Integer>[] split)static java.util.List<weka.core.Instances>realizeSplit(weka.core.Instances data, java.util.List<java.util.List<java.lang.Integer>> split)static java.util.List<IWekaInstances>realizeSplitAsCopiedInstances(IWekaInstances data, java.util.Collection<java.lang.Integer>[] split)static java.util.List<weka.core.Instances>realizeSplitAsCopiedInstances(weka.core.Instances data, java.util.List<java.util.List<java.lang.Integer>> split)static weka.core.InstancesremoveAttribute(weka.core.Instances data, int attribute)static weka.core.InstancesremoveAttributes(weka.core.Instances data, java.util.Collection<java.lang.Integer> attributes)static weka.core.InstanceremoveClassAttribute(weka.core.Instance inst)static weka.core.InstancesremoveClassAttribute(weka.core.Instances data)static voidsetDebug(boolean debug)static com.fasterxml.jackson.databind.node.ArrayNodesplitToJsonArray(java.util.Collection<java.lang.Integer>[] splitDecision)static weka.core.InstanceuseFilterOnSingleInstance(weka.core.Instance instance, weka.filters.Filter filter)
-
-
-
Method Detail
-
getBasicLearners
public static java.util.Collection<java.lang.String> getBasicLearners()
-
getBasicClassifiers
public static java.util.Collection<java.lang.String> getBasicClassifiers()
-
getNativeMultiClassClassifiers
public static java.util.Collection<java.lang.String> getNativeMultiClassClassifiers()
-
getBinaryClassifiers
public static java.util.Collection<java.lang.String> getBinaryClassifiers()
-
getFeatureEvaluators
public static java.util.Collection<java.lang.String> getFeatureEvaluators()
-
getSearchers
public static java.util.Collection<java.lang.String> getSearchers()
-
getMetaLearners
public static java.util.Collection<java.lang.String> getMetaLearners()
-
isValidPreprocessorCombination
public static boolean isValidPreprocessorCombination(java.lang.String searcher, java.lang.String evaluator)
-
getAdmissibleSearcherEvaluatorCombinationsForAttributeSelection
public static java.util.Collection<java.util.List<java.lang.String>> getAdmissibleSearcherEvaluatorCombinationsForAttributeSelection()
Determines all attribute selection variants (search/evaluator combinations with default parametrization)- Returns:
- Throws:
org.api4.java.algorithm.exceptions.AlgorithmExecutionCanceledExceptionjava.lang.InterruptedExceptionorg.api4.java.algorithm.exceptions.AlgorithmTimeoutedException
-
needsBinarization
public static boolean needsBinarization(weka.core.Instances wekaInstances, boolean ignoreClassAttribute)Returns true if there is at least one nominal attribute in the given dataset that has more than 2 values.- Parameters:
wekaInstances- dataset that is checkedignoreClassAttribute- if true class attribute is ignored.
-
getPossibleClassValues
public static java.util.Collection<java.lang.String> getPossibleClassValues(weka.core.Instance instance)
-
getClassifierDescriptor
public static java.lang.String getClassifierDescriptor(weka.classifiers.Classifier c)
-
getPreprocessorDescriptor
public static java.lang.String getPreprocessorDescriptor(weka.attributeSelection.ASSearch c)
-
getPreprocessorDescriptor
public static java.lang.String getPreprocessorDescriptor(weka.attributeSelection.ASEvaluation c)
-
getDescriptor
public static java.lang.String getDescriptor(java.lang.Object o)
-
getOptionsOfWekaAlgorithm
public static java.util.Collection<weka.core.Option> getOptionsOfWekaAlgorithm(java.lang.Object o)
-
getClassNames
public static java.util.List<java.lang.String> getClassNames(weka.core.Instance instance)
-
getClassNameToIDMap
public static java.util.Map<java.lang.String,java.lang.Integer> getClassNameToIDMap(weka.core.Instance instance)
-
getIntValOfClassName
public static int getIntValOfClassName(weka.core.Instance instance, java.lang.String className)
-
getClassSplitAssignments
public static java.lang.String getClassSplitAssignments(java.util.List<weka.core.Instances> split)
-
getInstancesOfClass
public static weka.core.Instances getInstancesOfClass(weka.core.Instances data, java.util.Collection<java.lang.String> classNames)
-
getInstancesOfClass
public static weka.core.Instances getInstancesOfClass(weka.core.Instances data, java.lang.String className)
-
getClassName
public static java.lang.String getClassName(weka.core.Instance instance)
-
getInstancesPerClass
public static java.util.Map<java.lang.String,weka.core.Instances> getInstancesPerClass(weka.core.Instances data)
-
getNumberOfInstancesPerClass
public static java.util.Map<java.lang.String,java.lang.Integer> getNumberOfInstancesPerClass(weka.core.Instances data)
-
getNumberOfInstancesFromClass
public static int getNumberOfInstancesFromClass(weka.core.Instances data, java.lang.String c)
-
getNumberOfInstancesFromClass
public static int getNumberOfInstancesFromClass(weka.core.Instances data, java.util.Collection<java.lang.String> cs)
-
getRelativeNumberOfInstancesFromClass
public static double getRelativeNumberOfInstancesFromClass(weka.core.Instances data, java.lang.String c)
-
getRelativeNumberOfInstancesFromClass
public static double getRelativeNumberOfInstancesFromClass(weka.core.Instances data, java.util.Collection<java.lang.String> cs)
-
getArbitrarySplit
public static java.util.Collection<java.lang.Integer>[] getArbitrarySplit(IWekaInstances data, java.util.Random rand, double... portions)
-
realizeSplit
public static java.util.List<IWekaInstances> realizeSplit(IWekaInstances data, java.util.Collection<java.lang.Integer>[] split)
-
realizeSplit
public static java.util.List<weka.core.Instances> realizeSplit(weka.core.Instances data, java.util.List<java.util.List<java.lang.Integer>> split)
-
realizeSplitAsCopiedInstances
public static java.util.List<weka.core.Instances> realizeSplitAsCopiedInstances(weka.core.Instances data, java.util.List<java.util.List<java.lang.Integer>> split)
-
realizeSplitAsCopiedInstances
public static java.util.List<IWekaInstances> realizeSplitAsCopiedInstances(IWekaInstances data, java.util.Collection<java.lang.Integer>[] split)
-
splitToJsonArray
public static com.fasterxml.jackson.databind.node.ArrayNode splitToJsonArray(java.util.Collection<java.lang.Integer>[] splitDecision)
-
getStratifiedSplit
public static java.util.List<weka.core.Instances> getStratifiedSplit(weka.core.Instances data, long seed, double portionOfFirstFold) throws org.api4.java.ai.ml.core.dataset.splitter.SplitFailedException, java.lang.InterruptedException- Throws:
org.api4.java.ai.ml.core.dataset.splitter.SplitFailedExceptionjava.lang.InterruptedException
-
getStratifiedSplit
public static java.util.List<IWekaInstances> getStratifiedSplit(IWekaInstances data, long seed, double portionOfFirstFold) throws org.api4.java.ai.ml.core.dataset.splitter.SplitFailedException, java.lang.InterruptedException
- Throws:
org.api4.java.ai.ml.core.dataset.splitter.SplitFailedExceptionjava.lang.InterruptedException
-
getStratifiedSplit
public static java.util.List<IWekaInstances> getStratifiedSplit(IWekaInstances data, java.util.Random random, double portionOfFirstFold) throws org.api4.java.ai.ml.core.dataset.splitter.SplitFailedException, java.lang.InterruptedException
- Throws:
org.api4.java.ai.ml.core.dataset.splitter.SplitFailedExceptionjava.lang.InterruptedException
-
getDatasetsInFolder
public static java.util.List<java.io.File> getDatasetsInFolder(java.io.File folder) throws java.io.IOException- Throws:
java.io.IOException
-
getRefactoredInstances
public static weka.core.Instances getRefactoredInstances(weka.core.Instances data, java.util.Map<java.lang.String,java.lang.String> classMap)
-
getRefactoredInstance
public static weka.core.Instance getRefactoredInstance(weka.core.Instance instance)
-
getRefactoredInstance
public static weka.core.Instance getRefactoredInstance(weka.core.Instance instance, java.util.List<java.lang.String> classes)
-
getEmptySetOfInstancesWithRefactoredClass
public static weka.core.Instances getEmptySetOfInstancesWithRefactoredClass(weka.core.Instances instances)
-
getEmptySetOfInstancesWithRefactoredClass
public static weka.core.Instances getEmptySetOfInstancesWithRefactoredClass(weka.core.Instances instances, java.util.List<java.lang.String> classes)
-
getAttributes
public static java.util.List<weka.core.Attribute> getAttributes(weka.core.Instances inst, boolean includeClassAttribute)
-
getAttributes
public static java.util.List<weka.core.Attribute> getAttributes(weka.core.Instance inst)
-
hasOnlyNumericAttributes
public static boolean hasOnlyNumericAttributes(weka.core.Instances instances)
-
getNewClassAttribute
public static weka.core.Attribute getNewClassAttribute(weka.core.Attribute attribute)
-
getNewClassAttribute
public static weka.core.Attribute getNewClassAttribute(weka.core.Attribute attribute, java.util.List<java.lang.String> classes)
-
getReplacedAttributeList
public static java.util.List<weka.core.Attribute> getReplacedAttributeList(java.util.List<weka.core.Attribute> attributes, weka.core.Attribute classAttribute)
-
mergeClassesOfInstances
public static weka.core.Instances mergeClassesOfInstances(weka.core.Instances data, java.util.Collection<java.lang.String> cluster1, java.util.Collection<java.lang.String> cluster2)
-
mergeClassesOfInstances
public static weka.core.Instances mergeClassesOfInstances(weka.core.Instances data, java.util.List<java.util.Set<java.lang.String>> instancesCluster)
-
getClassesDeclaredInDataset
public static java.util.List<java.lang.String> getClassesDeclaredInDataset(weka.core.Instances data)
-
getClassesActuallyContainedInDataset
public static java.util.Collection<java.lang.String> getClassesActuallyContainedInDataset(weka.core.Instances data)
-
getClassesAsArray
public static double[] getClassesAsArray(weka.core.Instances inst)
-
getClassesAsList
public static java.util.List<java.lang.Double> getClassesAsList(weka.core.Instances inst)
-
areInstancesEqual
public static boolean areInstancesEqual(weka.core.Instance a, weka.core.Instance b)
-
instancesToJsonString
public static java.lang.String instancesToJsonString(weka.core.Instances data)
-
jsonStringToInstances
public static weka.core.Instances jsonStringToInstances(java.lang.String json) throws java.lang.Exception- Throws:
java.lang.Exception
-
getIndicesOfContainedInstances
public static int[] getIndicesOfContainedInstances(weka.core.Instances dataset, weka.core.Instances subset)Compute indices of instances of the original data set that are contained in the given subset. This does only work for data sets that contain an instance at most once!- Parameters:
dataset-subset-- Returns:
-
useFilterOnSingleInstance
public static weka.core.Instance useFilterOnSingleInstance(weka.core.Instance instance, weka.filters.Filter filter) throws java.lang.Exception- Throws:
java.lang.Exception
-
removeAttribute
public static weka.core.Instances removeAttribute(weka.core.Instances data, int attribute) throws java.lang.Exception- Throws:
java.lang.Exception
-
removeAttributes
public static weka.core.Instances removeAttributes(weka.core.Instances data, java.util.Collection<java.lang.Integer> attributes) throws java.lang.Exception- Throws:
java.lang.Exception
-
removeClassAttribute
public static weka.core.Instances removeClassAttribute(weka.core.Instances data) throws java.lang.Exception- Throws:
java.lang.Exception
-
removeClassAttribute
public static weka.core.Instance removeClassAttribute(weka.core.Instance inst) throws java.lang.Exception- Throws:
java.lang.Exception
-
cloneClassifier
public static weka.classifiers.Classifier cloneClassifier(weka.classifiers.Classifier c) throws java.lang.Exception- Throws:
java.lang.Exception
-
getIndicesOfSubset
public static int[] getIndicesOfSubset(weka.core.Instances data, weka.core.Instances subset)
-
printNestedWekaClassifier
public static java.lang.String printNestedWekaClassifier(weka.classifiers.Classifier c)
-
isDebug
public static boolean isDebug()
-
setDebug
public static void setDebug(boolean debug)
-
instances2matrix
public static org.nd4j.linalg.api.ndarray.INDArray instances2matrix(weka.core.Instances inst) throws java.lang.ExceptionBinarizes nominal features and returns an ND4J matrix- Parameters:
inst-- Returns:
- Throws:
java.lang.Exception
-
-