Обзор методов статистического анализа данных. Пример. Эффективный процесс анализа информации на основе оценки преобладающих тенденций для представления руководителям в виде отчетов. Кластерный анализ в маркетинговых исследованиях

В прошлом году компания «Авито» провела целый ряд конкурсов. В том числе - конкурс по распознаванию марок автомобилей, победитель которого, Евгений Нижибицкий, рассказал на тренировке о своём решении.


Постановка задачи . По изображениям автомобилей необходимо определить марку и модель. Метрикой служила точность предсказаний, то есть доля правильных ответов. Выборка состояла из трёх частей: первая часть была доступна для обучения изначально, вторая была дана позже, а на третьей требовалось показать финальные предсказания.


Вычислительные ресурсы . Я воспользовался домашним компьютером, который обогревал мою комнату всё это время, и предоставленными на работе серверами.

Обзор моделей . Раз наша задача - на распознавание, то первым делом хочется воспользоваться прогрессом в уровне качества классификации изображений на всем известном ImageNet . Как известно, современные архитектуры позволяют достигнуть даже более высокого качества, чем у человека. Поэтому я начал с обзора свежих статей и собрал сводную таблицу архитектур, реализаций и качеств на основе ImageNet.


Заметим, что наилучшее качество достигается на архитектурах и .

Fine-tuning сетей . Обучать глубокую нейронную сеть с нуля - довольно затратное по времени занятие, к тому же не всегда эффективное с точки зрения результата. Поэтому часто используется техника дообучения сетей: берётся уже обученная на ImageNet сеть, последний слой заменяется на слой с нужным количеством классов, а потом продолжается настройка сети с низким темпом обучения, но уже на данных из конкурса. Такая схема позволяет обучить сеть быстрее и с более высоким качеством.

Первый подход к дообучению GoogLeNet показал примерно 92% точности при валидации.

Предсказания на кропах . Используя нейронную сеть для предсказания на тестовой выборке, можно улучшить качество. Для этого следует выреза́ть фрагменты подходящего размера в разных местах исходной картинки, после чего усреднять результаты. Кроп 1x10 означает, что взят центр изображения, четыре угла, а потом всё то же самое, но отражённое по горизонтали. Как видно, качество возрастает, однако время предсказания увеличивается.

Валидация результатов . После появления выдачи второй части выборки я разбил выборку на несколько частей. Все дальнейшие результаты показаны на этом разбиении.

ResNet-34 Torch . Можно воспользоваться готовым репозиторием авторов архитектуры, но, чтобы получить предсказания на тесте в нужном формате, приходится исправлять некоторые скрипты. Кроме того, нужно решать проблемы большого потребления памяти дампами. Точность при валидации - около 95%.


Inception-v3 TensorFlow . Тут тоже использовалась готовая реализация, но была изменена предобработка изображений, а также ограничена обрезка картинок при генерации батча. Итог - почти 96% точности.


Ансамбль моделей . В итоге получилось две модели ResNet и две модели Inception-v3. Какое качество при валидации можно получить, смешивая модели? Вероятности классов усреднялись с помощью геометрического среднего. Веса (в данном случае - степени) подбирались на отложенной выборке.


Результаты . Обучение ResNet на GTX 980 занимало 60 часов, а Inception-v3 на TitanX - 48 часов. За время конкурса удалось опробовать новые фреймворки с новыми архитектурами.


Задача классификации клиентов банка

Ссылка на Kaggle .

Станислав Семёнов рассказывает, как он и другие участники топа Kaggle объединились и заняли призовое место в соревновании по классификации заявок клиентов крупного банка - BNP Paribas .


Постановка задачи . По обфусцированным данных из заявок на страхование необходимо предсказать, можно ли без дополнительных ручных проверок подтвердить запрос. Для банка это процесс автоматизации обработки заявок, а для аналитиков данных - просто задача машинного обучения по бинарной классификации. Имеется около 230 тысяч объектов и 130 признаков. Метрика - LogLoss . Стоит отметить, что команда-победитель расшифровала данные, что помогло им выиграть соревнование.

Избавление от искусственного шума в признаках . Первым делом стоит посмотреть на данные. Cразу бросаются в глаза несколько вещей. Во-первых, все признаки принимают значения от 0 до 20. Во-вторых, если посмотреть на распределение любого из признаков, то можно увидеть следующую картинку:

Почему так? Дело в том, что на этапе анонимизации и зашумления данных ко всем значениям прибавлялся случайный шум, а потом проводилось масштабирование на отрезок от 0 до 20. Обратное преобразование было проведено в два шага: сначала значения округлялись до некоторого знака после запятой, а потом подбирался деноминатор. Требовалось ли это, если дерево всё равно подбирает порог при разбиении? Да, после обратного преобразования разности переменных начинают нести больший смысл, а для категориальных переменных появляется возможность провести one-hot кодирование.

Удаление линейно зависимых признаков . Ещё мы заметили, что некоторые признаки являются суммой других. Понятно, что они не нужны. Для их определения брались подмножества признаков. На таких подмножествах строилась регрессия для предсказания некоторой другой переменной. И если предсказанные значения были близки к истинным (стоит учесть искусственное зашумление), то признак можно было удалить. Но команда не стала с этим возиться и воспользовалась уже готовым набором фильтрованных признаков. Набор подготовил кто-то другой. Одна из особенностей Kaggle - наличие форума и публичных решений, с помощью которых участники делятся своими находками.

Как понять, что нужно использовать? Есть небольшой хак. Предположим, вы знаете, что кто-то в старых соревнованиях использовал некоторую технику, которая помогла ему занять высокое место (на форумах обычно пишут краткие решения). Если в текущем конкурсе этот участник снова в числе лидеров - скорее всего, такая же техника выстрелит и здесь.

Кодирование категориальных переменных . Бросилось в глаза то, что некая переменная V22 имеет большое число значений, но при этом, если взять подвыборку по некоторому значению, число уровней (различных значений) других переменных заметно уменьшается. В том числе имеет место хорошая корреляция с целевой переменной. Что можно сделать? Самое простое решение - построить для каждого значения V22 отдельную модель, но это всё равно что в первом сплите дерева сделать разбиение по всем значениям переменной.

Есть другой способ использования полученной информации - кодирование средним значением целевой переменной. Другими словами, каждое значение категориальной переменной заменяется средним значением таргета по объектам, у которых данный признак принимает то же самое значение. Произвести такое кодирование напрямую для всего обучающего множества нельзя: в процессе мы неявно внесём в признаки информацию о целевой переменной. Речь идёт об информации, которую почти любая модель обязательно обнаружит.

Поэтому такие статистики считают по фолдам. Вот пример:

Предположим, что данные разбиты на три части. Для каждого фолда обучающей выборки будем считать новый признак по двум другим фолдам, а для тестовой выборки - по всему обучающему множеству. Тогда информация о целевой переменной будет внесена в выборку не так явно, и модель сможет использовать полученные знания.

Останутся ли проблемы ещё с чем-нибудь? Да - с редко встречающимися категориями и с кросс-валидацией.

Редко встречающиеся категории . Допустим, некоторая категория встретилась всего несколько раз и соответствующие объекты относятся к классу 0. Тогда среднее значение целевой переменной тоже будет нулевым. Однако на тестовой выборке может возникнуть совсем другая ситуация. Решение - сглаженное среднее (или smoothed likelihood), которое вычисляется по следующей формуле:

Здесь global mean - среднее значение целевой переменной по всей выборке, nrows - то, сколько раз встретилось конкретное значение категориальной переменной, alpha - параметр регуляризации (например, 10). Теперь, если некоторое значение встречается редко, больший вес будет иметь глобальное среднее, а если достаточно часто, результат окажется близким к начальному среднему по категории. Кстати, эта формула позволяет обрабатывать и неизвестные ранее значения категориальной переменной.

Кросс-валидация . Допустим, мы посчитали все сглаженные средние для категориальных переменных по другим фолдам. Можем ли мы оценить качество модели по стандартной кросс-валидации k-fold? Нет. Давайте рассмотрим пример.

К примеру, мы хотим оценить модель на третьем фолде. Мы обучаем модель на первых двух фолдах, но в них есть новая переменная со средним значением целевой переменной, при подсчёте которой мы уже использовали третий тестовый фолд. Это не позволяет нам корректно оценивать результаты, но возникшая проблема решается подсчётом статистик по фолдам внутри фолдов. Снова обратимся к примеру:

Мы по-прежнему хотим оценить модель на третьем фолде. Разобьём первые два фолда (обучающую выборку нашей оценки) на некоторые другие три фолда, в них посчитаем новый признак по уже разобранному сценарию, а для третьего фолда (это тестовая выборка нашей оценки) посчитаем по первым двум фолдам вместе. Тогда никакая информация из третьего фолда при обучении модели использоваться не будет и оценка получится честной. В соревновании, которое мы обсуждаем, корректно оценить качество модели позволяла только такая кросс-валидация. Разумеется, «внешнее» и «внутреннее» число фолдов может быть любым.

Построение признаков . Мы использовали не только уже упомянутые сглаженные средние значения целевой переменной, но и weights of evidence. Это почти то же самое, но с логарифмическим преобразованием. Кроме того, полезными оказались фичи вида разности количества объектов положительного и отрицательного классов в группе без какой-либо нормировки. Интуиция тут следующая: масштаб показывает степень уверенности в классе, но что делать с количественными признаками? Ведь если их обработать похожим образом, то все значения «забьются» регуляризацией глобальным средним. Одним из вариантов является разделение значений на бины, которые потом считаются отдельными категориями. Другой способ заключается просто в построении некой линейной модели на одном признаке с тем же таргетом. Всего получилось около двух тысяч признаков из 80 отфильтрованных.

