2.1.1 Призначення програмних засобів
Розроблені програмні засоби призначені:
1) для побудови лінійних класифікаторів на основі розроблених алгоритмів з використанням сучасних бібліотек лінійної алгебри,
2) для формування тестових задач побудови лінійних класифікаторів різних видів для проведення обчислювальних експериментів з порівняння різних методів побудови лінійних класифікаторів.
Розроблені програмні засоби розташовані у контейнеризованому додатку (з використанням технології docker) з метою їх використання як на персональному комп’ютері, так і на кластері, гріді, хмарному середовищі.
Потенційно, одним з середовищ для використання цих програмних засобів може стати Cancer Genomics Cloud – спеціалізована хмарна платформа, яка надає вільний доступ до генетичних, медичних баз даних, зокрема – The Cancer Genome Atlas (TCGA), та більш ніж 400-х додатків призначених для аналізу даних з цієї тематики (200 з яких – у вільному доступі), при цьому існує можливість розширювати цей перелік власними додатками, наборами даних, результатами досліджень (на сьогодні на цьому сервісі їх існує понад 500000), залучати до проектів інших дослідників.
Завдяки контейнеризованій формі розроблені програмні засоби можуть стати загальнодоступними інструментами та додатками цього та інших сервісів в задачах побудови оптимізованих лінійних класифікаторів із застосуванням сучасних бібліотек лінійної алгебри.
2.1.2 Перелік та характеристики окремих компонент програмних засобів
Програмні засоби складаються з 7 компонент реалізованих мовами С++, Python, Octave.
Перелік компонент:
- NonSmoothLCLib (статична бібліотека C++) – бібліотечний компонент побудови бінарного лінійного класифікатора методами негладкої оптимізації на основі розроблених алгоритмів та сучасних бібліотек лінійної алгебри;
- SVMDataExchange (статична бібліотека C++) – бібліотечний компонент для імпорту, експорту даних у форматі розріджених матриць LIBSVM;
- NonSmooth (динамічна бібліотека С++) – бібліотечний компонент у форматі придатному для використання у мові Python;
- NonSmoothSVC (клас Python) – бінарний лінійний класифікатор із застосуванням методів негладкої оптимізації придатний для сумісного використання з бібліотекою scikit–learn;
- ShowHyperplains (додаток Octave) – компонент який візуалізує дві гіперплощини отримані різними методами та розсіювання спостережень двох класів. Також візуалізує границі проміжку між класами;
- SVCMethodsComparison (додаток Python) – компонент для проведення обчислювальних експериментів з порівняння різних методів побудови лінійних класифікаторів;
- RandGen (додаток Python) – компонент генерації штучних даних з заданими параметрами для порівняння різних методів побудови лінійних класифікаторів.
Рисунок 1 – Діаграма залежностей між компонентами