Д.Е. Королева, М.В. Филиппов
6
Значения получаемых базовых предикатов зависят от «доброты»
пользователя: например, первый пользователь, выставляющий мак-
симальные оценки, имеет максимальное значение предиката.
Приведем для сравнения предсказанное значение рейтингов кате-
горий для первого пользователя:
[1.2605181590507217, 0.39919251441107484, –0.46637175802611397,
0.3358525032572892, –0.4658708361423298, 0.35638293991233283,
–0.5730704485042799, –0.5692220175436897, 0.26389365744636506,
–0.5832468489643301].
Следует обратить внимание на отрицательные значения некоторых
рейтингов. Они связаны с погрешностью данного алгоритма, обуслов-
ленной относительно небольшим количеством исходной информации.
Фактически эти значения соответствуют нулевым рейтингам.
Алгоритм RNSA(The Refined Neighbor Selection Algorithm).
С помощью алгоритма кластеризации
K
-средних создается
K
класте-
ров, каждый из которых состоит из клиентов, имеющих аналогичные
предпочтения между собой. Вначале выбирается один произвольный
клиент, а в качестве начальной точки центра кластера — k. Тогда
каждому клиенту присваивается кластер таким образом, что расстоя-
ние между клиентом и центром кластера является максимальным.
Коэффициент корреляции Пирсона можно использовать в качестве
расстояния:
(
) (
)
(
)
(
)
,
,
,
2
2
,
,
i I a i
a u i
u
u a
i I a i
a
i I u i
u
r r r r
w
r r
r r
∈
∈
∈
∑ −
−
=
∑ − ∑ −
,
(3)
где
w
u
,
a
— мера близости пользователей
a
и
u
;
I
— множество объек-
тов, оцененные как пользователем
a
, так и пользователем
u
;
r
u
,
i
,
r
a
,
i
—
оценка объекта
i
пользователями
u
и
a
соответственно;
r
a
,
r
u
— сред-
няя оценка пользователей
a
и
u
соответственно
После завершения кластеризации выбирается кластер c наивыс-
шим значением коэффициента корреляции Пирсона от его центра к
тестовому клиенту. Прогноз просчитывается для всех клиентов в вы-
бранном кластере.
Ниже представлена последовательность этапов алгоритма RNSA
[5]:
Вход: тест-клиент
t
, входной набор данных
S.
Выход: Соседи.
1. Создать
K
кластеров из
S
методом кластеризации
K
-средних.
2. Найти лучший кластер
C
для
t
.
3. Добавить
t
в лучший кластер
C
и рассматривать его как
v
.
4. Добавить
v
в список соседей.