public class Classifier1D
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
EQUAL_NUMBER |
static java.lang.String |
EQUAL_RANGE |
static java.lang.String |
JENKS_BREAKS |
static java.lang.String |
KMEANS_OPTIMIZE |
static java.lang.String |
MAX_BREAKS |
static java.lang.String |
MEAN_STDEV |
Constructor and Description |
---|
Classifier1D() |
Modifier and Type | Method and Description |
---|---|
static double[] |
adjustLimitsKMeans(double[] data,
double[] oldLimits)
Moves the limits, by assigning data points to the closest class mean value.
|
static double[] |
calcClassMeans(double[] data,
int[] classes,
int numClasses) |
static double |
calcGVF(double[] data,
double[] limits,
double SDAM)
GVF (goodness of variance fit): see B.D.
|
static double |
calcGVF(double SDAM,
double SDCM)
GVF (goodness of variance fit): see B.D.
|
static double |
calcSDAM(double[] data)
SDAM (squared deviation [from] array mean): see B.D.
|
static double |
calcSDCM(double[] data,
int[] classes,
double[] classMeans,
int numClasses)
SDCM (squared deviations [from] class means): see B.D.
|
static int[] |
classifyData(double[] data,
double[] limits)
Classifies the given data according to the given limits.
|
static double[] |
classifyEqualNumber(double[] data,
int numberClasses)
calculates class limits with equal number, which is euqal to the "quantiles" method.
|
static double[] |
classifyEqualRange(double[] data,
int numberClasses)
calculates class limits with equal range
|
static double[] |
classifyKMeansOnExistingBreaks(double[] data,
int numberClasses,
int initialLimitAlgorithm)
calculates class limits using optimal breaks method (see e.g.
|
static double[] |
classifyMaxBreaks(double[] data,
int numberClasses)
calculates class limits using Maximum Breaks method (see e.g.
|
static double[] |
classifyMeanStandardDeviation(double[] data,
int numberClasses)
calculates class limits using mean value and standard deviation, i.e. for 5 classes:
c1: values < m- 2std, c2: m - 2std < values < m - 1std,
c3: m - 1std < values < m + 1std, c4: m + 1std < values < m + 2std
c5: values > m- 2std
|
static double[] |
classifyNaturalBreaks(double[] data,
int numberClasses)
calculates class limits using Jenks's Optimisation Method(Natural Break)
|
static java.util.List |
getAvailableClassificationMethods() |
static boolean |
isInClass(double val,
double lowerBound,
double upperBound)
Checks if value is within limits.
|
public static java.lang.String EQUAL_RANGE
public static java.lang.String EQUAL_NUMBER
public static java.lang.String MEAN_STDEV
public static java.lang.String MAX_BREAKS
public static java.lang.String JENKS_BREAKS
public static java.lang.String KMEANS_OPTIMIZE
public static java.util.List getAvailableClassificationMethods()
public static double[] classifyEqualRange(double[] data, int numberClasses)
data
- numberClasses
- public static double[] classifyEqualNumber(double[] data, int numberClasses)
data
- numberClasses
- public static double[] classifyMeanStandardDeviation(double[] data, int numberClasses)
data
- numberClasses
- public static double[] classifyMaxBreaks(double[] data, int numberClasses)
data
- numberClasses
- public static double[] classifyNaturalBreaks(double[] data, int numberClasses)
data
- numberClasses
- public static double[] classifyKMeansOnExistingBreaks(double[] data, int numberClasses, int initialLimitAlgorithm)
data
- numberClasses
- initialLimitAlgorithm
- 1: maxBreaks, 2: equalRange, 3: quantiles, 4: MeanStd-Dev 5: Jenkspublic static double[] adjustLimitsKMeans(double[] data, double[] oldLimits)
data
- (sortedData from min to max, e.g. use jmathtools DoubleArray.sort())oldLimits
- public static int[] classifyData(double[] data, double[] limits)
data
- limits
- The break/decision values between the classes. Highest and lowest values
are not delivered. Example Limits are for instance delivered by the
Classifier1D.classifyEqualNumber() method.public static boolean isInClass(double val, double lowerBound, double upperBound)
val
- lowerBound
- upperBound
- public static double calcSDAM(double[] data)
data
- public static double calcSDCM(double[] data, int[] classes, double[] classMeans, int numClasses)
data
- classes
- the classes for every item of the data arrayclassMeans
- numClasses
- public static double calcGVF(double SDAM, double SDCM)
SDAM
- squared deviation [from] array meanSDCM
- squared deviation [from] class meanpublic static double calcGVF(double[] data, double[] limits, double SDAM)
data
- limits
- The break/decision values between the classes. Highest and lowest values
are not delivered. Example Limits are for instance delivered by the
Classifier1D.classifyEqualNumber() method.SDAM
- squared deviation [from] array meanpublic static double[] calcClassMeans(double[] data, int[] classes, int numClasses)
data
- input dataclasses
- the vector containing the information on the class for an itemnumClasses
- the number of classes