Пример #1
0
        /// <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);
        }