Практика нейронных сетей. Урок 26. Тестируем нейросеть. Биржевые котировки
Автор megabax   
06.09.2018 г.
unit AIObj

Практика нейронных сетей. Урок 26. Тестируем нейросеть. Биржевые котировки

Чтобы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья и исходники находятся здесь.


На прошлом уроке мы разработали нейронную сеть, предсказывающую котировки. И протестировали ее, замерив ошибку в нормированном значении. Но что значат эти цифры, много это или мало? Для начала, необходимо хотя бы перевести нормированные знания в нормальные (в единицы цен или %-от цены).  Этим мы сейчас и займется, а заодно разработаем программу, которая выдаст нам подробный протокол тестирования. ...

...

...Все содержимое обработчика этой кнопки мы переносим в метод test_nn класса Core с некоторыми доработками. Сам обработчик теперь будет выглядеть вот так:

        private void btnTestNN_Click(object sender, EventArgs e)

        {

            int index = lbSpesies.SelectedIndex;

            if (index == -1) return;

            NeuralNet net = core.ga.population[index];

            core.test_nn(net);

        }

А метод test_nn  вот так: ...

....

... сюда мы как раз добавили добавление в диаграмму, простите за тавтологию.

Наконец, новый пункт меню:

Практика нейронных сетей. Урок 26. Тестируем нейросеть. Биржевые котировки

Вот его обработчик:

        private void tsmiVolatilityDiagramm_Click(object sender, EventArgs e)

        {

            DiagrammForm form=new DiagrammForm();

            VolatilityDiagramm vd=core.volatility_diagramm;

            vd.build(100);

            double total=0;

            for (int i = 0; i < vd.diagramm.Length; i++)

            {

                total+=vd.diagramm[i];

            }

            for (int i = 0; i < vd.diagramm.Length; i++)

            {

                int item = vd.diagramm[i];

                double r = Convert.ToDouble(i) / Convert.ToDouble(vd.diagramm.Length - 1);

                double x = r * (vd.max - vd.min) + vd.min;

                double y = Convert.ToDouble(item)/total*100.0;

                form.chart.Series[0].Points.AddXY(x, y);

            }

            form.Show();

        }

Ну и смотрим саму диаграмму:

Практика нейронных сетей. Урок 26. Тестируем нейросеть. Биржевые котировки

Как видим, в основам волатильность не превышает 2%. Так что ошибка 0.8% от цены довольно большая. Мы можем предположить, что если будет торговать на основе данной нейронной сети, то потерпит убыток. Эту гипотезу мы проверим на следующем уроке.

 

Используемая литература

1.       Шуравин А. П. Исследование обучаемости нейронной сети на примере предсказания числовых рядов // Научные достижения и открытия 2017: сборник статей III Международного научно-практического конкурса. ПензаНаука и Просвещение, 2017. С. 31-36. (https://elibrary.ru/item.asp?id=30050179)


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями  программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. 


Последнее обновление ( 05.10.2018 г. )