public void TestRPROPFolded() { IMLDataSet trainingData = XOR.CreateNoisyXORDataSet(10); BasicNetwork network = NetworkUtil.CreateXORNetworkUntrained(); var folded = new FoldedDataSet(trainingData); IMLTrain train = new ResilientPropagation(network, folded); var trainFolded = new CrossValidationKFold(train, 4); EncogUtility.TrainToError(trainFolded, 0.2); XOR.VerifyXOR((IMLRegression)trainFolded.Method, 0.2); }
/// <summary> /// Create a trainer, use cross validation if enabled. /// </summary> /// <param name="method">The method to use.</param> /// <param name="trainingSet">The training set to use.</param> /// <returns>The trainer.</returns> private IMLTrain CreateTrainer(IMLMethod method, IMLDataSet trainingSet) { var factory = new MLTrainFactory(); String type = Prop.GetPropertyString( ScriptProperties.MlTrainType); String args = Prop.GetPropertyString( ScriptProperties.MlTrainArguments); EncogLogging.Log(EncogLogging.LevelDebug, "training type:" + type); EncogLogging.Log(EncogLogging.LevelDebug, "training args:" + args); IMLTrain train = factory.Create(method, trainingSet, type, args); if (_kfold > 0) { train = new CrossValidationKFold(train, _kfold); } return(train); }
public NeuralNetworkModel(VersatileMLDataSet dataset) { dataset.NormHelper.NormStrategy = new BasicNormalizationStrategy(0, 1, 0, 1); dataset.Normalize(); var inputs = dataset.NormHelper.InputColumns.Count; var outputs = dataset.NormHelper.OutputColumns.Count; var hiddens = (inputs + outputs) * 1.5; var method = (BasicNetwork) new MLMethodFactory().Create( MLMethodFactory.TypeFeedforward, $"?:B->SIGMOID->{hiddens}:B->SIGMOID->?", inputs, outputs); var folds = new FoldedDataSet(dataset); folds.Fold(5); var propTrainer = new ResilientPropagation(method, folds); _kfoldTrainer = new CrossValidationKFold(propTrainer, 5); }