Рисунок 2.1 - Схема патерну MVC
Важливо відзначити, що як уявлення, так і контролер залежать від моделі. Однак модель не залежить ні від уявлення, ні від контролера. Тим самим досягається призначення такого поділу: воно дозволяє будувати модель незалежно від візуального представлення, а також створювати кілька різних подань для однієї моделі.
3. Реалізація програми
3.1 Короткий опис програми
Цей додаток автоматизує роботу з прогнозування часових рядів із застосуванням фрактального аналізу. Веб-інтерфейс програми дозволяє користувачеві додавати історичні дані різних часових рядів і робити прогноз за допомогою нейронної мережі, що використовує на етапі формування вхідних даних фрактальний аналіз.
Користувач може переглядати історичні дані різних котирувань, які він може з легкістю імпортувати в додаток.
Також в додатку є можливість проведення RS аналізу часових рядів для знаходження експоненти Херста. Вона у свою чергу необхідна для розрахунку фрактальної розмірності при проведенні псевдофазовой реконструкції. Присутній також можливість розрахунку оптимальної тимчасової затримки.
Характерною рисою програми є можливість проведення псевдофазовой реконструкції для підготовки вхідних дан?? их для нейронної мережі. Також є можливість навчання нейронної мережі. У додатку використовується багатошаровий перцептрон, а нейронна мережа навчається методом зворотного поширення помилки.
У підсумку можна отримати прогноз на майбутній період.
3.2 Архітектура програми
Нижче представлена ??Діаграма класів додатки (Малюнок 3.1):
Малюнок 3.1 - Діаграма класів
Клас Quote описаний в таблиці 1.
Таблиця 1 - Опис класу Quote
Властивості і методиОпісаніеIdунікальний ідентифікатор котіровкіNameназваніе тікераurlпуть, за яким доступні дані котирувань по тікеруHurstзначеніе показника ХерстаtableName () повертає ім'я таблиці, з якою працює модельrules () повертає масив з параметрами валідацііattributeLabels () повертає масив з російськомовними назвами свойствsearch ( $ model) повертає масив всіх об'єктів цієї моделі
Клас Stock описаний в таблиці 2.
Таблиця 2 - Опис класу Stock
Властивості і методиОпісаніеIdунікальний ідентифікатор тікераticker_idвнешній ключ на таблицю з тікераміDateДатаQuoteзначеніе котіровкіtableName () повертає ім'я таблиці, з якою працює модельrules () повертає масив з параметрами валідацііattributeLabels () повертає масив з російськомовними назвами свойствsearch ($ model) повертає масив всіх об'єктів цієї моделіrelations () повертає масив із зовнішніми зв'язками даної моделі з іншими моделяміlinear_regression ($ x, $ y) вважає регресію
Клас NeuralNetwork описаний в таблиці 3.
Таблиця 3 - Опис класу NeuralNetwork
Властивості і методиОпісаніеNeuralNetwork ($ nodecount) конструктор нейронної сетіactivation ($ value) повертає значення вихідного нейрона після застосування до нього функції актівацііСвойства і методиОпісаніеaddControlData ($ input, $ output) додає дані для навчання, не для тестірованіяaddTestData ( $ input, $ output) додає тестові дані для навчання НСcalculate ($ input) повертає вихідне значення НС для заданого вхідного вектораderivative_activation ($ value) реалізує похідну функції актівацііgetControlDataIDs () повертає ідентифікатори вхідних векторів при тестірованііgetLearningRate ($ layer) повертає коефіцієнт швидкості навчання для певного слояgetMomentum () повертає імпульс НСgetRandomWeight ($ layer) - при генерації НС задає рандомний ваги нейроновgetTestDataIDs () повертає ідентифікатори вхідних векторів при обученііisVerbose () відображаються Чи помилки НСload ($ filename) по заданому шляху завантажує НСsave ($ filename) зберігає НС в файлsetLearningRate ( $ learningrate) задає коефіцієнт швидкості обученіяsetMomentum ($ momentum) задає імпульс НСsetVerbose ($ is_verbose) задає відображення помилок НСshowWeights () виводить поточні ваги нейроновtrain ($ maxEpochs, $ maxError) запускає тренувальний процес
Клас MainController описаний в таблиці 4.
Таблиця 4 - Опис класу MainController
Властивості і методиОпісаніеIndex () виводить головну сторінку пріложеніяLogin () виводить сторінку логіна, а також проводить аутентифікацію і авторізаціюLogout () видаляє сесію користувача
Клас EParseQuotesManager описаний в таблиці 5.
Таблиця...