Стекинг и блендинг . Как и в большинстве соревнований, важной частью решения является стекинг моделей. Если кратко, то суть стекинга в том, что мы передаём предсказания одной модели как признак в другую модель. Однако важно в очередной раз не переобучиться. Давайте просто разберём пример:


Взято из блога Александра Дьяконова

К примеру, мы решили разбить нашу выборку на три фолда на этапе стекинга. Аналогично подсчёту статистик мы должны обучать модель на двух фолдах, а предсказанные значения добавлять для оставшегося фолда. Для тестовой выборки можно усреднить предсказания моделей с каждой пары фолдов. Каждым уровнем стекинга называют процесс добавления группы новых признаков-предсказаний моделей на основе имеющегося датасета.

На первом уровне у команды было 200-250 различных моделей, на втором - ещё 20-30, на третьем - ещё несколько. Результат - блендинг, то есть смешивание предсказаний различных моделей. Использовались разнообразные алгоритмы: градиентные бустинги с разными параметрами, случайные леса, нейронные сети. Главная идея - применить максимально разнообразные модели с различными параметрами, даже если они дают не самое высокое качество.

Работа в команде . Обычно участники объединяются в команды перед завершением конкурса, когда у каждого уже имеются свои наработки. Мы объединились в команду с другими «кэглерами» ещё в самом начале. У каждого участника команды была папка в общем облаке, где размещались датасеты и скрипты. Общую процедуру кросс-валидации утвердили заранее, чтобы можно было сравнивать между собой. Роли распределялись следующим образом: я придумывал новые признаки, второй участник строил модели, третий - отбирал их, а четвёртый управлял всем процессом.

Откуда брать мощности . Проверка большого числа гипотез, построение многоуровневого стекинга и обучение моделей могут занимать слишком большое время, если использовать ноутбук. Поэтому многие участники пользуются вычислительными серверами с большим количеством ядер и оперативной памяти. Я обычно пользуюсь серверами AWS , а участники моей команды, как оказалось, используют для конкурсов машины на работе, пока те простаивают.

Общение с компанией-организатором . После успешного выступления в конкурсе происходит общение с компанией в виде совместного конференц-звонка. Участники рассказывают о своём решении и отвечают на вопросы. В BNP людей не удивил многоуровневый стекинг, а интересовало их, конечно же, построение признаков, работа в команде, валидация результатов - всё, что может им пригодиться в улучшении собственной системы.

Нужно ли расшифровывать датасет . Команда-победитель заметила в данных одну особенность. Часть признаков имеет пропущенные значения, а часть не имеет. То есть некоторые характеристики не зависели от конкретных людей. Кроме того, получилось 360 уникальных значений. Логично предположить, что речь идёт о неких временных отметках. Оказалось, если взять разность между двумя такими признаки и отсортировать по ней всю выборку, то сначала чаще будут идти нули, а потом единицы. Именно этим и воспользовались победители.

Наша команда заняла третье место. Всего участвовало почти три тысячи команд.

Задача распознавания категории объявления

Ссылка на DataRing .

Это ещё один конкурс «Авито». Он проходил в несколько этапов, первый из которых (как, впрочем, ещё и третий) выиграл Артур Кузин .


Постановка задачи . По фотографиям из объявления необходимо определить категорию. Каждому объявлению соответствовало от одного до пяти изображений. Метрика учитывала совпадения категорий на разных уровнях иерархии - от общих к более узким (последний уровень содержит 194 категории). Всего в обучающей выборке был почти миллион изображений, что близко к размеру ImageNet.


Сложности распознавания . Казалось бы, надо всего лишь научиться отличать телевизор от машины, а машину от обуви. Но, например, есть категория «британские кошки», а есть «другие кошки», и среди них встречаются очень похожие изображения - хотя отличить их друг от друга всё-таки можно. А как насчёт шин, дисков и колёс? Тут и человек не справится. Указанные сложности - причина появления некоторого предела результатов всех участников.


Ресурсы и фреймворк . У меня в распоряжении оказались три компьютера с мощными видеокартами: домашний, предоставленный лабораторией в МФТИ и компьютер на работе. Поэтому можно было (и приходилось) обучать по несколько сетей одновременно. В качестве основного фреймворка обучения нейронных сетей был выбран MXNet , созданный теми же ребятами, которые написали всем известный XGBoost . Одно это послужило поводом довериться их новому продукту. Преимущество MXNet в том, что прямо из коробки доступен эффективный итератор со штатной аугментацией, которой достаточно для большинства задач.


Архитектуры сетей . Опыт участия в одном из прошлых соревнований показал, что лучшее качество показывают архитектуры серии Inception. Их я и задействовал здесь. В GoogLeNet была добавлена , поскольку она ускоряла обучение модели. Также использовались архитектуры Inception-v3 и Inception BN из библиотеки моделей Model Zoo , в которые был добавлен дропаут перед последним полносвязным слоем. Из-за технических проблем не удавалось обучать сеть с помощью стохастического градиентного спуска, поэтому в качестве оптимизатора использовался Adam.



Аугментация данных . Для повышения качества сети использовалась аугментация - добавление искажённых изображений в выборку с целью увеличения разнообразия данных. Были задействованы такие преобразования, как случайное обрезание фотографии, отражение, поворот на небольшой угол, изменение соотношения сторон и сдвиг.

Точность и скорость обучения . Сначала я разделил выборку на три части, но потом отказался от одного из этапов валидации для смешивания моделей. Поэтому впоследствии вторая часть выборки была добавлена в обучающее множество, что улучшило качество сетей. Кроме того, GoogLeNet изначально обучался на Titan Black, у которого вдвое меньше памяти по сравнению с Titan X. Так что эта сеть была дообучена с большим размером батча, и её точность возросла. Если посмотреть на время обучения сетей, можно сделать вывод, что в условиях ограниченных сроков не стоит использовать Inception-v3, поскольку с двумя другими архитектурами обучение идёт заметно быстрее. Причина в числе параметров. Быстрее всех учится Inception BN.

Построение предсказаний .

Как и Евгений в конкурсе с марками автомобилей, Артур использовал предсказания на кропах - но не на 10 участках, а на 24. Участками послужили углы, их отражения, центр, повороты центральных частей и ещё десять случайных.

Если сохранять состояние сети после каждой эпохи, в результате образуется множество различных моделей, а не только финальная сеть. С учётом оставшегося до конца соревнования времени я мог использовать предсказания 11 моделей-эпох - поскольку построение предсказаний с помощью сети тоже длится немало. Все указанные предсказания усреднялись по следующей схеме: сначала с помощью арифметического среднего в рамках групп по кропам, далее с помощью геометрического среднего с весами, подобранными на валидационном множестве. Эти три группы смешиваются, потом повторяем операцию для всех эпох. В конце вероятности классов всех картинок одного объявления усредняются с помощью геометрического среднего без весов.


Результаты . При подборе весов на этапе валидации использовалась метрика соревнования, поскольку она не слишком коррелировала с обычной точностью. Предсказание на разных участках изображений даёт лишь малую часть качества по сравнению с единым предсказанием, но именно за счёт этого прироста удаётся показать лучший результат. По окончании конкурса выяснилось, что первые три места отличаются в результатах на тысячные доли. Например, у Женя Нижибицкого была единственная модель, которая совсем немного уступила моему ансамблю моделей.


Обучение с нуля vs. fine-tuning . Уже после завершения конкурса выяснилось, что несмотря на большой размер выборки стоило обучать сеть не с нуля, а при помощи предобученной сети. Этот подход демонстрирует более высокие результаты.

Задача обучения с подкреплением

Соревнование Black Box Challenge, о котором , было не совсем похоже на обычный «кэгл». Дело в том, что для решения было недостаточно разметить некоторую «тестовую» выборку. Требовалось запрограммировать и загрузить в систему код «агента», который помещался в неизвестную участнику среду и самостоятельно принимал в ней решения. Такие задачи относятся к области обучения с подкреплением - reinforcement learning.

О подходах к решению рассказал Михаил Павлов из компании 5vision. В конкурсе он занял второе место.


Постановка задачи . Для среды с неизвестными правилами нужно было написать «агента», который взаимодействовал бы с указанной средой. Схематично это некий мозг, который получает от чёрного ящика информацию о состоянии и награде, принимает решение о действии, после чего получает новое состояние и награду за совершённое действие. Действия повторяются друг за другом в течение игры. Текущее состояние описывается вектором из 36 чисел. Агент может совершить четыре действия. Цель - максимизировать сумму наград за всю игру.


Анализ среды . Изучение распределения переменных состояния среды показало, что первые 35 компонент не зависят от выбранного действия и только 36-я компонента меняется в зависимости от него. При этом разные действия влияли по-разному: некоторые увеличивали или уменьшали, некоторые никак не меняли. Но нельзя сказать, что вся среда зависит от одной компоненты: в ней могут быть и некие скрытые переменные. Кроме того, эксперимент показал, что если совершать более 100 одинаковых действий подряд, то награда становится отрицательной. Так что стратегии вида «совершать только одно действие» отпадали сразу. Кто-то из участников соревнования заметил, что награда пропорциональна всё той же 36-й компоненте. На форуме прозвучало предположение, что чёрный ящик имитирует финансовый рынок, где портфелем является 36-я компонента, а действиями - покупка, продажа и решение ничего не делать. Эти варианты соотносились с изменением портфеля, а смысл одного действия понятен не был.


