Дополнительные требования:

advertisement
1.
2.
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
Введение.
Обнаружение отклонений в показаниях набора счётчиков.
Кластеризация векторов показаний счётчиков.
Множества нормальных и аномальных точек пространства.
Эмпирическое определение принадлежности точки кластеру.
Свойства определения принадлежности точки кластеру.
Математическое определение принадлежности точки кластеру.
Улучшение свойств определения принадлежности точки кластеру.
1. Введение.
Предлагается математическая основа анализа показаний набора счётчиков на предмет
обнаружения отклонений, причём анализ может корректироваться пользователем.
2. Обнаружение отклонений в показаниях набора счётчиков.
2.1. Кластеризация векторов показаний счётчиков.
Пусть константное множество E точек в пространстве Rn с евклидовой метрикой
представляет собой выборки показаний некоторого множества счётчиков. Причём
показания нормированы так, что значение -1 соответствует наименьшему значению vmin
счётчика, встречающемуся в E, значение 1 - наибольшему значению vmax и значение (v vmin) / (vmax - vmin) - 1 соответствует произвольному значению v счётчика. Если счётчик
принимает одно значение v0 во всех выборках из E, то в соответствие этому значению
ставим нормированное значение 0, любым значениям, меньшим v0, -1 и большим 1.
Имеем разбиение конечного множества E на m непустых кластера {Ci, i=1,…,m} с
помощью алгоритмов кластеризации K-means или C-means, причём m - оптимальное по
некоторой оценке количество кластеров. В качестве оценки возьмём наименьшее
расстояние между кластерами попарно. Расстояние между двумя кластерами определим
как наименьшее расстояние между точкой первого и точкой второго.
Каждый кластер заменим n-мерным шаром с центром в центройде кластера O и
радиусом, равным наибольшему расстоянию r от центра кластера до точки кластера из E.
Каждая точка в Rn либо принадлежит только одному из шаров, либо не принадлежит
никакому из них, что следует из свойств используемых алгоритмов кластеризации.
Переходим к шарам, так как иначе для определения принадлежности точки конкретному
кластеру необходимо каждый раз учитывать все точки из E этого кластера или даже все
точки из E других кластеров, что может ощутимо сказаться на производительности
анализа.
Далее шары будем называть кластерами, т.к. определение принадлежности точки будет
изменено и, в общем случае, не будет совпадать с определением принадлежности точки
шару. Отклонением или аномалией будем считать точку, не принадлежащую ни одному из
кластеров.
2.2. Множества нормальных и аномальных точек пространства.
Имеем конечное, возможно пустое множество P точек в Rn, которые заведомо считаем
нормальными. Аналогично, имеем конечное, возможно пустое множество N точек в Rn,
которые заведомо считаем аномальными. Оба множества могут динамически изменяться,
в частности, в результате разрешения аномальных ситуаций пользователем, т.е.
фактически указанием, является ли конкретная выборка значений счётчиков нормальной
или нет.
Подмножество точек из P, ближайшим кластером к которым является C, обозначим C+
и
назовём
множеством
положительных
включений
кластера
С.
Аналогично,
подмножество точек из N, ближайшим кластером к которым является C, обозначим C- и
назовём множеством отрицательных включений кластера С. Кластер С является
ближайшим к точке v в Rn, если наименьшее расстояние от v до точки из C U C+ является
наименьшим таким расстоянием для всех кластеров из {Ci}. Предполагаем, что множества
C+ и C- будут динамически изменяться в результате изменения множеств P и N.
Точки из C+ и C- могут находиться как внутри базового шара кластера, так и вне него.
Сделаем замечание, что расстояние от каждой точки c из C+ до ближайшей точки из C U
C+ должно не превышать некоторое значение hn(c), которое зависит от C U C+. Если c
этому не удовлетворяет, то разумнее будет добавить отдельный кластер в виде шара с
центром c и радиусом, равным среднему расстоянию hav до ближайшей точки по всем
точкам из C U C+.
Значение hn(c) будем определять, опираясь на следующие требования, выполнение
которых необходимо для сохранения свойств кластера при включении в кластер C U C+
точки c:
1. Чем больше плотность точек в C U C+, тем ближе к центройду кластера должны в
целом находиться точки из C+.
2. Точка из C+ может находиться тем дальше от центра C, чем дальше от него
находятся остальные точки из C+.
3. Чем дальше находится точка c от O, тем меньшим должно быть расстояние от неё
до ближайшей точки.
4. При пустом множестве C+ вблизи от поверхности базового шара значение hn(c)
должно быть сравнимо с наибольшим расстоянием до ближайшей точки для всех
точек из C U C+.
Пусть необходимо проверить возможность включения c в C+. Если hmax - наибольшее
расстояние до ближайшей точки для всех точек из C U C+, rav - среднее расстояние до
центра C для точек из C U C+, rav0 - среднее расстояние до центра C только для точек из C
и rn – расстояние от ближайшей к c точки из C U C+ до центра C, то определим hn(c) как
hn(c) = hmax * r / rn(c) * rav / rav0 .
При таком определении hn(c) получаем, что чем больше плотность точек в C U C+, тем
меньше hmax, и, следовательно, тем меньше hn(c) и ближе к O должны находиться точки из
C+, т.е. требование 1 выполняется.
Также получаем, что чем дальше от центройда находятся остальные точки из C+, тем
больше rav, и, следовательно, тем больше hn(c) и дальше от O должны находиться точки из
C+, т.е. требование 2 выполняется.
Чем дальше точка c находится от центройда O, тем больше rn(c) и, следовательно, тем
меньше расстояние от c до ближайшей точки, т.е. требование 3 выполняется.
При пустом C+ rav / rav0 есть 1, а rn(c) тем ближе к r, чем больше точек в C, т.е. hn(c)
сравнимо с hmax и требование 4 выполняется.
2.3. Эмпирическое определение принадлежности точки кластеру.
Из определения принадлежности точки кластеру должно следовать, что если точка
принадлежит кластеру, то он является ближайшей к ней. Имея критерий принадлежности
точки ближайшему кластеру, можно судить об аномальной природе точки.
Желаем, чтобы вектора, “примерно” лежащие на луче (оценку “примерности”
определим далее), проведённом из центройда кластера через точку из P, по определению
принадлежали кластеру, а вектора, “примерно” лежащие на луче, проведённом
из
центройда кластера через точку из N, далее этой точки, не принадлежали кластеру.
В R2 это можно представить следующим образом:
На рисунке O - центройд кластера, центр шара радиуса r, P – положительное
включение, т.е. точка, которую мы заведомо считаем нормальной, и N – отрицательное
включение, т.е. точка, которую мы заведомо считаем отклонением.
Тогда разумно будет считать нормальными и точки из некоторой области,
ограниченной поверхностью, проходящей через точку P и плавно переходящей (первая
производная) в поверхность шара, такую что r1 (расстояние от P до O) является
наибольшим расстоянием от точки этой поверхности до центройда O. Аналогично,
разумно будет считать аномальными точки шара, выходящие за некоторую поверхность,
проходящую через точку N и плавно переходящую в поверхность шара, такую что r2
(расстояние от N до O) является наименьшим расстоянием от точки этой поверхности до
центройда O. Образно говоря, получим искривление T поверхности шара, которое будет
охватывать положительные включения и не охватывать отрицательные.
2.4. Свойства определения принадлежности точки кластеру.
Принадлежность точки v ближайшему к ней кластеру C можно выявлять через
функцию, определяющую наибольшее допустимое расстояние от центройда до точек
кластера, принадлежащих лучу, проведённому из центройда через эту точку, т.е. функции,
сопоставляющей точке в Rn неотрицательное число. Обозначим эту функцию как f(v).
Если выполняется ||v – O|| <= f(v), то точка принадлежит кластеру C, иначе не
принадлежит.
Остаётся указать алгоритм вычисления функции f, которая зависит от множеств C, C+ и
C-, для любой точки в Rn. f(v) будем вычислять по значениям функции g(c, v),
аналогичной f, но учитывающей влияние только одного включения с из C+ и никаких
других.
Перечислим ряд свойств поверхности T, выполнение которых должно обеспечивать
определение g:
Свойство 1.
Любой луч, проведённый из O, должен пересекать T ровно в одной точке. T однозначно
параметризуется через точку x поверхности базового шара кластера, потому что задаётся
через значения g(с, x) для каждой с из C+ U C-.
Свойство 2.
Если среди точек в C- есть точки, лежащие на луче, проведённом из O через x, где x точка поверхности шара, то T должна проходить через ближайшую из них к O на
некотором малом смещении в сторону O. Иначе, если среди точек в C+ есть точки,
лежащие на луче, проведённом из O через x, то T должна проходить через наиболее
удалённую из них от O на некотором малом смещении в сторону от O.
Свойство 3.
T должна совпадать с поверхностью шара в точке x, направление от O к которой не
совпадает ни с одним направлением от O к точке c из C+ U C- в смысле выполнения
неравенства:
cos (x - O, с - O) >= a(с)
(*), где cos (x - O, с - O) - косинус угла между векторами и
a(с) из (0, 1] (зависит от параметров кластера O и r) определим позже из некоторых
соображений.
Естественно, чтобы T переходила в поверхность шара плавно по первой производной
для того, чтобы функция f(v) не имела разрывов.
Свойство 4.
Для каждой точки из C+ кластеру должна принадлежать также и её малая окрестность
диаметра, сравнимого со средним расстоянием hav до ближайшей точки по всем точкам из
C U C+. Для каждой точки из C- кластеру должна не принадлежать также и её малая
окрестность диаметра, сравнимого со средним расстоянием hav0 до ближайшей точки по
всем точкам только из C.
2.5. Математическое определение принадлежности точки кластеру.
Вычислив значения g(c, v) для каждого c из C+ U C-, имеем 3 случая для вычисления
f(v) по этим значением:
Случай 1. Точек, совпадающих с v - O в смысле выполнения неравенства (*), среди C+
U C- нет.
Случай 2. Среди точек из C- нет точек, совпадающих с v - O в смысле выполнения
неравенства (*), но есть такие точки из C+.
Случай 3. Среди точек из C- есть точки, совпадающие с v - O в смысле выполнения
неравенства (*).
В случае 1 полагаем:
f(v) = r.
В случае 2 для выполнения свойства 2 f(v) должна зависеть от наибольшего значения
g(с, v), где c из C+, и не зависеть от других значений, т.е. можно положить:
f(v) = max g(с, v), c из C+.
В случае 3 необходимо учесть влияние точек из C- на выполнение свойства 2. Для
этого f(v) должна зависеть от min g(с, v) = g(с-, v), где c из C-, и не зависеть от других
точек из C-. Но f(v) также должна учитывать влияние точек из C+ и, таким образом,
зависеть от max g(с, v) = g(с+, v), c из C+. Поэтому, необходимо брать взвешенное среднее
значение величин g(с+, v) и g(с-, v):
f(v) = (w(с+, v) * g(с+, v) + w(с-, v) * g(с-, v)) / (w(с+, v) + w(с-, v)),
где w(с, v) принимает значение от 0 до 1 и характеризует степень совпадения направлений
векторов x - O и с - O, причём значение 1 соответствует полному совпадению, а 0 минимально допустимому.
В качестве w(с, v) можно взять:
w(с, v) = 1 - (arccos (cos (v - O, с - O))) / arccos (a(с)),
где a(с) из неравенства (*) и ещё не определено.
Для случаев 2 и 3 осталось указать функцию g(с, v), обеспечивающую выполнение
свойств 1 - 4 поверхности T.
Приемлемым видом поверхности T для кластера C с C+, состоящим из одной точки O1,
находящейся вне базового шара S кластера, и пустым C-, является конус, в который
одновременно вписан шар S и шар S1 с центром в точке O1 и радиусом hav. Причём, как
показано на рисунке, любая образующая урезана до отрезка от точки касания с шаром S
до точки касания с шаром S1, и T включает сегмент Sc поверхности шара S1, которая
плавно переходит во множество образующих отрезков Lc.
Такая поверхность T определяет функцию g(с, v) и удовлетворяет свойствам 1-4.
Из подобия ∆O1B1A и ∆OBA имеем OA = H = r * d / (r - hav), где d – расстояние между O1
и O. Тогда AOB = γ0 = arccos (OB / OA) = arccos (r / H) = arccos ((r - hav) / d).
Очевидно, что a(c) из неравенства (*) равно cos AOB: a(c) = (r - hav) / d.
Пусть γ – величина угла O1Ov, т.е. γ = arccos (cos (v - O, с - O)). Предполагается, что γ
<= γ0, в рассматриваемом случае вычисления f(v).
Величину угла O1OB1 можно найти из ∆OO1B1, в котором OO1 = d, O1В1 = hav, OO1B1 =
∏ - AOB. По теореме косинусов имеем OB12 = OO12 + O1B12 – 2 * OO1 * O1B1 * cos OO1B1,
т.е. OB1 = sqrt (d2 + hav2 + 2 * d * hav * (r - hav) / d). Далее по теореме синусов sin O1OB1 /
O1B1= sin OO1B1 / OB1:
O1OB1 = arcsin ( sin (∏ - arccos ((r - hav) / d)) * hav / sqrt (d2 + hav2 + 2 * d * hav * (r - hav) / d)).
Рассмотрим два случая вычисления g(с, v): γ меньше величины γ1 угла O1OB1 и больше
либо равно неё. В первом случае T будет частью поверхности шара S1, во втором частью
поверхности конуса.
Случай 1. γ < γ1
Пусть X - точка пересечения луча, проведённого из O через v, и сегмента Sc
поверхности шара, тогда g(с, v) = OX. По теореме синусов для ∆OO1X имеем sin OXO1 /
OO1 = sin O1OX / O1X, следовательно, OXO1 = arcsin (d / h
*
sin γ). Снова по теореме
синусов имеем OX / sin OO1X = O1X / sin O1OX, следовательно, из OO1X = ∏ - OXO1 O1OX:
g(с, v) = OX = h * sin (γ + arcsin (d / h * sin γ)) / sin γ.
Случай 2. γ >= γ1
Пусть X - точка пересечения луча, проведённого из O через v, и множества
образующих отрезков Lc, тогда g(с, v) = OX. В ∆OBX OX = OB / cos XOB, следовательно,
из XOB = AOB - AOX = arccos ((r - hav) / d) - γ:
g(с, v) = OX = r / cos ( arccos ((r - hav) / d) - γ).
2.6. Улучшение свойств определения принадлежности точки кластеру.
Образующие отрезки можно ”прогнуть” к оси конуса, как показано на рисунке, чтобы
уменьшить объём пространства Rn, точки которого будут включены в кластер. Чем
меньше объём добавляемого с включением c в кластер пространства, тем анализ будет
более чувствителен к аномалиям. Деформация отрезков должна сохранять выполнение
свойств 1-4.
Определим деформацию Lc` множества отрезков Lc в виде прогиба каждого из них к
оси OO1 через коэффициент k(γ) функции g(с, v), принимающий значения от 0 до 1 и
зависящий от величины γ угла между векторами c - O и v - O. Для гладкого слияния Lc` и
Sc необходимо выполнение условий: k(γ0) = k(γ1) = 1 и k’(γ0) = k’(γ1) = 0. Напрашивается
функция косинуса с аргументом, принимающим значение от 0 до 2 ∏. Имеет смысл ввести
параметр a, определяющий величину максимального прогиба, со значением в интервале от
0 до 1, где 1 соответствует самому сильному прогибу, а 0 - его отсутствию. Используя
возведение модуля косинуса в некоторую степень p, можно задавать объёмную величину
прогиба. Чем больше p, тем меньшего объёма часть пространства будет включена в
кластер C при добавлении точки c в C+. Получаем следующий вид функции k(γ):
(γ) = 1 - a / 2 + a / 2 * sgn (cos (γm)) * | cos (γm) | ^ p, где γm = (γ - γ1) / (γ0 - γ1) * 2∏.
Download