сіфікатору OneVsRestClassifier (). Даний метаклассіфікатор використовує передані йому матриці для виконання завдання многоклассовой многотемной класифікації за допомогою обраного нами класифікатора і стратегії One-vs-all.
Для полегшення завдання послідовного виклику функцій CountVectorizer (), TfidfTransformer () і передачі результатів метаклассіфікатору OneVsRestClassifier () ми скористаємося так званим конвеєром - Pipeline (). Конвеєр просто послідовно застосовує передані йому функції і передає їх результат заданої класифікатору.
Після навчання класифікатора на тестових даних (команда fit ()) ми виконуємо пророкування для даних в X_test, тобто намагаємося пояснити зміни в трендах, збережені в даної змінної. Отримані передбачення проходять зворотне перетворення з формату бінарної матриці, що містить мітки про присутність або відсутність певного класу в прикладі в формат звичайної текстової інформації за допомогою функції inverse_transform (). Отримані передбачення зберігаються в текстовий файл. Приклад результату:
, NegSpike, AAB, Apple Inc, EQTY, REIT, USD, Asian, JPN, XTKS, Internet Software amp; Services , (American, Bought Back, EQTY, FOX, Movies amp; Entertainment, Standard, Twenty-First Century Fox Inc, USA, USD, XNGS)
. 0 - порядковий номер результату
2. Слідом йдемо набір міток зміни, яке ми намагаємося пояснити, розділені комами.
. Далі в дужках перераховуються характеристики події, яка імовірно викликало дана зміна.
За результатами системи виробляється файл з передбаченнями виконаними за допомогою обраного алгоритму класифікації.
.2.2 Тестовий режим
У тестовому режимі оцінюється продуктивність системи на переданій їй файлі з даними за допомогою обраного класифікатора. Для оцінки продуктивності системи і якості її пророкувань спробуємо оцінювати метрику Precision (частка правильно передвіщених міток від загальної кількості передвіщених міток). Очікується, що система буде здатна виділити найбільш ймовірні причини зміни в трендах ціни і зможе передбачити, які події, швидше за все, відбувалися одночасно з відбуваються змінами в трендах, тобто зможе вказати максимальну кількість міток таких корпоративних подій.
У тестовому режимі системі передається файл з тестовими парами подій і змін в трендах, після чого цей файл розділяється на два випадкових підмножини - тренувальний набір даних (90% вихідних пар подій і трендів) і тестовий набір даних ( 10% вихідних пар). Після чого обраний класифікатор тренується на тренувальному наборі даних (процес повністю аналогічний такому в робочому режимі). Потім навчений класифікатор запускається для кожного опису зміни тренда в тестовому наборі даних, і система робить передбачення про причини зміни цього тренда. Після цього підраховується, скільки з міток передвіщеного опису події присутні в реально існувала парі подія - зміна в тренді. Шляхом ділення отриманої кількості на загальну кількість передвіщених міток отримуємо Precision системи.
За результатами роботи системи отримуємо файл Results.csv, який містить наступну інформацію:
. Порядковий номер тестового прикладу
2. Опис тренда, для якого виконувалися передбачення у вигляді набору міток, розділених комами
. Яка подія насправді відбувалося одночасно з даними зміною в трендах, укладену в квадратні дужки.
. Який набір міток був передбачений системою, укладений в дужки.
Приклад однієї такої запису:
, PosSpike, ICPT, Intercept Pharmaceuticals Inc, EQTY, REIT, USD, American, USA, XNGS, Biotechnology, [Merger, Standard, ETE, Energy Transfer Equity LP, UNIT, EUNT, USD, American , USA, XNYS, Oil amp; Gas Storage amp; Transportation], (American, EQTY, Standard, USA, USD)
.2.3 Інструкція користувача
Тестовий режим
Необхідно скопіювати файл з програмою FactGeneralizer.py в будь-яку папку на комп'ютері користувача. Також необхідно скопіювати потрібні для роботи файли в будь-яку папку на комп'ютері користувача. У разі роботи програми в тестовому режимі необхідний один файл з парами подія - зміна в тренді. Далі необхідно відкрити командний рядок і за допомогою команди cd перейти в папку, в якій зберігається файл FactGeneralizer.py. Для запуску програми в тестовому режимі необхідно ввести в командному рядку таку команду й натиснути Enter:
python FactGeneralizer.py test PriceFacts.csv Results.csv linear
Значення параметрів наведено нижче:
) test - мітка, ...