public OptimizationEpoch(IComputationalUnit<double?> unit, IFeatureMatrixProvider matrixProvider, bool supervised = true) { Contract.Requires(matrixProvider != null); Contract.Requires(unit != null); Contract.Requires(!supervised || matrixProvider is ISupervisedFeatureMatrixProvider); Contract.Requires((!supervised && unit is IUnsupervisedComputation<double>) || (supervised && unit is ISupervisedComputation<double>)); Setup(unit, matrixProvider, null, 1, supervised); }
public OptimizationEpoch(IComputationalUnit<double?> unit, IFeatureMatrixProvider matrixProvider, IFeatureMatrixProvider validationMatrixProvider, int validationFrequency = 10, bool supervised = true) { Contract.Requires(matrixProvider != null); Contract.Requires(unit != null); Contract.Requires(validationFrequency >= 1); Contract.Requires(!supervised || matrixProvider is ISupervisedFeatureMatrixProvider); Contract.Requires(!supervised || validationMatrixProvider is ISupervisedFeatureMatrixProvider); Contract.Requires((!supervised && unit is IUnsupervisedComputation<double>) || (supervised && unit is ISupervisedComputation<double>)); Setup(unit, matrixProvider, validationMatrixProvider, validationFrequency, supervised); }
public FeaturedComputation(IComputationalUnit<double?> unit, int numberOfIterations = 1, object featuredObject = null) { Contract.Requires(unit != null); Contract.Requires(numberOfIterations >= 1); Strings inIDs, outIDs; ExtractFeatureInformation(featuredObject, unit.InputInterface.Length, unit.OutputInterface.Length, out desc, out inIDs, out outIDs); Unit = unit; InputFeatureIDs = inIDs; OutputFeatureIDs = outIDs; NumberOfIterations = numberOfIterations; Initialize(); }
private void Setup(IComputationalUnit<double?> unit, IFeatureMatrixProvider matrixProvider, IFeatureMatrixProvider validationMatrixProvider, int validationFrequency, bool supervised) { IsSupervised = supervised; MatrixProvider = matrixProvider; if ((ValidationMatrixProvider = validationMatrixProvider) != null) { // TODO: Check provider compatibility. } Unit = unit; ValidationFrequency = validationFrequency; BestResult = new OptimizationResult(this, true); CurrentResult = new OptimizationResult(this); BestValidationResult = new OptimizationResult(this, true); CurrentValidationResult = new OptimizationResult(this); }