УДК 004.85
В.С. Мальчиц, А.Н. Гетман
ОБРАБОТКА ДАННЫХ ДЛЯ МАШИННОГО ОБУЧЕНИЯ И ПРИМЕНЕНИЕ МЕТОДА
ОПОРНЫХ ВЕКТОРОВ ДЛЯ РЕАЛИЗАЦИИ КЛАССИФИКАТОРА НОВОСТЕЙ
Рассматривается способ применения методов классического машинного обучения с учителем для решения задачи, связанной с реализацией классификатора новостей. Для реализации классификатора подобран набор данных, предварительно обработанный при помощи кластеризации и сэмплирования в целях большей точности определения. Обучение классификатора построено на основе метода опорных векторов.
Ключевые слова: машинное обучение, классификация, определение категории «новости», сэмплирование, метод опорных векторов.
Введение
Алгоритмы автоматического обучения стали частью современного мира. Множество сервисов, приложений и прочих цифровых ресурсов работает благодаря новейшим алгоритмам искусственного интеллекта и машинного обучения. Главный принцип машинного обучения заключается в том, что решаемая задача выполняется не напрямую, а путем систематического обучения алгоритмов и систем, в результате чего их знания или качество работы возрастают по мере накопления опыта. В качестве примера можно привести систему фильтрации спама, поступающего на почту. Такая система адаптируется под каждого пользователя индивидуально, ведь одно и то же сообщение для одного человека может оказаться спамом, а для другого нет [1].
Машинное обучение
Машинное обучение - это систематическое обучение алгоритмов и систем, в результате которого их знания или качество работы возрастают по мере накопления опыта [2]. В машинном обучении можно выделить несколько основных веток: классическое обучение, нейросети с глубоким обучением, обучение с подкреплением и ансамблевые методы. В данной статье рассматривается классическое обучение, которое, в свою очередь, можно разделить на обучение с учителем и обучение без учителя.
На рис. 1 показана иерархия, на которой видно направление машинного обучения для данной работы. Обучение с учителем и обучение без учителя происходит с использованием некоторых наборов данных (датасетов). Если обучающие данные размечены, то это обучение с учителем, если не размечены, то без учителя. Размеченными можно назвать такие данные, которые выступают в качестве конкретных примеров
Рис. 1. Машинное обучение.
для машины. В примере с фильтром спама такими данными может послужить набор сообщений, каждое из которых помечено спамом или нет. На размеченных данных машина обучается быстрее и точнее. В случае обучения без учителя модели приходится самой искать какие-либо закономерности [2]. В данной работе рассматривается более простой для понимания и реализации вариант - обучение с учителем.
Задачи обучения с учителем можно разбить на два типа: классификация и регрессия. В первом случае машина будет распределять данные по заранее известному признаку («спам» или «не спам»). Нами используется один из нескольких популярных алгоритмов обучения с учителем, решающих задачу классификации. Этот алгоритм носит название «Метод опорных векторов» и изложен в [3].
Суть метода опорных векторов заключается в следующем. Объекты представляются в виде векторов (точек) в n-мерном пространстве. Каждый из векторов может принадлежать только одному классу. Решение задачи данным методом сводится к ответу на вопрос: можно ли разделить точки гиперплоскостью размерности (п-1)? Также стоит учитывать, что гиперплоскостей может быть много, поэтому максимизация зазора между классами способствует более уверенной классификации [4].
Регрессия очень схожа с классификацией, за исключением того, что вместо категорий прогнозируется число.
Решение задачи требует большой работы с текстом, так как необходимо получить набор признаков, по которым классификатор сможет в дальнейшем определять категорию. Чтобы решить эту задачу, стоит обратиться к одному из направлений искусственного интеллекта - обработке естественного языка. Это общее направление искусственного интеллекта и математической лингвистики, которое изучает проблемы компьютерного анализа и синтеза естественных языков [5].
К популярным понятиям обработки естественного языка можно отнести токенизацию, лемма-тизацию, а также стемминг. Токенизация - процесс разбиения исходного текста на его отдельные составляющие (слова, знаки препинания). Лемматизация - процесс приведения словоформы к ее словарной форме (лемме). Стемминг - более простая форма лемматизации, в которой в основном просто удаляются суффиксы [5].
Описание задачи классификации новостей
Необходимо с помощью методов машинного обучения разработать и обучить модель, которая бы занималась сортировкой новостей почти без участия человека. Идея задачи взята из [6].
Модель требует на вход только готовый текст, который она «изучит» и покажет, к какой категории он относится. Это позволит значительно уменьшить объем работы, который возлагается на людей. Можно увеличить точность классификатора путем добавления данных или обучить ее на других данных для решения иных задач. Качество модели также зависит от набора данных, на которых она построена, поэтому необходимо тщательно подойти к выбору такого набора.
Решение задачи
В работе использовался набор данных, взятый с сайта www.kaggle.com [7]. Датасет, содержащий примерно 200 тысяч записей, каждая из которых, в свою очередь, имеет следующие свойства: категория, к которой относится новость (category), заголовок новости (headline), авторы новости (authors), ссылка на полный текст новости (link), краткое описание (short description), дата публикации (date).
Для обучения модели необходимыми свойствами являются категория и текст новости. Так как в датасете не содержится полных текстов новостей, вместо них в работе используем краткое описание.
Для написания классификатора использовался высокоуровневый язык программирования общего назначения Python [8].
На рис. 2 показана диаграмма для изначального набора данных. Диаграмма построена с использованием сторонней библиотеки matplotlib. Matplotlib - это библиотека Python для построения 2D графиков, которая генерирует показатели качества публикаций в различных печатных форматах и интерактивных средах на разных платформах. По оси абсцисс расположены названия всех категорий, а по оси ординат - количество новостей, которые помечены той или иной категорией.
30000 25000 20000 15000
category
Рис. 2. Диаграмма с количеством новостей для каждой категории.
В данных были замечены очень похожие категории. Например, есть категории «ARTS & CULTURE», «CULTURE & ARTS» и «ARTS». Для того чтобы избавиться от лишних категорий, была проведена кластеризация. Кластеризация - задача группировки данных в отсутствие априорной информации о группах [1]. Если вернуться к трем вышеописанным категориям, то их можно объединить в одну общую категорию и назвать ее «CULTURE». В табл. 1 представлены все категории, которые были подвержены кластеризации.
Таблица 1
Кластеры
1 2 3
№ Категории Общая категория (кластер)
1 BUSINESS BUSINESS
2 MONEY
3 ARTS
4 ARTS & CULTURE CULTURE
5 CULTURE & ARTS
6 EDUCATION EDUCATION
7 COLLEGE
8 PARENTS
9 PARENTING FAMILY
10 DIVORCE
11 WEDDINGS
12 HEALTHY LIVING HEALTH
13 WELLNESS
14 STYLE STYLE
15 STYLE & BEAUTY
16 TASTE TASTE
17 FOOD & DRINK
18 TECH TECH & SCIENCE
19 SCIENCE
20 WEIRD NEWS WEIRD NEWS
21 QUEER VOICES
Продолжение табл. 1
1 2 3
22 WORLD NEWS WORLD
23 GREEN
24 GOOD NEWS
25 ENVIRONMENT
26 THE WORLDPOST WORLDPOST
27 WORLDPOST
После кластеризации данных количество категорий уменьшилось с 39 до 21. Это показано на
рис. 3.
30000 25000 20000 15000 10000 5000 0
Также стоит отметить некоторые отличия в количестве новостей среди категорий. Есть категории, имеющие более 20 тыс. новостей, а есть такие, количество новостей которых не превышает и 5 тыс. Это говорит о том, что баланс данных сильно нарушен, что в свою очередь повлияет на точность модели.
Рассмотрим так называемую матрицу смежности. Она изображена на рис. 4, и ее суть заключается в следующем. По оси ординат отмечены все актуальные категории новостей, а по оси абсцисс - определенные моделью. На пересечении двух категорий находится число, которое показывает, сколько раз актуальная категория была определена как та, что находится по оси абсцисс.
Для необработанных данных видно, что качество определения новости моделью достаточно плохое. Об этом говорит то, что значения главной диагонали почти ничем не отличаются от остальных. В идеальном случае значения по главной диагонали должны принимать максимальные значения, а все остальные минимальные (нули). Такой результат будет говорить о 100% точности классифика-
Проведем баланс данных с помощью так называемой выборки данных (сэмплирования). Суть сэмплирования заключается в том, что для выбранной категории берутся не все новости, а лишь часть, которая выбрана случайно и задается процентным соотношением. В данной работе процентные соотношения были подобраны вручную и приведены в табл. 2. То есть, например, значение 15 для категории «HEALTH» говорит о том, что из всех имеющихся новостей данной категории случайно отберется лишь 15%.
category
Рис. 3. Диаграмма с количеством новостей после кластеризации.
CRIME 269 42 40 5 410 21 33 2 8 15 18 14 3 4 3 1 71 0 6 4 48 30 3
ENTERTAINMENT 32 170£| 60 13 1285 117 80 51 111 72 46 107 26 36 19 4 307 70 223 86 253 24 39
WORLD 33 81 548 31 650 43 18 9 19 18 59 96 8 43 22 9 118 13 24 46 169 176 27
IMPACT 4 28 46 147 242 18 15 22 2 18 58 26 2 21 4 20 102 10 20 15 185 41 2
POLITICS 77 265 194 62 FEEE 126 79 68 96 70 231 107 82 40 42 39 186 32 72 60 324 225 32
WEIRD NEWS 38 251 55 18 681 709 41 16 42 47 27 70 15 27 16 9 199 36 65 60 186 24 24
BLACK VOICES 46 203 14 10 384 39 278 14 17 23 23 22 10 5 9 23 73 22 52 11 69 11 8
WOMEN 9 90 10 11 295 24 18 135 11 11 28 14 8 6 6 7 136 4 53 18 155 6 7
COMEDY 7 201 26 4 518 45 13 15 212 15 21 36 11 23 8 3 107 17 41 57 112 18 21
SPORTS 17 128 21 6 350 30 34 11 21 499 27 25 8 9 4 4 56 10 27 25 77 12 6
BUSINESS 5 42 42 22 605 16 10 14 11 20 782 58 12 52 2 13 110 12 40 36 276 44 26
TRAVEL 5 94 60 16 244 28 4 5 19 17 47 1758 7 23 9 2 126 44 101 131 170 28 44
MEDIA 8 48 10 5 416 12 9 11 11 8 25 11 186 10 3 4 23 6 14 6 50 14 3
TECH & SCIENCE 11 56 40 15 257 39 5 12 8 10 89 36 6 317 4 4 75 8 38 34 171 19 12
RELIGION 2 24 18 11 315 27 12 5 6 4 3 14 5 4 149 5 34 5 5 9 71 21 5
EDUCATION 9 11 4 13 212 2 6 6 1 7 53 9 3 7 1 139 59 3 6 3 76 9 3
FAMILY 19 253 28 19 342 87 38 35 36 37 66 118 9 38 7 37 3756 44 163 119 689 12 46
CULTURE 4 140 18 6 283 24 19 12 16 10 17 57 2 12 2 5 53 310 31 17 90 6 15
STYLE 6 216 20 7 340 44 23 13 26 17 43 67 7 18 2 6 167 27 2193 47 175 7 51
TASTE 3 98 28 9 156 36 6 4 29 15 30 111 0 22 3 2 108 9 53 1520 218 6 56
HEALTH 9 132 66 45 794 56 17 34 31 43 129 135 5 53 14 14 493 35 108 173 5045| 31 51
WORLD POST 34 30 125 19 841 24 13 3 4 14 31 55 9 9 17 6 32 6 8 10 67 537 4
HOME & LIVING 2 67 11 3 49 14 3 3 15 4 31 73 0 13 1 0 83 20 94 68 95 1 594
и <
и
о >
U <
ш 5
< Q
О —
S Ü □ »л ш
LÖ X
и
□с
Э
I-
1Л
О
0-□
ос О
еэ
z
>
L3
ш
^
О х
Predicted
Рис. 4. Матрица смежности.
6000
L4500
-1500
Результат сэмплирования данных
Таблица 2
№ Категория Выборка от общего количества, в процентах
1 POLITICS 15
2 ENTERTAINMENT 30
3 HEALTH 15
4 FAMILY 20
5 STYLE 30
В данной работе сэмплирование было проведено при помощи функции sample(), которая включена в библиотеку pandas. Pandas - это библиотека с открытым исходным кодом, предоставляющая высокопроизводительные, простые в использовании структуры данных и инструменты анализа данных для языка программирования Python. После проведения сэмплирования количество новостей всех категорий стало близко к одному уровню (рис. 5).
Рис. 5. Диаграмма с количеством новостей после сэмплирования.
Матрица смежности после проведения сэмплирования изображена на рис. 6. Данная матрица говорит о том, что точность стала заметно выше. Точность определения после проведения сэмплирования увеличилась до 90%.
BUSINESS 1810 4 15 5 9 9 10 11 228 2 3 4 9 6 3 1 2 3 1 16 5 0 4
SPORTS 1 1123 4 4 0 8 9 8 209 3 3 0 3 3 6 5 7 0 0 7 0 0 0
TRAVEL 10 9 i 31 4 6 13 10 146 11 2 2 6 6 4 1 3 9 0 4 2 0 3
TASTE 7 2 21 g] 3 5 8 5 52 8 4 1 5 27 11 0 2 5 3 4 0 0 8
TECH & SCIENCE 18 2 9 5 103^ 4 6 6 143 1 4 5 4 4 4 1 1 2 1 12 1 1 3
POLITICS 8 8 8 4 6 1308 6 5 154 4 4 3 17 6 10 4 4 4 2 4 15 5 3
FAMILY 4 6 21 21 5 0 1152 12 48 35 5 8 2 20 5 5 4 1 6 13 3 2 3
WORLD 15 4 19 7 15 19 4 | L657 | 329 7 1 6 24 12 7 10 6 1 1 10 1 2 5
WEIRD NEWS 10 9 14 15 6 10 23 18 9 10 14 0 17 13 8 13 6 2 13 4 3 5
STYLE 9 6 14 26 10 1 26 7 97 1125 4 5 0 27 7 4 3 5 1 16 0 0 9
BLACK VOICES 3 2 5 4 3 10 7 4 138 3 | 964 1 2 8 22 6 6 1 6 2 3 2 1 1
IMPACT 13 2 5 10 3 4 7 6 123 2 4 775 13 3 5 0 4 2 1 12 0 0 1
WORLDPOST 4 4 5 4 2 18 3 26 381 0 4 2 : 129; 1 5 3 5 2 1 5 8 1 4 1
ENTERTAINMENT 9 18 10 19 3 6 15 21 357 32 5 2 3 1431 16 7 11 4 2 9 2 2 5
COMEDY 5 5 6 13 7 20 12 4 260 9 2 4 3 21 1070 1 10 6 0 7 3 1 5
CRIME 9 0 8 2 0 4 6 8 221 0 1 1 8 6 1 762 2 0 3 0 0 2 2
WOMEN 7 0 3 3 2 8 3 2 142 8 4 2 2 6 2 3 728 0 0 16 2 1 1
CULTURE 5 3 10 2 7 1 3 1 224 14 2 2 0 10 2 0 0 766 0 4 4 1 1
EDUCATION 6 2 1 3 0 1 2 3 88 1 0 1 6 5 0 0 0 1 472 2 3 5 0
HEALTH 10 4 10 15 8 7 33 4 81 14 1 1 2 6 4 1 14 5 2 iooe| 0 1 7
MEDIA 5 1 3 1 3 24 2 1 145 4 2 3 7 7 0 5 0 0 0 0 631 1 0
RELIGION 4 4 2 2 0 3 3 3 197 1 2 1 1 5 1 2 1 2 0 3 1 503 0
HOME & LIVING 2 5 7 12 0 0 13 9 8 7 2 0 2 6 9 0 0 3 2 3 0 0 1065
* < и
О t
п — —I LJ
О b ¡5 2 ё 5 =) и X
и Z) О
Г
1500
Predicted
Рис. 6. Матрица смежности после сэмплирования.
Выводы
В работе на основе метода опорных векторов был построен классификатор новостей, точность которого по мере разработки возросла до 90%. Для обучения классификатора использовался «сырой» набор данных, который в дальнейшем был обработан с помощью кластеризации и сэмплирования. На примере было показано, как несбалансированные данные влияют на качество обучения, а следовательно, и на точность классификатора.
1. Флах, П. Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных. - Электрон, дан. - М.: ДМК Пресс, 2015. - 400 с. - Режим доступа: https://e.lanbook.com/book/69955. -Загл. с экрана.
2. Бринк, X Машинное обучение / X. Бринк, Д. Ричарде, М. Феверолф. - СПб.: Питер, 2017. - 336 с.
3. Nefedov, Alexey. Support Vector Machines: A Simple Tutorial - 2016. - URL : https://svmtutorial.online/ (дата обращения: 13.02.2019).
4. Лозинская, A.M. Прогнозирование индекса ММВБ. Предсказательная сила метода нейросетевого моделирования и метода опорных векторов / A.M. Лозинская, В.А. Жемчужников // Вестник Пермского университета. Серия «Экономика». - Электрон, дан. - 2017. - № 1. - С. 49-60. - Режим доступа: https://e.lanbook.com/journal/ issue/301052. - Загл. с экрана.
5. Близнюк, Б., Васильева, Л., Стрельников, П., Ткачук, Д. Современные методы обработки естественного языка. // Вестник Харьковского национального университета им. Каразина. Серия «Математическое моделирование. Информационные технологии. Автоматизированные системы управления». - 2017. - № 36. - С. 14-26. -Режим доступа: https://periodicals.karazin.Ua/mia/article/view/l0084.
6. FAS AM - NLP Competition. Predict News Category / Kaggle: Your Home for Data Science. - URL: https://www.kaggle.eom/c/fasam-dl-nlp (дата обращения: 15.10.2018).
7. News Category Dataset. Identify the type of news based on headlines and short descriptions / Kaggle: Your Home for Data Science. - URL: https://www.kaggle.com/rmisra/news-category-dataset (дата обращения: 20.10.2018).
8. Официальный сайт Python. - URL: https://www.python.org/ (дата обращения 20.11.2018).