Q-learning . Во время участия основной целью было попробовать различные техники обучения с подкреплением. Одним из самых простых и известных методов является q-learning. Его суть в попытке построить функцию Q, которая зависит от состояния и выбранного действия. Q оценивает, насколько «хорошо» выбирать конкретное действие в конкретном состоянии. Понятие «хорошо» включает в себя награду, которую мы получим не только сейчас, но и будущем. Обучение такой функции происходит итеративно. Во время каждой итерации мы пытаемся приблизить функцию к самой себе на следующем шаге игры с учётом награды, полученной сейчас. Подробнее можно почитать . Применение q-learning предполагает работу с полностью наблюдаемыми марковскими процессами (другими словами, в текущем состоянии должна содержаться вся информация от среды). Несмотря на то, что среда, по заявлению организаторов, не удовлетворяла этому требованию, применять q-learning можно было достаточно успешно.

Адаптация к black box . Опытным путём было установлено, что для среды лучше всего подходил n-step q-learning, где использовалась награда не за одно последнее действие, а за n действий вперёд. Среда позволяла сохранять текущее состояние и откатываться к нему, что облегчало сбор выборки - можно было из одного состояния попробовать совершить каждое действие, а не какое-то одно. В самом начале обучения, когда q-функция ещё не умела оценивать действия, использовалась стратегия «совершать действие 3». Предполагалось, что оно ничего не меняло и можно было начать обучаться на данных без шума.

Процесс обучения . Обучение происходило так: с текущей политикой (стратегией агента) играем весь эпизод, накапливая выборку, потом с помощью полученной выборки обновляем q-функцию и так далее - последовательность повторяется в течение некоторого количества эпох. Результаты получались лучше, чем при обновлении q-функции в процессе игры. Другие способы - техника replay memory (с общим банком данных для обучения, куда заносятся новые эпизоды игры) и одновременное обучение нескольких агентов, играющих асинхронно, - тоже оказалось менее эффективными.

Модели . В решении использовались три регрессии (каждая по одному разу в расчёте на каждое действие) и две нейронных сети. Были добавлены некоторые квадратичные признаки и взаимодействия. Итоговая модель представляет собой смесь всех пяти моделей (пяти Q-функций) с равными весами. Кроме того, использовалось онлайн-дообучение: в процессе тестирования веса́ старых регрессий подмешивались к новым весам, полученным на тестовой выборке. Это делалось только для регрессий, поскольку их решения можно выписывать аналитически и пересчитывать достаточно быстро.


Другие идеи . Естественно, не все идеи улучшали итоговый результат. Например, дисконтирование награды (когда мы не просто максимизируем суммарную награду, а считаем каждый следующий ход менее полезным), глубокие сети, dueling-архитектура (с оценкой полезности состояния и каждого действия в отдельности) не дали роста результатов. Из-за технических проблем не получилось применить рекуррентные сети - хотя в ансамбле с другими моделями они, возможно, обеспечили бы некоторую пользу.


Итоги . Команда 5vision заняла второе место, но с совсем небольшим отрывом от обладателей «бронзы».


Итак, зачем нужно участвовать в соревнованиях по анализу данных?

  • Призы. Успешное выступление в большинстве соревнований вознаграждается денежными призами или другими ценными подарками. На Kaggle за семь лет разыграли более семи миллионов долларов.
  • Карьера. Иногда призовое место .
  • Опыт. Это, конечно, самое главное. Можно изучить новую область и начать решать задачи, с которыми вы раньше не сталкивались.

Сейчас тренировки по машинному обучению проводятся по субботам каждую вторую неделю. Место проведения - московский офис Яндекса, стандартное число гостей (гости плюс яндексоиды) - 60-80 человек. Главным свойством тренировок служит их злободневность: всякий раз разбирается конкурс, завершившийся одну-две недели назад. Это мешает всё точно спланировать, но зато конкурс ещё свеж в памяти и в зале собирается много людей, попробовавших в нём свои силы. Курирует тренировки Эмиль Каюмов, который, кстати, помог с написанием этого поста.

Кроме того, есть другой формат: зарешивания, где начинающие специалисты совместными усилиями участвуют в действующих конкурсах. Зарешивания проводятся по тем субботам, когда нет тренировок. На мероприятия обоих типов может прийти любой, анонсы публикуются в группах

Классификацией называется процедура, в которой объекты распределяются по группам (классам) в соответствии с численными значениями их переменных, характеризующими свойства этих объектов. Исходными данными для классификации является матрица X , в которой каждая строка представляет один объект, а каждый столбец – одну из переменных. Эта матрица называется исходным набором данных. Число объектов (строк в матрице X ) мы будем обозначать буквой I , а число переменных (строк в матрице X ) – буквой J . Число классов мы будем обозначать буквой K .

Классификацией называют не только саму процедуру распределения, но и ее результат. Употребляется также термин распознавание образов (pattern recognition) , который можно считать синонимом. В математической статистике классификацию часто называют дискриминацией .

Метод (алгоритм), которым проводят классификацию, называют классификатором . Классификатор переводит вектор признаков объекта x в целое число, 1, 2, … , соответствующее номеру класса, в который он помещает этот объект.

1.2. Обучение: с учителем и без

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

1.3. Типы классов

Классификация может делаться для разного числа классов .

Классификация с одним классом проводится в том случае, когда нам нужно установить принадлежность объектов к единственной выделенной группе. Например, отделить яблоки от всех остальных фруктов в корзине.

Двухклассная классификация – это наиболее простой, базовый случай, который чаще всего называют дискриминацией. Например, разделить яблоки и груши, при условии, что никаких других фруктов в корзине нет.

Многоклассовая классификация часто сводится к последовательности: либо одноклассных (SIMCA), либо двухклассных (LDA) задач и является наиболее сложным случаем.

В большинстве случаев классы изолированы и не пересекаются. Тогда каждый объект принадлежит только к одному классу. Однако могут быть задачи и с пересекающимися классами, когда объект может относиться одновременно к нескольким классам.

1.4. Проверка гипотез

В математической статистике рассматривается задача проверки гипотез , которая, по сути, очень близка к классификации. Поясним это на простом примере.

Пусть имеется смесь слив и яблок, которую надо автоматически разделить. Очевидно, что в среднем сливы меньше яблок, поэтому задачу можно легко решить, используя подходящее сито. Анализ размеров объектов показал, что они хорошо описываются нормальными распределениями со следующими параметрами. Сливы: среднее 3, дисперсия 1.4. Яблоки: среднее 8, дисперсия 2.1. Таким образом, разумно будет выбрать сито диаметром 5. .

Рис. 1 Распределение объектов по размерам

С точки зрения математической статистики в этой задаче мы проверяем гипотезу о том, что среднее нормального распределения равно 3 (слива), против альтернативы 8 (яблоко). Проверка происходит по одному единственному наблюдению x . Критическое значение равно 5: если x <5 (область принятия гипотезы), то гипотеза принимается (объект – слива), если x >5, то принимается альтернатива (объект – яблоко).

1.5. Ошибки при классификации

Очевидно, что в рассмотренном выше примере классификация не является идеальной – мелкие яблоки попадут в класс слив, а крупные сливы останутся вместе с яблоками. Используя распределения объектов по размерам, можно рассчитать вероятности этих событий.

α=1–Φ(5| 3, 1.4)=0.05 β=Φ(5| 8, 2.1)=0.01

Величинаα (ложное отклонение) называется ошибкой первого рода , а величинаβ (ложное принятие) – ошибкой второго рода. Если поменять местами гипотезу и альтернативу, то ошибка 1-го рода станет ошибкой 2-го рода, и наоборот.

Таким образом, при этом критическом уровне, 5% слив будет потеряно, и 1% яблок примешается к сливам. Если уменьшить критическое значение до 4, то примеси яблок практически не будет, зато потери слив достигнут 20%. Если же его увеличить до 6, то потери слив уменьшатся до 1%, но примесь яблок будет уже 5%. Понятно, что в этой задаче невозможно выбрать такое сито, которое правильно разделяло бы сливы и яблоки – всегда будут ошибки.

При проверке гипотезы (классификации) важно понимать, какую ошибку важнее минимизировать. Приведем два классических примера. В юриспруденции, при гипотезе "невиновен", руководствуясь презумпцией невиновности, необходимо минимизировать ошибку 1-го рода – вероятность ложного обвинения. В медицине, при гипотезе "здоров", необходимо минимизировать ошибку 2-го рода – вероятность не распознать болезнь.

Можно ли одновременно уменьшить обе ошибки? Да, в принципе, можно. Для этого надо изменить саму процедуру принятия решения, сделав ее более эффективной. Одним из главных способов является увеличение числа переменных, характеризующих классифицируемые объекты. В нашем примере такой новой, полезной переменной мог быть цвет – синий для слив, и зеленый для яблок. Поэтому в хемометрике применяют методы классификации, основанные на многомерных данных.

1.6. Одноклассовая классификация

Для случая одного класса ошибка первого рода αназывается уровнем значимости . Ошибка 2-го рода для такой классификации равна 1 –α. Объяснение этому парадоксальному факту очень простое – альтернативой одному классу является все оставшееся мыслимые объекты, лежащие вне этого класса. Поэтому, какой бы классификатор мы не использовали, всегда найдется объект, не лежащий в этом классе, но очень похожий на объекты из него. Допустим, для примера, что мы отбираем сливы, отличая их от всего прочего, существующего на свете. Тогда, тщательно изучив придуманный нами метод классификации, можно создать искусственный объект (например, пластмассовый муляж), который подходит по всем выбранным критериям.

1.7. Обучение и проверка

Классификатор (помимо вектора переменных x ) зависит от свободных (неизвестных) параметров. Их надо подобрать так, чтобы минимизировать ошибку классификации. Подбор параметров называется обучением классификатора . Эта процедура проводится на обучающем наборе X c . Помимо обучения, необходима еще и проверка (валидация) классификатора. Для этого должен использоваться новый проверочный набор данных X t . Альтернативой валидации с помощью проверочного набора является проверка с помощью метода кросс-валидации .

1.8 . Проклятие размерности

