основная цель задачи - сгруппировать похожие наборы на основе переменных, обладающих 1м и 2м свойствами
НО.
К сожалению изначально я знаю ровно 1 переменную, обладающую 1м свойством, и ровно 1 переменную, обладающую 2м свойством. Характер остальных переменных для меня неизвестен. И условия задачи таковы, что я не могу использовать переменные если я не знаю их характера. Исходя только из этих знаний, все что я могу - это объединять все наборы, имеющие одинаковое значение переменной 2-го рода (при этом разрешая конфликты в случае наличия в двух наборах разных значений переменных 1 рода и одинаковых значений переменных 2 рода, впрочем это уже детали). При этом число кластеров будет стремиться к числу значений известной мне переменной 2 рода.
Проблема состоит в том, что известная мне переменная 2 рода слишком непостоянна и количество наблюдаемых значений слишком велико (ожидание числа наборов с одинаковым значением этой переменной около 20).
Поэтому возникает необходимость использовать переменные, характер которых изначально неизвестен. Для этого необходимо оценить их характер.
На данный момент у меня есть подобие решения для упрощенной модели. Упрощение заключается в том, что я считаю характер переменных дискретным (то есть, если наборы имеют одинаковые значения переменной 2 рода, то такие наборы эквивалентны; и если наборы имеют разные значения переменной 1 рода, то они не эквивалентны)
Пусть v(r,n) - значение переменной n в наборе r.
Пусть Nc - множество переменных 1 рода, Nu - множество переменных второго рода (пересечение может быть непустым)
Тогда
n in Nc -> (NOT(v(r1,n) = v(r2,n)) -> NOT(r1 ~ r2))
n in Nu -> (v(r1,n) = v(r2,n) -> r1 ~ r2)
Допустим, есть 2 набора r1 и r2.
Оба набора содержат переменные a,b и c.
a in Nc
b in Nu
c - переменная, чей характер пока не определен
Очевидно, что возможны 4 ситуации:
S1. v(r1, a) = v(r2, a) AND v(r1, b) = v(r2, b)
S2. v(r1, a) = v(r2, a) AND NOT (v(r1, b) = v(r2, b))
S3. NOT(v(r1, a) = v(r2, a)) AND v(r1, b) = v(r2, b)
S3. NOT(v(r1, a) = v(r2, a)) AND NOT(v(r1, b) = v(r2, b))
В S1 ситуации r1 ~ r2, в S4 ситуации NOT(r1 ~ r2), а S2 и S3 - неопределенность.
На основе большого числа наблюдаемых ситуаций S1 и S4 я делаю предположение что:
A1. c in Nc если НЕ существует (на текущем объеме наблюдений) таких r1, r2 что верно NOT(v(r1,n) = v(r2,n)) AND r1 ~ r2
A2. c in Nu если НЕ существует (на текущем объеме наблюдений) таких r1, r2 что верно v(r1,n) = v(r2,n) AND NOT(r1 ~ r2)
Проблемы данного упрощения следующие:
P1. Допустим я считаю, что N наблюдений переменной 'c' достаточно для А1 или А2. Существует вероятность что на N+M (M>0) наблюдениях переменной c я опровергну предположения А1 или А2
P2. Характер свойств по своей природе не дискретный и, поэтому, ситуации S2, S3 - не редкость в данной модели.
Очень хочется избавиться от дискретности характера переменных и перейти к вероятностным(?) характеристикам.
|