Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Машинный эксперимент

Задача классификации | Стратегия One-vs.-rest | Multi-label классификация | Методы и алгоритмы, реализованные в программной системе | Наивный Байесовский Классификатор | Стохастический Градиентный Спуск | Предобработка информации | Инструкция пользователя | Рабочий режим | Тестовый режим |


Читайте также:
  1. Аппроксимация экспериментальных данных с помощью встроенных функций
  2. Бенгалия 1877 года. Многолетние эксперименты Хершеля с отпечатками пальцев.
  3. Бенгалия 1877 года.Многолетние эксперименты Хершеля с отпечатками пальцев
  4. Большое спасибо за участие в эксперименте!
  5. Великий молельный эксперимент
  6. Выбор участников для ЛСД-экспериментов по самоанализу
  7. Гия, интерпретация экспериментов и способы использования их результа-

В ходе машинного эксперимента этап предобработки информации был запущен на следующем наборе тестовых данных:

1. 8542 ценных бумаги.

2. 1576688 записей о ценах на эти ценные бумаги, данные записи содержат информацию о ценах за год.

3. 53154 записи о корпоративных событиях, связанных с этими ценными бумагами.

Были установлены следующие параметры работы для предобработчика данных:

1. changeThreshold = 0.3. При изменении цены на эту величину за день считаем, что возможен слом тренда.

2. spikeThreshold = 6. При изменении цены на эту величину за день считаем, что произошел всплеск в цене.

3. dateThreshold = 3. При предположении о том, что произошел слом тренда, система сравнит последнюю цену с ценой через 3 дня чтобы проверить гипотезу о сломе тренда.

Системе предобработки данных понадобилось около 19 часов работы для завершения предобработки исходных данных. По результатам было получено 26975 пар событие – изменение в тренде. Полученные пары были использованы для работы системы классификации в тестовом режиме. Система была запущена три раза для каждого из поддерживаемых классификаторов. Тренировка классификаторов производилась на случайно выбранных 90% данных (24280) и далее тестировалась на 2695 оставшихся записях. Ниже представлена таблица с результатами тестирования:

Тип классификатора Всего предсказано меток Корректно предсказано меток Precision, % Время выполнения программы, сек.
SVM с линейным ядром, SGD обучение        
       
       
SVM с линейным ядром, обучение пакетным градиентным спуском        
       
       
SVM с ядром RBF     1.59  
    1.59  
    1.59  
SVM с полиномиальным ядром     1.59  
    1.59  
    1.59  
SVM с ядром - сигмоид     1.59  
    1.59  
    1.59  
Наивный Байесовский классификатор     70.53  
    69.85  
       

Таблица 1. Результаты тестирования различных классификаторов

Выводы

Как и предполагалось ранее, машина опорных векторов с нелинейным ядром (RBF, полиномиальное ядро или сигмоид) не подходит для решения данной задачи. Каждый из этих трех классификаторов сильно переучивается на тестовых данных и дает практически одинаковые прогнозы для всех тестовых примеров. Данные классификаторы требуют значительное время для обучения (порядка 3 часов каждый) и демонстрируют одинаковую точность, равную примерно 1,5%.

Как и предполагалось ранее, наилучшую точность демонстрирует машина опорных векторов с линейным ядром. При этом обучение по методу стохастического градиентного спуска дает резкий прирост в скорости обучения – средняя время тренировки по методу стохастического градиентного спуска равно 20 секундам, против 150 секунд при обучении по методу пакетного градиентного спуска. При этом переход на стохастический градиентный спуск не снижает точности классификатора – она все также близка к 80%.

Наивный Байесовский классификатор также хорошо показал себя в машинном эксперименте. Его отличительной чертой можно назвать большую агрессивность при выполнении предсказаний (если машина опорных векторов в среднем предсказывала около 15000 меток то Наивный Байесовский Классификатор предсказывал около 17500 меток). Также можно отметить больший разброс точности данного классификатора – если результаты SVM отличаются друг от друга примерно на 1% то результаты NBC колеблются в более широких пределах и могут отличаться друг от друга почти на 7%. Тем не менее, данный алгоритм обучается гораздо быстрее, чем SVM, даже при ее обучении по методу стохастического градиентного спуска. NBC в среднем потребовалось 12 секунд на тренировку, в то время как SVM в среднем обучалась около 20 секунд. Также следует отметить, что NBC до лучше масштабируется до больших объемов данных, соответственно с ростом объема обучающих данных время, необходимое на его обучение, будет расти медленнее, чем для SVM.

Таким образом, применение классификаторов NBC и SVM действительно позволяет достичь поставленной нами задачи. Данные классификаторы способны с большой точностью (примерно 70-80%) предсказывать, какими характеристиками обладают события, которые должны одновременно происходить с переданными им записями о сломах в трендах цен.


Заключение

В рамках данной работы нам удалось решить задачу по поиску наиболее вероятных причин в изменениях в трендах данных. Задача, которая стояла перед нами является гибридом multi-label и multiclass классификации. Для каждого примера нам требуется предсказывать одну или несколько меток (например, страна, в которой произошло событие, или индустрия, с которой связано произошедшее событие), каждой метке может быть присвоено несколько различных значений. Подобные задачи имеют название multi-task классификация или multiclass – multi-output классификация. Задачи, подобные этой относительно успешно решаются в такой области как Document classification (классификация документов), что позволило нам использовать методы, традиционно применяемые в рамках классификации документов

Задача состояла из двух частей:

1) Извлечение из информации о ценах данные о том для каких ценных бумаг когда наблюдалось изменение в тренде в цене (если цена на бумагу росла некоторое время, то в какой момент она начала снижаться или стала неизменной).

2) Разработка системы, которая сможет обучиться на информации о предшествующих событиях и изменениях в трендах выявляя наиболее вероятные характеристики событий - причин, и далее сумеет предсказать, какими характеристиками наиболее вероятно обладает событие, которое вызвало переданный системе слом в тренде.

Первая часть задачи была решена с помощью языка программирования C#.

Вторая задача была решена с помощью языка python и открытой библиотеки программного обеспечения для машинного обучения scikit-learn. Данная библиотека имеет открытый исходный код, предлагает эффективную реализацию всех популярных алгоритмов машинного обучения и поддерживается большим сообществом разработчиков и исследователей из университетов и лабораторий всего мира. При решении второй части задачи мы использовали алгоритм TF-IDF который позволил нам повысить весомость редких событий и снизить вес частых событий. Далее были применены алгоритмы классификации Машина Опорных Векторов и Наивный Байесовский Классификатор. Проверена эффективность различных ядер для Машины Опорных Векторов, а также эффективность пакетного градиентного спуска и стохастического градиентного спуска. Установлено, что наилучшей точностью обладают SVM с линейным ядром и Наивный Байесовский Классификатор. Нам удалось получить точность классификации около 80%. Также установлено, что обучение по методу стохастического градиентного спуска позволяет значительно ускорить тренировку SVM классификатора без каких-либо жертв в точности.

Реализованная система обладает приемлемой производительностью. И достаточной точностью для ее практического применения. Архитектура разработанной программы позволяет включить её в состав более сложной системы.


 


Дата добавления: 2015-11-16; просмотров: 78 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Рабочий режим| Список использованных ресурсов

mybiblioteka.su - 2015-2024 год. (0.007 сек.)