В задачах классификации имеет место проблема, которая поэтически называется проклятием размерности (Curse of dimensionality). Суть дела в том, что при увеличении числа переменных J сложность задачи возрастает экспоненциально. Поэтому, даже относительно скромное их число (J >10) может доставить неприятности. Заметим, что в хемометрических приложениях (например, при анализе спектральных данных) может быть и 1000 и 10000 переменных.

В классических методах классификации большая размерность приводит к мультиколлинеарности, которая проявляется как вырожденность матрицы X t X , которую надо обращать в методах линейного и квадратичного дискриминационного анализа. В методах, опирающихся на расстояния между объектами (например, kNN ), большая размерность приводит к усреднению всех расстояний. Основным способом решения этой проблемы являются методы понижения размерности, прежде всего метод главных компонент

2. Модельные данные

2.1. Пример

Для иллюстрации различных методов классификации мы будем использовать знаменитый пример – Ирисы Фишера , помещенный в рабочую книгу Iris.xls . Этот набор данных стал популярным после основополагающей работы , в которой Роберт Фишер предложил метод линейного дискриминационного анализа (LDA).

Набор данных включает три класса по 50 образцов в каждом. Каждый класс соответствует виду ириса: Iris Setosa (класс 1), Iris Versicolour (класс 2) и Iris Virginica (класс 3). .

Рис. 4 Ирисы Фишера (слева направо): Setosa , Versicolour и Virginica

В своей работе Р. Фишер использовал данные, собранные американским ботаником Э. Андерсоном, который измерил следующие характеристики цветков каждого из 150 образцов:

  • Длина чашелистика (англ. sepal length);
  • Ширина чашелистика (англ. sepal width);
  • Длина лепестка (англ. petal length);
  • Ширина лепестка (англ. petal width).

Все эти значения (в см) приведены в таблице на листе Data . Пытаясь понять, где у ирисов чашелистики, а где лепестки, естественно заглянуть в Wikipedia . Там сказано следующее.

"Соцветия ириса имеют форму веера и содержат один или более симметричных шестидольных цветков. Растут они на коротком стебельке. Три чашелистика направлены вниз. Они расширяются из узкого основания в обширное окончание, украшенное прожилками, линиями или точками. Три лепестка, которые иногда могут быть редуцированными, находятся в вертикальной позиции и частично скрыты основанием чашелистика. У более мелких ирисов вверх направлены все шесть доль. Чашелистики и лепестки отличаются друг от друга. Они объединены у основания в цветочный цилиндр, который лежит над завязью"

2.2. Данные

Исходный массив данных (3 класса по 50 образцов) был разбит на две части: обучающую и проверочную. В первое подмножество X c вошли по 40 первых образцов из каждого класса (всего 120 образцов), а во второе подмножество X t – оставшиеся в каждом классе 10 образцов (всего 30 образцов). Очевидно, что первую часть мы будем использовать для обучения разных классификаторов, а вторую часть – для их проверки. Обучающую выборку мы будем называть Training , а проверочную Test .

Классы называются в соответствие с их латинскими наименованиями: Setosa , Versicolor и Virginica , а переменные обозначаются двумя буквами, соответственно: SL – длина чашелистика (sepal length); SW – ширина чашелистика (sepal width), PL – длина лепестка (petal length), PW – ширина лепестка (petal width).

Рис. 5 Статистические характеристики обучающего и проверочного наборов

На Рис. 5 показаны основные статистические характеристики обучающего и проверочного наборов. Средние значения (m ) каждой переменной (SL, SW, PL и PW ) показаны точками, а их среднеквадратичные отклонения (s ) – отрезками. Цвет значков соответствует классу: красный Setosa , голубой Versicolor и зеленый Virginica . Форма значка соответствует набору, которому принадлежит образец: круг – обучающий набор, треугольник – проверочный набор. Мы и в дальнейшем будем использовать эту систему обозначений на графиках.

Из Рис. 5 видно, что переменные в разных классах отличаются как по m , так и по s . Кроме того, мы можем заключить, что разбиение на обучающий и проверочный наборы было сделано правильно – соответствующие графики похожи.

2.3. Рабочая книга Iris.xls

Это пособие сопровождает файл Iris.xls – рабочая книга Excel

Эта книга включает в себя следующие листы:

2.4. Анализ данных методом главных компонент

Метод главных компонент (PCA) – один из главных инструментов, применяемых в хемометрике. В задачах классификации он используется с двумя целями. Во-первых, PCA понижает размерность данных, заменяя многочисленные переменные на небольшой набор (обычно 2-5) главных компонент. Во-вторых, он служит основой для построения многих методов классификации, например метода SIMCA, который рассмотрен .

В рассматриваемом нами примере по классификации ирисов переменных немного – всего четыре, поэтому первая цель не столь важна. Тем не менее, мы построим PCA модель и посмотрим, насколько можно снизить эту размерность. PCA-анализ выполняется с помощью функций ScoresPCA и , PCA модель строится на обучающем наборе X c и затем применяется к проверочному набору X t . Из следует, что данные необходимо центрировать, но не шкалировать.

Графики первых счетов приведены на Рис. 6.

Рис.6 Результаты PCA-анализа данных

Графики старших компонент (PC3 – PC4) приведены .

Для того, чтобы определить сколько главных компонент достаточно для моделирование данных, нужно исследовать график, на котором объясненная дисперсия (ERV) для обучающего и проверочного изображается в зависимости от числа главных компонент (PC).

Рис.7 Графики объясненной (ERV) дисперсии остатков для обучающего и проверочного наборов

Из Рис. 7 видно, что двух PC достаточно для моделирования данных – они объясняют 98% вариаций, как для обучающего, так и для проверочного наборов.

3. Классификация "с учителем"

3.1. Линейный дискриминатный анализ (LDA)

Линейный дискриминантный анализ или LDA (Linear Discriminant Analysis) это старейший из методов классификации, разработанный Р. Фишером, и опубликованный им в работе, которую мы уже упоминали . Метод предназначен для разделения на два класса.

Обучающий набор состоит из двух матриц X 1 и X 2 , в которых имеется по I 1 и I 2 строк (образцов). Число переменных (столбцов) одинаково и равно J . Исходные предположения состоят в следующем:

Классификационное правило в LDA очень простое – новый образец x относится к тому классу, к которому он ближе в метрике Махаланобиса

На практике неизвестные математические ожидания и ковариационная матрица заменяются их оценкам

Величины, стоящие в разных частях уравнения называются LDA-счетами , f 1 и f 2 . Образец относится к классу 1, если f 1 > f 2 , и, наоборот, к классу 2, если f 1 < f 2 .

Главной проблемой в методе LDA является обращение матрицы S . Если она вырождена, то метод использовать нельзя. Поэтому часто, перед применением LDA, исходные данные X заменяют на матрицу PCA-счетов T , которая уже не вырождена.

Покажем, как LDA работает на примере классификации ирисов. Для большей иллюстративности мы сначала применим PCA, а уже потом LDA. Из раздела ясно, что двух главных компонент будет достаточно.

Т.к. LDA – это двухклассовый дискриминатор, то мы проведем классификацию в два шага. Сначала построим классификатор, который отделяет класс 1 (Setosa ) от всех других ирисов, объединенных в класс 23 (Versicolor + Virginica ). Затем построим второй классификатор, разделяющий классы 2 (Versicolor ) и 3 (Virginica ). Вычисления показаны на листе PCA-LDA .

Начнем с вычисления средних значений для всех классов по обучающим наборам. Нам надо вычислить средние значения по классу 1 (I 1 =40), объединенному классу 23 (I 23 =80), и классам 2 (I 2 =40) и 3 (I 3 =40). Значения приведены в массивах с локальными именами: m1c , m23c , m2c и m3c . .

Рис.8 Расчет средних значений

Вычислим ковариационные матрицы, составленные из классов 1 и 23, а также из классов 2 и 3 и обратим их. Результаты представлен в массивах с локальными именами Sinv123 и Sinv23 . Используя формулы вычислим все необходимые нам величины.

Рис.9 Расчет матриц ковариациий и других параметров LDA

Рис.14 Результат первой дискриминации между классами 1 и 23

На Рис. 14 и Рис. 15 показаны результаты LDA классификации.

Рис.15 Результат второй дискриминации между классами 2 и 3

Т.к. переменных теперь не две, а четыре, то графики, иллюстрирующие результаты, можно построить только в координатах LDA-счетов (f 1 , f 2) и дискриминирующая прямая - это биссектрисаf 1 = f 2 первого квадранта. Вторая дискриминации в обучающем наборе проведена с ошибками: два образца из класса 2 ошибочно отнесены к классу 3, и один образец из класса 3 ошибочно отнесен к классу 2. Эти точки показаны квадратными значками. В проверочном наборе ошибок нет

Недостатки LDA.

    Не работает, когда матрица ковариаций вырождена, например, при большом числе переменных. Требуется регуляризация, например, PCA.

    Не пригоден, если ковариационные матрицы классов различны.

    Не позволяет менять уровни ошибок 1-го и 2-го родов.

Достоинства LDA:

    Прост в применении.

3.2. Квадратичный дискриминатный анализ (QDA)

Квадратичный дискриминантный анализ, QDA (Quadratic Discriminant Analysis) является естественным обобщением метода LDA. QDA– многоклассный метод и он может использоваться для одновременной классификации нескольких классов k =1,…, K .

Обучающий набор состоит из K матриц X 1 ,…, X K , в которых имеется I 1 ,…, I K строк (образцов). Число переменных (столбцов) одинаково и равно J . Сохраняя первое предположение LDA в , откажемся от второго, т.е. допустим, что ковариационные матрицы в каждом классе различны. Тогда QDA-счета вычисляются по формуле

В этих формулах обозначает центрированную матрицу X k . Поверхность, разделяющая классы k и l определяется квадратичным уравнением

f k =f l

поэтому метод и называется квадратичным.

Рассмотрим, как метод QDA применяется к задаче классификации ирисов. Все расчеты приведены на листе QDA . Обучающий массив состоит из трех классов (с локальными именами X1c , X2c , X3c ), по 40 образцов в каждом. Для каждого массива вычисляются средние значения (локальные имена m1c , m2c и m3c ) .

Рис.16 Расчет средних значений

Потом вычисляются и обращаются ковариационные матрицы (локальные имена Sinv1 , Sinv2 и Sinv3 .

Рис.17 Расчет матриц ковариаций

Рис.18 Расчет QDA-счетов и принадлежности к классам

Результаты классификации представлены графиками QDA-счетов, показанными на Рис. 19 .



Рис.19 Результаты QDA классификации

Из этих рисунков (а также из анализа QDA-счетов) видно, что классификация в обучающем наборе проведена с ошибками: три образца из второго класса (Versicolor ) отнесены к третьему (Virginica ). В проверочном наборе ошибок нет.

Квадратичный дискриминантный анализ сохраняет большинство недостатков LDA.

    Не работает, когда матрицы ковариаций вырождены, например, при большом числе переменных. Требуется регуляризация, например, PCA.

    Неявно использует предположение о нормальности распределения.

    Не позволяет менять уровни ошибок 1-го и 2-го родов. .

3.3. PLS дискриминация (PLSDA )


Рис.20 Построение PLS2 регрессии

Заметим, что при получении PLS2-счетов для проверочного набора используется несколько другая формула.

Для вычисления прогнозных значений откликов Y hat применяется функция ТЕНДЕНЦИЯ ( TREND ) . В версии Excel 2003 эта функция иногда дает неправильный результат . Чтобы предотвратить эту ошибку, мы используем центрированные значения фиктивных откликов в обучающем наборе.


Рис.21 Расчет прогноза фиктивных откликов

Результаты PLSDA классификации на обучающем наборе таковы: 15 образцов из второго класса (Versicolor ) ошибочно отнесены к третьему классу (Virginica ), четыре образца из третьего класса (Virginica ) ошибочно отнесены ко второму классу (Versicolor ). В проверочном наборе тоже есть ошибки: один образец из первого класса ошибочно отнесен ко второму, и два образца из второго класса ошибочно отнесены к третьему классу. Таким образом, мы можем заключить, что PLSDA классификация удовлетворительных результатов не дала. Однако ситуацию можно значительно улучшить, если отказаться от плохого правила классификации () и продолжить вычисления дальше.


Рис.22 Результаты PLSDA классификации

Будем рассматривать найденные величины прогнозных значений фиктивных откликов Y hat не как окончательные, а как промежуточные данные, и применим к ним какой-нибудь другой метод классификации, например LDA. Напрямую это сделать нельзя, поскольку матрица Y c hat имеет ранг K –1, и матрицы ковариаций будут вырождены. Поэтому, до применения LDA, необходимо использовать метод главных компонент (PCA), так же, как мы делали в разделе . Соответствующие вычисления приведены на листе PLSDA-PCA-LDA .


Рис.23 Результаты PLSDA -PCA-LDA классификации

Этим способом мы получаем результат, в котором имеется всего одна ошибка в обучении: один образец из второго класса (Versicolor ) ошибочно отнесен к третьему классу (Virginica ). В проверочном наборе ошибок нет.

В этом методе PLS2-регрессия на матрицу фиктивных откликов с последующей PCA проекцией (PLSDA-PCA) является предварительной подготовкой исходных данных X , т.е. некоторым фильтром, выявляющим в этих данных новые характеристики, непосредственно связанные с различиями между классами. Здесь принципиально важно, что в PCA-LDA метод применяется к матрице предсказанных фиктивных откликов Y hat , не к матрице PLS2-счетов.

Недостатки PLSDA

    Требует предварительного регрессионного анализа данных.

    Результат зависит от выбора числа PC в PLS 2регрессии.

Достоинства PLSDA

    Не использует вид распределения.

    Применим для большого числа переменных, устойчив к проклятию размерности.

(12 )

где h 0 и v 0 – это средние значения величин h и v , а N h , и N v – это числа степеней свободы соответственно для h и v .

Используя обучающий набор X c =(x 1 ,…x I ) t , можно найти I значений размахов h 1 ,….,h I и отклонений v 1 ,….,v I . По ним можно оценить соответствующие средние значения

(13 )

Первым делом применим PCA, используя в качестве обучающего набора матрицу X1c (часть матрицы X c относящуюся к классу 1), а в качестве проверочного набора всю матрицу Xt . Также как и в других методах, мы используем две PCA компоненты.

Рис.25 Вычисление счетов и нагрузок PCA

Области, в которых находятся значения счетов (обучающих и проверочных) и нагрузок, имеют локальные имена Tc , Tt и Pc . После этого можно вычислить сингулярные значения , суммируя квадраты счетов для каждой PC, и затем извлекая корень из результата.

Затем вычисляем значения размахов h по формуле для обучающего и проверочного наборов. .


Рис.26 Вычисление размахов

Рис.27 Вычисление отклонений

Вычисление отклонений для проверочного набора проводится по аналогичной формуле с заменой X1c на Xt , и Tc на Tt.

Рис.30 Вычисление числа степеней свободы

На Рис. 30 показаны результаты классификации. График для проверочного набора модифицирован так, чтобы показать на нем все имеющиеся образцы. Для этого оси координат трансформированы степенным преобразованием x 1/p , p =3.

Все образцы обучающего набора классифицированы правильно. В проверочном наборе один образец из первого класса (Setosa ) не распознан.

Аналогично делается классификация для других классов. При этом для класса 2 (лист SIMCA_2 ) обучающей является подматрица X2c , а для класса 3 (лист SIMCA_3 ) – подматрица X3c . Соответственно меняются и средние значения mean2

Недостатки SIMCA

    Требует предварительного анализа данных методом PCA .

    Результат зависит от выбора числа PC. Однако его выбор облегчается тем, что можно брать минимальное число, при котором обучающий набор правильно распознается.

    Чувствителен к выбросам., однако они легко распознаются самим методом.

    Плохо работает для малого числа образцов в обучающем наборе.

Достоинства SIMCA

4. Классификация без учителя

4.1. Опять PCA

Метод главных компонент является простейшим и наиболее популярным методом классификации без обучения. Для его исследования мы будем использовать только обучающий набор, исключив проверочный из рассмотрения. Вычисления приведены на листе PCA-Explore .

Теперь мы заранее не знаем, к какому из классов принадлежат образцы и, более того, даже число классов нам неизвестно.

Рис.35 . PCA анализ обучающего набора

Однако, рассматривая график PCA-счетов для всего обучающего набора, мы легко можем выделить группу образцов (обведенную эллипсом), которая явно отделяется от всех прочих объектов. Естественно предположить, что эти образцы принадлежат к отдельному классу.

Удалим все эти образцы из обучающего набора и применим PCA к оставшимся образцам. На графике PC1-PC2 счетов, показанных на Рис. 36 можно (при большом воображении) различить два кластера, показанные эллипсами. Но уже на графике старших счетов PC1-PC3, мы ничего похожего на классы не видим.

Рис.36 . PCA анализ укороченного обучающего набора

Таким образом, исследование данных с помощью PCA может выявить скрытые классы, а может, и нет. В любом случае необходима дальнейшая проверка этих гипотез с помощью других методов классификации без учителя.

4.2. Кластеризация с помощью K -средних (kMeans )

Существует большой класс методов, выполняющих так называемую кластеризацию . Кластеризация состоит в том, чтобы разделить образцы на подмножества (называемые кластерами) так, чтобы все образцы в одном кластере были в каком-то смысле похожи друг на друга. Оценка схожести образцов x 1 и x 2 обычно основана на анализе расстояний d (x 1 , x 2) между ними. Для измерения расстояний чаще всего используют Эвклидову метрику.

Самым простым (и поэтому – популярным) является метод K -средних (K -means ). Этот метод разбивает исходный набор образцов на заранее известное число K кластеров. При этом каждый образец xi обязательно принадлежит к одному из этих кластеров S k ., k =1,…, K . Каждый кластер k характеризуется своим цетнроидом m k – точкой, являющейся центром масс всех образцов кластера. Метод K-средних – это итерационный алгоритм, в котором на каждом шаге выполняются следующие операции.

1. Определяются расстояния от всех образцов до центроидов d (x j , m k ), j =1,…J ; k =1,…,K .

2. Образцы относятся к кластерам в соответствии с тем, какой из центроидов оказался ближе.

3. По этому новому разбиению вычисляются центроиды m k для каждого из кластеров

где J k – это число образцов в кластере S k .

Операции 1-3 повторяются до сходимости.

Для инициализации алгоритма нужно задать исходные значения всех центроидов m k . Это можно сделать произвольно, например, положить их равными первым K образцам.

m 1 = x 1 , m 2 = x 2 ,…., m K = x K

Покажем, как метод K-средних работает в примере с ирисами. Полный набор данных весьма громоздкий, да и первый класс (Setosa ) легко отделяется от остальных методом PCA . Поэтому мы будем анализировать только укороченный обучающий набор из первых двух PC, показанный на .

Рис.40 . Расчет новых значений центроидов

Чтобы замкнуть итерационную последовательность надо скопировать значения из области KMeansNew и вставить их (как значения!) в область KMeans . И это надо повторять столько раз, сколько потребуется, пока все значения kMeans – kMeansNew не станут равными нулю. На листе kMeans имеется кнопка Calculate . Она запускает простейший VBA макрос , который копирует содержание области KMeansNew и вставляет значения в область KMeans . Эта операция повторяется столько раз, сколько указано в клетке P2 . Тем самым реализуется заданное число итераций.

Итерационная процедура всегда сходится, но результат может быть разным, в зависимости от выбора начальных центроидов.

Если выбрать в качестве начального приближения первые две точки: ve01 и ve02 , то получится результат, представленный на Рис. 41. Левый график показывает, как образцы распределялись в начале работы алгоритма, а правый график – как они распределились в итоге.

Рис.41 . Кластеризация методом K-средних. Начало и конец работы алгоритма.
Начальная точка – первые два образца

На Рис. 42 показан результат кластеризации, который получается, если в качестве начального приближения берутся последние два образца: vi39 и vi40 . Во-первых, видно, что кластеры поменялись местами. Во-вторых, заметно, что некоторые точки ушли в другие кластеры.

Рис.42 . Кластеризация методом K-средних. Начало и конец работы алгоритма.
Начальная точка – последние два образца

Для того, чтобы понять какое решение лучше, используют целевую функцию

которая должна быть минимальна. В первом случае S =52.830, а во втором S =52.797. Таким образом, второе решение предпочтительнее.

Естественно отождествить первый кластер с классом 2 (Versicolor ), а второй кластер с классом 3 (Virginica ). Тогда полученные результаты можно интерпретировать так: два образца класса 2 идентифицированы неправильно, а среди образцов класса 3 одиннадцать неверно отнесены к классу 2.

Метод K-средних имеет несколько недостатков.

    Число кластеров K неизвестно и как его найти непонятно. Можно только наращивать это значения и исследовать результаты.

    Результат зависит от начального выбора центроидов. Нужно перебирать разные варианты.

    Результат зависит от выбора метрики.

Заключение

Мы рассмотрели некоторые методы, используемые для решения задач классификации. Эта область хемометрики, как никакая другая, изобилует разнообразными подходами. Поэтому, с неизбежностью, за рамками этого пособия остались многие интересные методы, такие как, например, UNEQ, CART и другие. Разобраться с тем, как они работают можно самостоятельно, используя это пособие как руководство к действию.

Несколько методов классификации достойны специального изучения. Это методы опорных векторов и искусственных нейронных сетей. Им будут посвящены отдельные пособия

Применение современных практических методов анализа данных и распознавания востребовано в технических и гуманитарных областях, в науке и производстве, бизнесе и финансах. В данном описании представлена основная алгоритмическая суть, понимание которой является полезным для более эффективного использования методов распознавания и классификации при анализе данных.

1. Задача распознавания (классификации с учителем) и современное состояние в области практических методов для ее решения. Основные этапы в развитии теории и практики распознавания: создание эвристических алгоритмов, модели распознавания и оптимизация моделей, алгебраический подход к коррекции моделей. Основные подходы - основанные на построении разделяющих поверхностей, потенциальные функции, статистические и нейросетевые модели, решающие деревья, и другие.

Более подробно описаны основные подходы и алгоритмы комбинаторно-логических методов распознавания (модели вычисления оценок или алгоритмы, основанные на принципе частичной прецедентности), разработанные в ВЦ РАН им. А.А. Дородницына. В основе данных моделей лежит идея поиска важных частичных прецедентов в признаковых описаниях исходных данных (информативных фрагментов значений признаков, или представительных наборов). Для вещественных признаков находятся оптимальные окрестности информативных фрагментов. В другой терминологии, данные частичные прецеденты называют знаниями или логическими закономерностями, связывающими значения исходных признаков с распознаваемой или прогнозируемой величиной. Найденные знания являются важной информацией об исследуемых классах (образах) объектов. Они непосредственно используются при решении задач распознавания или прогноза, дают наглядное представление о существующих в данных взаимозависимостях, что имеет самостоятельную ценность для исследователей и может служить основой при последующем создании точных моделей исследуемых объектов, ситуаций, явлений или процессов. По найденной совокупности знаний вычисляются также значения таких полезных величин, как степень важности (информативности) признаков и объектов, логические корреляции признаков и логические описания классов объектов, и решается задача минимизации признакового пространства.

2. Методы решения основной задачи кластерного анализа (классификации без учителя) – нахождение группировок объектов (кластеров) в заданной выборке многомерных данных. Приведен краткий обзор основных подходов для решения задачи кластерного анализа и описание комитетного метода синтеза коллективных решений.

3. Программная система интеллектуального анализа данных, распознавания и прогноза РАСПОЗНАВАНИЕ. В основу требований к системе положены идеи универсальности и интеллектуальности. Под универсальностью системы понимается возможность ее применения к максимально широкому кругу задач (по размерностям, по типу, качеству и структуре данных, по вычисляемым величинам). Под интеллектуальностью понимается наличие элементов самонастройки и способности успешного автоматического решения задач неквалифицированным пользователем. В рамках Системы РАСПОЗНАВАНИЕ разработана библиотека программ, реализующих линейные, комбинаторно-логические, статистические, нейросетевые, гибридные методы прогноза, классификации и извлечения знаний из прецедентов, а также коллективные методы прогноза и классификации.


1. Алгоритмы распознавания, основанные на вычислении оценок. Распознавание осуществляется на основе сравнения распознаваемого объекта с эталонными по различным наборам признаков, и использования процедур голосования. Оптимальные параметры решающего правила и процедуры голосования находятся из решения задачи оптимизации модели распознавания - определяются такие значения параметров, при которых точность распознавания (число правильных ответов на обучающей выборке) является максимальной.

2. Алгоритмы голосования по тупиковым тестам. Сравнение распознаваемого объекта с эталонными осуществляется по различным «информативным» подмножествам признаков. В качестве подобных подсистем признаков используются тупиковые тесты (или аналоги тупиковых тестов для вещественнозначных признаков) различных случайных подтаблиц исходной таблицы эталонов.

По обучающей выборке вычисляются множества логических закономерностей каждого класса – наборы признаков и интервалы их значений, свойственные каждому классу. При распознавании нового объекта вычисляется число логических закономерностей каждого класса, выполняющихся на распознаваемом объекте. Каждое отдельное «выполнение» считается «голосом» в пользу соответствующего класса. Объект относится в тот класс, нормированная сумма «голосов» за который является максимальной. Настоящий метод позволяет оценивать веса признаков, логические корреляции признаков, строить логические описания классов, находить минимальные признаковые подпространства.

4. Алгоритмы статистического взвешенного голосования.

По данным обучающей выборки находятся статистически обоснованные логические закономерности классов. При распознавании новых объектов вычисляется оценка вероятности принадлежности объекта к каждому из классов, которая является взвешенной суммой «голосов».

5. Линейная машина.

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

6. Линейный дискриминант Фишера.

Классический статистический метод построения кусочно-линейных поверхностей, разделяющих классы. Благоприятными условиями применимости линейного дискриминанта Фишера являются выполнение следующих факторов: линейная отделимость классов, дихотомия, «простая структура» классов, невырожденность матриц ковариаций, отсутствие выбросов. Созданная модификация линейного дискриминанта Фишера позволяет успешно использовать его и в «неблагоприятных» случаях.

7. Метод к-ближайших соседей.

Классический статистический метод. Распознаваемый объектотносится в тот класс, из которого он имеет максимальное число соседей. Оптимальное число соседей и априорные вероятности классов оцениваются по обучающей выборке.

8. Нейросетевая модель распознавания с обратным распространением

Создана модификация известного метода обучения нейронной сети распознаванию образов (метод обратного распространения ошибки). В качестве критерия качества текущих параметров нейронной сети используется гибридный критерий, учитывающий как сумму квадратов отклонений значений выходных сигналов от требуемых, так и количество ошибочных классификаций на обучающей выборке.

9.Метод опорных векторов.

Метод построения нелинейной разделяющей поверхности с помощью опорных векторов. В новом признаковом пространстве (спрямляющем пространстве) строится разделяющая поверхность, близкая к линейной. Построение данной поверхности сводится к решению задачи квадратичного программирования.

10. Алгоритмы решения задач распознавания коллективами различных распознающих алгоритмов.

Задача распознавания решается в два этапа. Сначала применяются независимо различные алгоритмы Системы. Далее находится автоматически оптимальное коллективное решение с помощью специальных методов-«корректоров». В качестве корректирующих методов используются различные подходы.

11. Методы кластерного анализа (автоматической классификации или обучения без учителя).

Используются следующие известные подходы:

Алгоритмы иерархической группировки;

Кластеризация c критерием минимизации суммы квадратов отклонений;

Метод к-средних.

Возможно решение задачи классификации как при заданном, так и неизвестном числе классов.

12. Алгоритм построения коллективных решений задачи классификации.

Задача классификации решается в два этапа. Сначала находится набор различных решений (в виде покрытий или разбиений) при фиксированном числе классов с помощью различных алгоритмов Системы. Далее находится оптимальная коллективная классификация в результате решения специальной дискретной оптимизационной задачи.

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

Большие данные привели к взрывному росту популярности более широких методов интеллектуального анализа данных, отчасти потому, что информации стало гораздо больше, и она по самой своей природе и содержанию становится более разнообразной и обширной. При работе с большими наборами данных уже недостаточно относительно простой и прямолинейной статистики. Имея 30 или 40 миллионов подробных записей о покупках, недостаточно знать, что два миллиона из них сделаны в одном и том же месте. Чтобы лучше удовлетворить потребности покупателей, необходимо понять, принадлежат ли эти два миллиона к определенной возрастной группе, и знать их средний заработок.

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

Рисунок 1. Схема процесса

Процесс анализа данных, поиска и построения модели часто является итеративным, так как нужно разыскать и выявить различные сведения, которые можно извлечь. Необходимо также понимать, как связать, преобразовать и объединить их с другими данными для получения результата. После обнаружения новых элементов и аспектов данных подход к выявлению источников и форматов данных с последующим сопоставлением этой информации с заданным результатом может измениться.

Инструменты интеллектуального анализа данных

Интеллектуальный анализ данных ― это не только используемые инструменты или программное обеспечение баз данных. Интеллектуальный анализ данных можно выполнить с относительно скромными системами баз данных и простыми инструментами, включая создание своих собственных, или с использованием готовых пакетов программного обеспечения. Сложный интеллектуальный анализ данных опирается на прошлый опыт и алгоритмы, определенные с помощью существующего программного обеспечения и пакетов, причем с различными методами ассоциируются разные специализированные инструменты.

Например, IBM SPSS®, который уходит корнями в статистический анализ и опросы, позволяет строить эффективные прогностические модели по прошлым тенденциям и давать точные прогнозы. IBM InfoSphere® Warehouse обеспечивает в одном пакете поиск источников данных, предварительную обработку и интеллектуальный анализ, позволяя извлекать информацию из исходной базы прямо в итоговый отчет.

В последнее время стала возможна работа с очень большими наборами данных и кластерная/крупномасштабная обработка данных, что позволяет делать еще более сложные обобщения результатов интеллектуального анализа данных по группам и сопоставлениям данных. Сегодня доступен совершенно новый спектр инструментов и систем, включая комбинированные системы хранения и обработки данных.

Можно анализировать самые разные наборы данных, включая традиционные базы данных SQL, необработанные текстовые данные, наборы "ключ/значение" и документальные базы. Кластерные базы данных, такие как Hadoop, Cassandra, CouchDB и Couchbase Server, хранят и предоставляют доступ к данным такими способами, которые не соответствуют традиционной табличной структуре.

В частности, более гибкий формат хранения базы документов придает обработке информации новую направленность и усложняет ее. Базы данных SQL строго регламентируют структуру и жестко придерживаются схемы, что упрощает запросы к ним и анализ данных с известными форматом и структурой.

Документальные базы данных, которые соответствуют стандартной структуре типа JSON, или файлы с некоторой машиночитаемой структурой тоже легко обрабатывать, хотя дело может осложняться разнообразной и переменчивой структурой. Например, в Hadoop, который обрабатывает совершенно "сырые" данные, может быть трудно выявить и извлечь информацию до начала ее обработки и сопоставления.

Основные методы

Несколько основных методов, которые используются для интеллектуального анализа данных, описывают тип анализа и операцию по восстановлению данных. К сожалению, разные компании и решения не всегда используют одни и те же термины, что может усугубить путаницу и кажущуюся сложность.

Рассмотрим некоторые ключевые методы и примеры того, как использовать те или иные инструменты для интеллектуального анализа данных.

Ассоциация

Ассоциация (или отношение), вероятно, наиболее известный, знакомый и простой метод интеллектуального анализа данных. Для выявления моделей делается простое сопоставление двух или более элементов, часто одного и того же типа. Например, отслеживая привычки покупки, можно заметить, что вместе с клубникой обычно покупают сливки.

Создать инструменты интеллектуального анализа данных на базе ассоциаций или отношений нетрудно. Например, в InfoSphere Warehouse есть мастер, который выдает конфигурации информационных потоков для создания ассоциаций, исследуя источник входной информации, базис принятия решений и выходную информацию. приведен соответствующий пример для образца базы данных.

Рисунок 2. Информационный поток, используемый при подходе ассоциации

Классификация

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

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

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

Метод кластеризации работает в обе стороны. Можно предположить, что в определенной точке имеется кластер, а затем использовать свои критерии идентификации, чтобы проверить это. График, изображенный на , демонстрирует наглядный пример. Здесь возраст покупателя сравнивается со стоимостью покупки. Разумно ожидать, что люди в возрасте от двадцати до тридцати лет (до вступления в брак и появления детей), а также в 50-60 лет (когда дети покинули дом) имеют более высокий располагаемый доход.

Рисунок 3. Кластеризация

В этом примере видны два кластера, один в районе $2000/20-30 лет и другой в районе $7000-8000/50-65 лет. В данном случае мы выдвинули гипотезу и проверили ее на простом графике, который можно построить с помощью любого подходящего ПО для построения графиков. Для более сложных комбинаций требуется полный аналитический пакет, особенно если нужно автоматически основывать решения на информации о ближайшем соседе .

Такое построение кластеров являет собой упрощенный пример так называемого образа ближайшего соседа . Отдельных покупателей можно различать по их буквальной близости друг к другу на графике. Весьма вероятно, что покупатели из одного и того же кластера разделяют и другие общие атрибуты, и это предположение можно использовать для поиска, классификации и других видов анализа членов набора данных.

Метод кластеризации можно применить и в обратную сторону: учитывая определенные входные атрибуты, выявлять различные артефакты. Например, недавнее исследование четырехзначных PIN-кодов выявили кластеры чисел в диапазонах 1-12 и 1-31 для первой и второй пар. Изобразив эти пары на графике, можно увидеть кластеры, связанные с датами (дни рождения, юбилеи).

Прогнозирование

Прогнозирование ― это широкая тема, которая простирается от предсказания отказов компонентов оборудования до выявления мошенничества и даже прогнозирования прибыли компании. В сочетании с другими методами интеллектуального анализа данных прогнозирование предполагает анализ тенденций, классификацию, сопоставление с моделью и отношения. Анализируя прошлые события или экземпляры, можно предсказывать будущее.

Например, используя данные по авторизации кредитных карт, можно объединить анализ дерева решений прошлых транзакций человека с классификацией и сопоставлением с историческими моделями в целях выявления мошеннических транзакций. Если покупка авиабилетов в США совпадает с транзакциями в США, то вполне вероятно, что эти транзакции подлинны.

Последовательные модели

Последовательные модели, которые часто используются для анализа долгосрочных данных, ― полезный метод выявления тенденций, или регулярных повторений подобных событий. Например, по данным о покупателях можно определить, что в разное время года они покупают определенные наборы продуктов. По этой информации приложение прогнозирования покупательской корзины, основываясь на частоте и истории покупок, может автоматически предположить, что в корзину будут добавлены те или иные продукты.

Деревья решений

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

Рисунок 5. Подготовка данных

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

Опора на SQL

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

При работе с InfoSphere Warehouse создание поведенческо-демографической модели в целях анализа данных о покупателях для понимания моделей их поведения предусматривает использование исходных данных SQL, основанных на информации о транзакциях, и известных параметров покупателей с организацией этой информации в заранее определенную табличную структуру. Затем InfoSphere Warehouse может использовать эту информацию для интеллектуального анализа данных методом кластеризации и классификации с целью получения нужного результата. Демографические данные о покупателях и данные о транзакциях можно скомбинировать, а затем преобразовать в формат, который допускает анализ определенных данных, как показано на .

Рисунок 6. Специальный формат анализа данных

Например, по данным о продажах можно выявить тенденции продаж конкретных товаров. Исходные данные о продажах отдельных товаров можно преобразовать в информацию о транзакциях, в которой идентификаторы покупателей сопоставляются с данными транзакций и кодами товаров. Используя эту информацию, легко выявить последовательности и отношения для отдельных товаров и отдельных покупателей с течением времени. Это позволяет InfoSphere Warehouse вычислять последовательную информацию, определяя, например, когда покупатель, скорее всего, снова приобретет тот же товар.

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

Рисунок 7. Структура MapReduce

В предыдущем примере мы выполнили обработку (в данном случае посредством MapReduce) исходных данных в документальной базе данных и преобразовали ее в табличный формат в базе данных SQL для целей интеллектуального анализа данных.

Для работы с этой сложной и даже неструктурированной информацией может потребоваться более тщательная подготовка и обработка. Существуют сложные типы и структуры данных, которые нельзя обработать и подготовить в нужном вам виде за один шаг. В этом случае можно направить выход MapReduce либо для последовательного преобразования и получения необходимой структуры данных, как показано на , либо для индивидуального изготовления нескольких таблиц выходных данных.

Рисунок 8. Последовательная цепочка вывода результатов обработки MapReduce

Например, за один проход можно взять исходную информацию из документальной базы данных и выполнить операцию MapReduce для получения краткого обзора этой информации по датам. Хорошим примером последовательного процесса является регенеририрование информации и комбинирование результатов с матрицей решений (создается на втором этапе обработки MapReduce) с последующим дополнительным упрощением в последовательную структуру. На этапе обработки MapReduce требуется, чтобы весь набор данных поддерживал отдельные шаги обработки данных.

Независимо от исходных данных, многие инструменты могут использовать неструктурированные файлы, CSV или другие источники данных. Например, InfoSphere Warehouse в дополнение к прямой связи с хранилищем данных DB2 может анализировать неструктурированные файлы.

Заключение

Интеллектуальный анализ данных - это не только выполнение некоторых сложных запросов к данным, хранящимся в базе данных. Независимо от того, используете ли вы SQL, базы данных на основе документов, такие как Hadoop, или простые неструктурированные файлы, необходимо работать с данными, форматировать или реструктурировать их. Требуется определить формат информации, на котором будет основываться ваш метод и анализ. Затем, когда информация находится в нужном формате, можно применять различные методы (по отдельности или в совокупности), не зависящие от требуемой базовой структуры данных или набора данных.

Прошу прислать расширенную информацию по ABC-анализу, у нас огромная база контрагентов в 1С. Как правильно и грамотно сделать ABC-анализ?

Ответ

Павел Боровков,

генеральный директор «Консалтинговой фирмы “Партнеры и Боровков“»

По нашему опыту внедрений систем ABC-анализа, учетные базы многих компаний слабо подготовлены к его эффективному проведению. К примеру, как выглядит «обычный» справочник «Контрагенты» в базах 1С бухгалтерского или оперативного учета?

В нем можно увидеть следующее:

Лучшая статья месяца

Мы подготовили статью, которая:

✩покажет, как программы слежения помогают защитить компанию от краж;

✩подскажет, чем на самом деле занимаются менеджеры в рабочее время;

✩объяснит, как организовать слежку за сотрудниками, чтобы не нарушить закон.

С помощью предложенных инструментов, Вы сможете контролировать менеджеров без снижения мотивации.

  1. Контрагенты не сгруппированы четко по своим типам: Клиенты, Поставщики, Банки, Госорганы и т. д., а разложены в папки произвольного характера: «Старые» и «Новые», «Клиенты менеджера Петрова», «НЕ удалять!», «Поставщики ООО Ромашка» и пр.
  2. Контрагенты, выступающие как покупателями, так и поставщиками, задублированы (иногда повторяются даже более двух раз).
  3. Некоторые юридические лица заведены по несколько раз, у каких-то наименования совпадают полностью, у других – отличаются на несколько букв, где-то указаны ИНН и КПП, а в другом месте – нет.

Описанная ситуация усугубляется в случаях, если:

  1. Мы говорим о консолидированной (корректнее говоря, «сводной») базе группы компаний, ведущих свой учет в отдельных базах и справочниках, а потом – сливающих их в одно хранилище.
  2. Имел место переход с базы одной версии на более продвинутую, и правила хранения данных в старом хранилище наслоились на правила новой базы.
  3. Учет отгрузок ведется в базе оперативного учета, а оплат и взаимных задолженностей – в бухгалтерской, между которыми есть обмен, но неполный.
  4. Плюс, конечно, комбинации всех описанных выше случаев. В итоге, получить наглядный отчет по ABC-анализу, где клиенты и продажи ранжированы должным образом, практически невозможно.

Рассмотрим по шагам, что нужно предпринять, чтобы базы 1С позволяли эффективно провести ABC-анализ:

  1. Внедрите единые правила ведения справочника «Контрагенты» во всех юридических лицах и всех их базах (оперативных, бухгалтерских, бюджетирования и CRM – если они стоят отдельно). Обязательны такие правила: a. Сгруппируйте контрагентов по четким типам, выделив всех клиентов в одну группу. b. Если контрагент выступает как покупателем, так и поставщиком, определите, какие из операций (продажи или закупки) являются для вас более существенными, и отнесите его в соответствующую группу. Не дублируйте! c. Не допускается внесение конкретного контрагента в базу более одного раза – только уникальные записи.
  2. Сделайте аналогичную выверку для связанных справочников: «Договоры контрагентов», «Заказы контрагентов», «Проекты», «Контактные лица контрагентов», поскольку в их разрезе также может проводиться анализ.
  3. Определитесь с методом проведения ABC-анализа. Прежде всего: a. По оплате или отгрузке считайте продажи для целей этого анализа. Возможно, это будут какие-либо специфические показатели: количество (а не сумма) продаж, средняя дебиторская задолженность или что-то еще; b. Определение аналитики (Контрагенты, Договоры, Заказы и т.д.) будет ключевым для проведения анализа. c. Определите, какие пороговые значения будут применяться для сегментирования. Классические – это 80 % (А), 15 % (В) и 5 % (С), но вы можете установить и свои границы. В таком случае хорошо бы понимать обоснования – почему именно такие. После структурирования исходных данных и уточнения метода анализа можно переходить к технике – получению отчета в конкретной конфигурации 1С.

Здесь возможны следующие варианты:

  1. Если вы опираетесь на данные оперативного учета (например, в конфигурации «1С: Управление торговлей»), то в таких продуктах есть свой типовой отчет «АВС-анализ продаж», в котором можно отрегулировать пороговые значения и ряд других параметров, после чего получить готовый результат.
  2. В случае использования бухгалтерской базы (например, конфигурации «1С: Бухгалтерия предприятия») лучше получить оборотно-сальдовую ведомость по счету 51 (при анализе «по оплате») или 90 (при анализе «по отгрузке), выгрузить результат в Excel и далее в нем произвести анализ его средствами.
  3. Если у вас есть какая-либо продвинутая управленческая конфигурация (например, «Инталев: Корпоративный менеджмент»), то в ней можно гибко настроить ABC-анализ любого вида с учетом специфики именно вашего бизнеса: по любым аналитикам, с разными пороговыми значениями, графиками и диаграммами. На этом подготовка анализа и получение отчетной формы завершается. Далее необходимо принимать решения о дальнейшем бизнесе с каждым клиентом в зависимости от того, в какой диапазон он попал: с кем развивать сотрудничество, кого переводить в «режим ожидания», а с кем, возможно, и завершать сотрудничество.

Сергей Корякин,

директор департамента постановки учетных систем «Альянс Консалтинг»

Если говорить упрощенно, ABC/XYZ анализ позволяет классифицировать ресурсы компании по степени их важности. В основном данный тип анализа и классификации применяют к товарному перечню и к контрагентам. Особенности данного анализа предполагают укрупненное деление массива данных на категории, поэтому не столь важно большой или небольшой у компании перечень номенклатуры и контрагентов.

В большинстве систем оперативного учета компании 1С предусмотрена возможность проведения ABC/XYZ-классификации и анализа. Проще всего описать принцип этой классификации на примере номенклатуры.

Использование ABC/XYZ-классификации номенклатуры для компании позволяет решить следующие задачи:

  • проанализировать оборачиваемость товаров, стабильность расходов;
  • улучшить показатели оборачиваемости товаров;
  • исключить дефицит материальных ресурсов;
  • оценить запасы товаров;
  • снизить затраты предприятия на покупку и хранение товаров;
  • снизить потребности в оборотных средствах;
  • спрогнозировать дополнительные закупки.

ABC-классификация позволяет разделить все товары на три категории: товары А-класса – с большим объемом продаж; товары В-класса – с более умеренным объемом продаж; товары С-класса – наименее ходовые.

Основная идея XYZ-анализа состоит в группировке объектов по мере однородности анализируемых параметров (по коэффициенту вариации). Для этого метода нужно выбрать параметр, по которому будет проводиться анализ (например, количество проданного товара), определить период и число периодов для изучения. Важно, что, чем больше число периодов, тем более показательными будут результаты. При этом сам период должен быть не меньше горизонта планирования, принятого в компании.

В результате анализа все товары будут отнесены по выбранному параметру к одному из трех классов: Х-класс, Y-класс, Z-класс. Если в качестве параметра был выбран показатель количества проданного товара, то трактовать классификацию можно так: Х-класс - это стабильно продаваемые в анализируемые периоды времени товары; Y-класс - это товары с меньшей стабильностью продаж, Z-класс - редко продаваемые товары.

Если результаты АВС- и XYZ-анализа совместить, то получатся девять групп объектов анализа. Они будут сгруппированы по двум критериям: степень влияния на конечный результат (АВС) и стабильность/прогнозируемость этого результата (XYZ).

ABC/XYZ-классификация номенклатуры позволяет разделить товары на следующие группы:

  • АХ, ВХ - товары отличаются высоким товарооборотом и стабильностью. Необходимо обеспечить их постоянное наличие, но для этого не нужно создавать избыточный страховой запас. Расход товаров этих групп стабилен и хорошо прогнозируется.
  • AY, BY - товары этих групп при высоком товарообороте имеют недостаточную стабильность расхода. Как следствие, чтобы обеспечить постоянное наличие, для них необходимо увеличить страховой запас.
  • AZ, BZ - товары этих групп при высоком товарообороте отличаются низкой прогнозируемостью расхода. Попытка обеспечить гарантированное наличие всех товаров данных групп только за счет избыточного страхового запаса приведет к тому, что средний товарный запас торгового предприятия значительно увеличится.
  • CX товары этой группы характеризуются низким товарооборотом, однако отличаются высокой стабильностью потребления. Для таких товаров можно использовать систему заказов с постоянной периодичностью.
  • CY товары этой группы характеризуются низким товарооборотом и низкой стабильностью потребления. Для таких товаров можно использовать систему заказов с постоянной суммой (объемом) заказа, но при этом формировать страховой запас исходя из имеющихся у торгового предприятия финансовых возможностей.
  • CZ в эту группу попадают все новые товары, товары непостоянного спроса, поставляемые под заказ и т. п. Часть из них можно безболезненно выводить из ассортимента, а другую часть нужно регулярно контролировать, так как именно из товаров этой группы возникают неликвидные или труднореализуемые запасы, из-за которых торговое предприятие несет потери.

Проведение ABC/XYZ-классификации номенклатуры можно разделить на следующие этапы:

  • настройка параметров ABC/XYZ-классификации,
  • выполнение ABC-классификации номенклатуры,
  • выполнение XYZ-классификации номенклатуры;
  • анализ ABC/XYZ-номенклатуры.

АВС и XYZ классификация контрагентов производится аналогично. Как пример, можно анализировать за определенный период времени на основании анализа данных о продажах товаров клиентам: выручки, прибыли и количестве оформленных документов продажи. Параметры для проведения АВС и XYZ классификации клиентов задаются в настройках параметров учета. Для каждого клиента можно посмотреть динамику изменения показателей АВС и XYZ классификации клиентов. Обобщенные данные можно посмотреть в соответствующих отчетах для анализа клиентской базы.

В учетных системах 1С помимо стандартных средств можно произвести дополнительную классификацию партнеров с помощью так называемых «дополнительных свойств». Для каждого профиля партнера (клиенты, поставщики, конкуренты) можно создать свой набор свойств, дополнительных реквизитов и сведений. Далее на основе этих дополнительных свойств можно проводить ABC и XYZ анализ.

Популярные статьи

© 2024 sistemalaki.ru
Бизнес-идеи. Бизнес-планы. Франшизы. База знаний. Документы