public class RegularSolutionNormalizer extends BaseDatasetNormalizer
Let y
be the variable to be normalized, x
be the
composition of the material where x[Z] is the fraction of element with atomic
number Z, and y'
be the normalized class variable.
y = y' * sum[ x[i] * x[j] ] for j>i ]
This model is designed to normalize class values where the class must be equal to zero for unary compositions, and increases in magnitude when the amount of mixing is large (e.g., formation energy).
Note: You should filter out unary compositions before using this filter.
This normalization procedure would lead to division by zero for unary compounds.
For numerical stability, we multiple them by -1 during the normalization procedure,
but we recommend you filter out unary entries before running this normalizer.
Usage: *No Options*
Constructor and Description |
---|
RegularSolutionNormalizer() |
Modifier and Type | Method and Description |
---|---|
static double |
computeMixingTerm(CompositionEntry entry)
Compute the mixing term for a solution model.
|
protected void |
normalizeAttributes(Dataset Data)
Perform the actual normalization on the attributes
|
protected void |
normalizeClassVariable(Dataset Data)
Perform the actual normalization on the class variable.
|
java.lang.String |
printUsage()
Print out required format for options.
|
protected void |
restoreAttributes(Dataset Data)
Perform the actual restoration on the attributes
|
protected void |
restoreClassVariable(Dataset Data)
Perform the actual restoration on the class variables (measured and predicted!)
|
void |
setOptions(java.util.List<java.lang.Object> Options)
Set any options for this object.
|
protected void |
trainOnAttributes(Dataset Data)
Perform the actual training work for attributes.
|
protected void |
trainOnMeasuredClass(Dataset Data)
Perform the actual training work for the class variable.
|
about, clone, isTrained, normalize, printCommand, printDescription, restore, runCommand, setToNormalizeAttributes, setToNormalizeClass, test, train, willNormalizeAttributes, willNormalizeClass
public void setOptions(java.util.List<java.lang.Object> Options) throws java.lang.Exception
Options
Options
- Array of options as Objects - can be null
java.lang.Exception
- if problem with inputspublic java.lang.String printUsage()
Options
protected void trainOnAttributes(Dataset Data)
BaseDatasetNormalizer
trainOnAttributes
in class BaseDatasetNormalizer
Data
- Training setprotected void trainOnMeasuredClass(Dataset Data)
BaseDatasetNormalizer
NOTE: Use the measured class variable to train normalizer.
trainOnMeasuredClass
in class BaseDatasetNormalizer
Data
- Training setprotected void normalizeAttributes(Dataset Data)
BaseDatasetNormalizer
normalizeAttributes
in class BaseDatasetNormalizer
Data
- Dataset to be transformedprotected void restoreAttributes(Dataset Data)
BaseDatasetNormalizer
restoreAttributes
in class BaseDatasetNormalizer
Data
- Dataset to be transformedprotected void normalizeClassVariable(Dataset Data)
BaseDatasetNormalizer
normalizeClassVariable
in class BaseDatasetNormalizer
Data
- Dataset to be transformedprotected void restoreClassVariable(Dataset Data)
BaseDatasetNormalizer
restoreClassVariable
in class BaseDatasetNormalizer
Data
- Dataset to be transformedpublic static double computeMixingTerm(CompositionEntry entry)
where x[Z] is the fraction of element Z.
Note: If number of elements is 1, returns -1.
entry
- Entry for which to compute mixing term