![JAR search and dependency download from the Maven repository](/logo.png)
com.enterprisemath.math.nn.SupervisedTrainingRecord Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of em-math Show documentation
Show all versions of em-math Show documentation
Advanced mathematical algorithms.
The newest version!
package com.enterprisemath.math.nn;
import com.enterprisemath.utils.DomainUtils;
import com.enterprisemath.utils.ValidationUtils;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
/**
* Definition of the training record for supervised learning.
*
* @author radek.hecl
*/
public class SupervisedTrainingRecord {
/**
* Builder object.
*/
public static class Builder {
/**
* Inputs.
*/
private Map inputs = new HashMap();
/**
* Desired outputs.
*/
private Map outputs = new HashMap();
/**
* Sets inputs.
*
* @param inputs inputs
* @return this instance
*/
public Builder setInputs(Map inputs) {
this.inputs = DomainUtils.softCopyMap(inputs);
return this;
}
/**
* Adds input.
*
* @param key key
* @param value value
* @return this instance
*/
public Builder addInput(String key, double value) {
inputs.put(key, value);
return this;
}
/**
* Sets outputs.
*
* @param outputs outputs
* @return this instance
*/
public Builder setOutputs(Map outputs) {
this.outputs = DomainUtils.softCopyMap(outputs);
return this;
}
/**
* Adds output.
*
* @param key key
* @param value value
* @return this instance
*/
public Builder addOutput(String key, double value) {
outputs.put(key, value);
return this;
}
/**
* Builds the result object.
*
* @return created object
*/
public SupervisedTrainingRecord build() {
return new SupervisedTrainingRecord(this);
}
}
/**
* Inputs.
*/
private Map inputs;
/**
* Desired outputs.
*/
private Map outputs;
/**
* Creates new instance.
*
* @param builder builder object
*/
public SupervisedTrainingRecord(Builder builder) {
inputs = DomainUtils.softCopyUnmodifiableMap(builder.inputs);
outputs = DomainUtils.softCopyUnmodifiableMap(builder.outputs);
guardInvariants();
}
/**
* Guards this object to be consistent. Throws exception if this is not the case.
*/
private void guardInvariants() {
ValidationUtils.guardNotNullMap(inputs, "inputs cannot have null element");
ValidationUtils.guardNotNullMap(outputs, "outputs cannot have null element");
}
/**
* Returns inputs.
*
* @return inputs
*/
public Map getInputs() {
return inputs;
}
/**
* Returns outputs.
*
* @return outputs
*/
public Map getOutputs() {
return outputs;
}
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
/**
* Shortcut to create new instance.
*
* @param data data
* @param category
* @return created object
*/
/**
* Creates new instance.
*
* @param inputs inputs
* @param outputs desired outputs
* @return created instance
*/
public static SupervisedTrainingRecord create(Map inputs, Map outputs) {
return new SupervisedTrainingRecord.Builder().
setInputs(inputs).
setOutputs(outputs).
build();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy