Анализ аномалий – это процесс, который оценивает частоту отклонений данных и сравнивает ее с фоновой частотой. Критерием оценки частоты отклонения данных является большее количество отклонений данных, а не естественное возникновение аномалий данных. В этом случае частота измеряется путем сравнения количества отклонений данных с фоном возникновения отклонений данных.
Это предоставляет информацию о том, сколько отклонений данных вызвано процессом с течением времени и частотой отклонения. Это также может обеспечить связь с основным процессом отклонения. Эта информация может быть использована для понимания основной причины отклонения. Более высокая частота отклонения данных дает ценную информацию о процессе отклонения. В такой ситуации, вероятно, будет обнаружен риск отклонения и могут быть оценены необходимые изменения процесса.
Многие исследования проводятся по анализу аномалий данных для выявления факторов, способствующих возникновению аномалий данных. Некоторые из этих факторов относятся к процессам, которые требуют частых изменений процессов. Некоторые из этих факторов можно использовать для выявления процессов, которые могут быть аномальными. Многие параметры можно найти в системах, обеспечивающих характеристики процесса.
Изучение правила ассоциации
Изучение ассоциативных правил – это основанный на правилах метод машинного обучения для обнаружения интересных отношений между переменными в больших базах данных примеров. Эта техника вдохновлена слуховой системой, где мы изучаем правила ассоциации слухового стимула и только этого стимула.
Иногда при работе с набором данных мы не уверены, релевантны ли строки набора данных для задачи обучения, и если да, то какие. Мы можем захотеть пропустить те строки набора данных, которые не имеют значения. Следовательно, ассоциации обычно определяются неинтуитивными критериями, такими как порядок, в котором эти переменные появляются в последовательности примеров, или повторяющиеся значения в этих строках данных.
Этот проблематичный аспект изучения ассоциативных правил может быть устранен в виде алгоритма обнаружения аномалий. Эти алгоритмы пытаются обнаружить нестандартные шаблоны в больших наборах данных, которые могут представлять необычные связи между особенностями данных. Эти аномалии часто обнаруживаются алгоритмами распознавания образов, которые также являются частью алгоритмов статистического вывода. Например, изучение правил наивного Байеса может обнаруживать аномалии при изучении правил ассоциации на основе визуального осмотра представленных примеров.
В большом наборе данных пространство признаков может представлять область изображения как набор чисел, в котором каждый пиксель изображения имеет определенное количество пикселей. Характеристики изображения могут быть представлены в виде вектора, и мы можем поместить этот вектор в пространство признаков. Если пространство признака не пусто, признак будет числом пикселей в изображении, которые принадлежат определенному цвету.
Кластеризация
Кластеризация – это задача обнаружения групп и структур в данных, которые в той или иной мере «похожи», не используя известные структуры в данных, а обучаясь на том, что уже есть.
В частности, кластеризация используется таким образом, что новые точки данных добавляются только к существующим кластерам, без изменения их формы для соответствия новым данным. Другими словами, кластеры формируются до сбора данных, а не закрепляются после того, как все данные собраны.
Учитывая набор параметров для данных, которые (в основном) являются переменными, и их «коллинеарность», кластеризацию можно рассматривать как иерархический алгоритм для поиска кластеров точек данных, удовлетворяющих набору критериев. Параметры можно сгруппировать в одну из двух категорий: значения параметров, определяющие пространственное расположение кластеров, и значения параметров, определяющие отношения между кластерами.
Учитывая набор параметров для набора данных, кластеризацию можно рассматривать как обнаружение этих кластеров. Какие параметры мы используем для этого? Метод неявной кластеризации, который находит ближайшие кластеры (или, в некоторых версиях, кластеры, более похожие друг на друга) с наименьшими вычислительными затратами, вероятно, является самым простым и наиболее часто используемым методом для этого. При кластеризации мы стремимся к тому, чтобы кластеры были как можно более связаны друг с другом – не имеет значения, делаем ли мы это, проводя больше измерений или используя только определенную технику для сбора данных.
Но в чем разница между кластеризацией и разделением данных на один или несколько наборов данных?
Методы неявной кластеризации и управляемой кластеризации на самом деле очень похожи. Вся разница в том, что мы используем разные параметры, чтобы определить, в каком направлении нам следует разделять данные. Возьмем в качестве примера набор точек на сфере, которые определяют взаимосвязанную сеть. Оба метода направлены на то, чтобы сеть была максимально близка к сети, определяемой двумя ближайшими точками. Это потому, что нам все равно, если мы очень далеко от одного или другого. Итак, используя алгоритм неявной кластеризации (кластерное расстояние), мы разделим сферу на две части, которые определяют очень разные сети: одна будет сетью, определяемой двумя ближайшими точками, а другая будет сетью, определяемой двумя самыми дальними точками. В результате получится две совершенно отдельные сети. Но это нехороший подход, потому что чем дальше мы удаляемся от двух ближайших точек, тем меньше расстояния между точками, тем труднее будет найти связи между ними – так как существует ограниченное количество точек, которые связаны небольшим расстоянием.
С другой стороны, метод контролируемой кластеризации (кластерное расстояние) потребовал бы от нас измерения длины между каждой парой точек, а затем выполнения вычислений, которые делают ближайшие друг к другу сети наименьшим возможным расстоянием. Результатом, вероятно, будут две отдельные сети, которые близки друг к другу, но не совсем одинаковы. Поскольку нам нужно, чтобы две сети были похожи друг на друга, чтобы обнаружить взаимосвязь, вполне вероятно, что этот метод не сработает – вместо этого два кластера будут совершенно разными.
Различие между этими двумя методами сводится к тому, как мы определяем «кластер». Дело в том, что в первом методе (кластерное расстояние) мы определяем кластер как множество точек, принадлежащих сети, аналогичной сети, определяемой двумя ближайшими точками. По этому определению сети всегда будут связаны (они будут находиться на одинаковом расстоянии друг от друга), независимо от того, сколько точек мы включаем в определение. Но во втором методе (управление кластеризацией) мы определяем кластеры как пары точек, которые находятся на одинаковом расстоянии от всех других точек в сети. Это определение может сильно затруднить поиск связанных точек, потому что оно требует, чтобы мы находили каждую точку, аналогичную другим точкам в сети. Тем не менее, это понятный компромисс. Сосредоточившись на поиске кластеров с одинаковым расстоянием друг от друга, мы, вероятно, получим больше полезных данных, поскольку, если мы найдем связи между ними, мы сможем использовать эту информацию, чтобы найти взаимосвязь между ними. Это означает, что у нас больше возможностей найти связи, что облегчит выявление отношений. Определяя кластеры с помощью измерений расстояния, мы гарантируем, что сможем найти взаимосвязь между двумя точками, даже если нет возможности напрямую измерить расстояние между ними. Но это часто приводит к очень малому количеству соединений в данных.
Глядя на пример создания двух наборов данных – один для неявной кластеризации и один для управляемой кластеризации – мы можем легко увидеть разницу между этими двумя методами. В первом примере результаты могут быть одинаковыми в одном случае и разными в другом. Но если метод хорош для поиска интересных взаимосвязей (как это обычно и бывает), он даст нам полезную информацию об общей структуре данных. Однако, если техника плохо выявляет взаимосвязи, то она даст нам очень мало информации.
Допустим, мы разрабатываем систему для определения направления нового продукта и хотим определить похожие продукты. Поскольку невозможно измерить направление продукта вне системы, нам придется найти связи между продуктами на основе информации об их названиях. Если есть хорошее правило, которое мы можем использовать для установления связей между похожими продуктами, тогда эта информация очень полезна, поскольку она позволяет нам находить интересные отношения (путем идентификации похожих продуктов, которые появляются близко друг к другу). Однако, если связь между двумя продуктами не очень очевидна, вполне вероятно, что это просто несвязанная связь – а значит, выбранный нами метод обнаружения признаков может не иметь большого значения. С другой стороны, если связь не очень очевидна, но чрезвычайно полезна (как в приведенном выше примере), то мы можем начать узнавать, как название продукта связано с процессом, через который продукт прошел. Это пример того, как разные методы могут давать очень разные результаты.
В отличие от характеристик разных методов, у вас также есть разные возможные техники. Например, когда я говорю, что моя система использует распознавание изображений, это не обязательно означает, что процесс, через который проходит продукт, использует распознавание изображений. Если есть изображения продукта, которые мы сделали в прошлом, или если мы захватили некоторые входные данные из изображения продукта, полученная система, вероятно, не будет использовать распознавание изображений. Это может быть что-то совершенно другое – что-то гораздо более сложное. Каждый из этих методов способен идентифицировать очень разные вещи. Результат может зависеть от характеристик фактических данных или от используемых данных. Это означает, что недостаточно посмотреть на конкретный тип инструмента – нам также нужно посмотреть, какой тип инструмента будет использоваться для определенного типа процесса. Это пример того, как анализ данных не должен быть сосредоточен только на решаемой проблеме. Скорее всего, система проходит множество различных процессов, поэтому нам нужно посмотреть, как будут использоваться различные инструменты для создания взаимосвязи между двумя точками, а затем решить, какой тип данных рассматривать.
Часто мы будем больше озабочены тем, как будет применяться метод. Например, мы можем захотеть увидеть, какой тип данных, скорее всего, будет полезен для поиска связи. Мы видим, что нет большой разницы в том, как применяется обработка естественного языка. Это означает, что, если мы хотим найти взаимосвязь, обработка естественного языка будет хорошим выбором. Однако обработка естественного языка не решает все возможные отношения. Обработка естественного языка часто полезна, когда мы хотим сделать огромное количество маленьких шагов, но обработка естественного языка ничего не делает, когда мы хотим пойти действительно глубоко. Взгляд на обработку естественного языка позволяет устанавливать связи между данными, чего нельзя сделать при использовании других методов. Это одна из причин, по которой обработка естественного языка может быть полезной, но не необходимой.
Тем не менее, обработка естественного языка часто не находит таких сильных связей, как распознавание изображений, потому что обработка естественного языка фокусируется на более простых данных, тогда как распознавание изображений рассматривает очень сложные данные. В этом случае обработка естественного языка не очень хороша, но все же может быть полезна. Рассмотрение обработки естественного языка не всегда является лучшим способом решения проблемы. Обработка естественного языка может быть полезна, если данные простые, но иногда невозможно работать с очень сложными данными.
Этот пример можно применить ко многим различным типам данных, но обработка естественного языка, как правило, более полезна для данных естественного языка, таких как текстовые файлы. Для более сложных данных (таких как изображения) обработки естественного языка часто бывает недостаточно. Если есть проблема с обработкой естественного языка, важно рассмотреть другие методы, такие как определение слов и определение того, какие данные на самом деле хранятся в изображении. Этот тип данных потребует другой структуры данных, чтобы найти взаимосвязь.
С возрастающей сложностью технологий у нас часто нет времени просматривать данные, которые мы просматриваем. Даже если мы посмотрим на данные, мы можем не найти хорошего решения, потому что у нас есть большое количество вариантов, но не так много времени, чтобы рассмотреть их все. Вот почему во многих компаниях есть специалист по данным, который может принять множество различных решений, а затем решить, что лучше всего подходит для данных
Классификация
Классификация – это задача обобщения известной структуры для применения к новым данным. Например, программа электронной почты может попытаться классифицировать электронное письмо как «законное», или как «спам», или, может быть, как «удаленное администратором», и если она сделает это правильно, то может пометить электронное письмо как актуально для пользователя.
Однако для серверов классификация более сложна, потому что хранение и передача находятся далеко от пользователей. Когда серверы потребляют огромные объемы данных, проблема в другом. Задача сервера состоит в том, чтобы создать хранилище и передать это хранилище, чтобы серверы могли получить к нему доступ. Таким образом, серверы часто могут избежать разглашения особо конфиденциальных данных, если они могут понять смысл данных при их поступлении, в отличие от обширных пулов данных, часто используемых для электронной почты. Проблема классификации отличается, и к ней нужно подходить по-другому, а существующие системы классификации для серверов не предоставляют интуитивно понятного механизма, позволяющего пользователям обрести уверенность в том, что серверы правильно классифицируют их данные.
Этот простой алгоритм полезен для классификации данных в базах данных, содержащих миллионы или миллиарды записей. Алгоритм работает хорошо, при условии, что все отношения в данных достаточно отличаются друг от друга и что данные относительно малы как в столбцах, так и в строках. Это делает классификацию данных полезной в системах с относительно небольшим объемом памяти и небольшим объемом вычислений, и поэтому классификация больших наборов данных остается серьезной нерешенной проблемой.
Простейшим алгоритмом классификации для классификации данных является метод полной корреляции, также известный как метод корреляции. При полной корреляции у вас есть два набора данных, и вы сравниваете данные одного набора с данными другого набора. Это легко сделать для отдельных фрагментов данных. Следующим шагом является вычисление корреляции между двумя наборами данных. Эта корреляция двух наборов данных говорит вам, какой процент данных составляет каждый набор. Таким образом, используя эту корреляцию, вы можете классифицировать данные либо как один набор, либо как другой, указывая на части набора данных, которые происходят из того или иного набора.
Этот простой метод часто хорошо работает для данных, хранящихся в простых базах данных с небольшим объемом данных и низкой скоростью доступа к данным. Например, система базы данных может использовать древовидную структуру для хранения данных, при этом столбцы записи представляют поля в структуре. Эта структура не позволяла ранжировать данные, потому что данные находились бы в двух отдельных строках древовидной структуры. Это делает невозможным осмысление данных, если данные помещаются только в одну древовидную структуру. Если в базе данных есть два дерева данных, вам нужно будет сравнить каждое из двух деревьев. Если бы было большое количество деревьев, сравнение могло бы быть вычислительно затратным.
Следовательно, полная корреляция является плохим методом классификации. Корреляция данных не различает соответствующие части данных, и данные относительно малы как в столбцах, так и в строках. Эти проблемы делают полную корреляцию непригодной для простых систем классификации данных и систем хранения данных. Однако, если данные относительно велики, может применяться полная корреляция. Этот пример полезен для систем хранения данных с относительно высокой вычислительной нагрузкой.
Сочетание метода классификации данных с системой хранения данных повышает как производительность, так и удобство использования. В частности, размер результирующего алгоритма классификации в значительной степени не зависит от размера хранилища данных. Алгоритм подробной классификации вообще не требует много памяти для хранения данных. Часто он достаточно мал, чтобы хранить его в буфере, и многие организации хранят свои системы классификации таким образом. Также характеристики производительности системы хранения данных не зависят от классификатора. Система хранения данных может обрабатывать данные с высокой степенью изменчивости.
Почему системы классификации не так хороши?
Большинство систем хранения данных не имеют хорошего классификатора, а система классификации данных вряд ли со временем станет лучше. Если в вашей системе хранения данных нет хорошего классификатора, у вашей системы классификации возникнут проблемы.
Большинство компаний так не думают о своих системах хранения данных. Вместо этого они предполагают, что систему можно исправить. Они видят в этом то, что со временем можно улучшить, основываясь на будущих усилиях по техническому обслуживанию. Это убеждение также позволяет легко исправить некоторые проблемы, возникающие из-за плохих систем хранения данных. Например, система хранения данных, которая не принимает слишком короткие или неупорядоченные данные, со временем может быть улучшена, если к ее исправлению будет привлечено больше людей.
Суммирование
Суммирование – предоставление более компактного представления набора данных, включая визуализацию структуры данных, полезно для решения более простых задач и поиска данных для статистических закономерностей и выводов. Вы часто можете аппроксимировать эту структуру, моделируя структуру с помощью алгоритма, аналогичного линейному моделированию.