/// <summary> /// Adding new precedents /// </summary> /// <param name="ageSize">Size of one age</param> /// <param name="maxAgeIterations">Limit count of ages</param> /// <param name="goodTeachingRatio">convergence condition</param> /// <param name="errorPiece">maximum piece of errors</param> /// <returns>train successeful? </returns> public CommonTrainInfo Train(int ageSize, int maxAgeIterations, double goodTeachingPiece, double errorPiece) { int maxAgeNumber = Math.Min(maxAgeIterations, TrainingSignatura.Count / ageSize); int errorLimitPerAge = (int)errorPiece * ageSize; int convergenceNum = (int)goodTeachingPiece * ageSize; CommonTrainInfo TeachInformation = new CommonTrainInfo(errorLimitPerAge, convergenceNum); for (int ageNumber = 0; ageNumber < maxAgeNumber; ageNumber++) { AgeTrainInfo ageInfo = TrainOneAge(ageSize, ageNumber * ageSize); TeachInformation.AddAge(ageInfo); if (TeachInformation.IsFailedLearning()) { return(TeachInformation); } if (TeachInformation.IsConvergence()) { TeachInformation.IsTrained = true; return(TeachInformation); } } TeachInformation.IsTrained = true;//!!!mb temp!!! return(TeachInformation); }
public void AddAge(AgeTrainInfo ageInfo) { Info.Add(ageInfo); }