/// <summary> /// 使用指定时间区间内的指标数据训练新的bpnn网络 /// </summary> /// <param name="startDate">开始时间</param> /// <param name="endDate">结束时间</param> /// <param name="sOutput">网络保存地址</param> public void Train(int sampleNum, int tesNum, DateTime date) { string sOutput = DataHelper.GetConfig("networkPath"); TrainingRoom tr = new TrainingRoom(); var samples = new List <TrainingRoom.Sample>(); var dates = getSimilarPlate(date, 5, 0.9, 0.033, 0.033, 0.033, 10); if (dates == null) { return; } for (int i = 0; i < dates.Count; i++) { samples.AddRange(tr.GetSample(Convert.ToDateTime(dates[i]))); } var samplesTest = new List <TrainingRoom.Sample>(); var samplesTrain = new List <TrainingRoom.Sample>(); while (sampleNum > 0) { var index = OtherHelper.getRand(0, samples.Count - 1); samplesTrain.Add(samples[index]); samples.RemoveAt(index); sampleNum--; } while (tesNum > 0) { var index = OtherHelper.getRand(0, samples.Count - 1); samplesTest.Add(samples[index]); samples.RemoveAt(index); tesNum--; } samples.Clear(); tr.TrainBPNN(33, new int[2] { 12, 6 }, 1, 0.05, 0.01, 0.0001, DateTime.Now.AddMinutes(10), samplesTrain, sOutput); }