5.4 평점 평균과 유사도 Z점수 가중 평균 기반 평점 예측
평점 평균과 Z점수 가중 평균을 사용한 예측 평점 계산은 평점의 평균에 Z점수로 정규화된 평점으로 유사도와 Z점수 가중 평균을 계산하여 더하는 방법입니다. 여기에서는 사용자가 평가하지 않은 아이템에 대한 예측 평점을 사용자 또는 아이템을 기준으로 계산하여 추천하는 두 가지 방법을 살펴봅니다.
5.4.1 수식 살펴보기
여기에서는 근접 이웃 협업 필터링 추천에서 평점 평균과 유사도 Z점수 가중 평균을 사용한 예측 평점에 대한 수식을 살펴봅니다.
5.4.1.1 사용자 기반 추천
사용자 기반 근접 이웃 협업 필터링 추천은 사용자와 가장 유사한 사용자의 $k$-근접 이웃을 선정하고, 사용자가 평가하지 않은 아이템에 대하여 사용자가 평가한 아이템의 평균 평점과 사용자 Z점수로 정규화된 평점으로 사용자 유사도와 가중 평균한 값으로 아이템의 예측 평점을 계산하여 예측 평점이 높은 순으로 추천합니다.
사용자 Z점수로 정규화된 평점은 다음과 같이 정의됩니다.
$${z_{ui}} = \frac{r_{ui} - {\mu _u}}{{\sigma _u}}$$
여기에서 $r_{ui}$은 사용자 $u$가 아이템 $i$에 매긴 평점, ${\mu _u}$와 ${\sigma _u}$는 아이템 집합 ${I_u}$의 평점 평균과 표준 편차입니다.
사용자 $u$가 평가하지 않은 아이템 $i$에 대한 예측 평점은 다음과 같이 정의됩니다.
5.4.1.2 아이템 기반 추천
아이템 기반 근접 이웃 협업 필터링 추천은 사용자가 평가한 아이템과 가장 유사한 아이템의 $k$-근접 이웃을 선정하고, 사용자가 평가하지 않은 아이템에 대하여 아이템에 매겨진 사용자의 평균 평점과 아이템 Z점수로 정규화된 평점으로 아이템 유사도와 가중 평균한 값으로 아이템의 예측 평점을 계산하여 예측 평점이 높은 순으로 추천합니다.
아이템 Z점수로 정규화된 평점은 다음과 같이 정의됩니다.
$${z_{ui}} = \frac{r_{ui} - {\mu _i}}{{\sigma _i}}$$
여기에서 $r_{ui}$은 사용자 $u$가 아이템 $i$에 매긴 평점, ${\mu _i}$와 ${\sigma _i}$는 ${I_u}$의 평점 평균과 표준 편차입니다.
사용자 $u$가 평가하지 않은 아이템 $i$에 대한 예측 평점은 다음과 같이 정의됩니다.
5.4.2 직접 계산해보기
이제부터 예제 데이터셋을 사용하여 앞서 살펴본 수식으로 직접 계산해 볼 것입니다. 다음 표는 평점 데이터를 사용자는 행, 아이템은 열로 나타낸 것입니다.
예제 데이터셋의 평점 데이터
사용자/아이템 | $i_1$ | $i_2$ | $i_3$ | $i_4$ | $i_5$ | $i_6$ | $i_7$ | $i_8$ | $i_9$ | $i_{10}$ |
---|---|---|---|---|---|---|---|---|---|---|
$u_1$ | 0.5 | 5 | 1 | 3 | 3.5 | 5 | 2.5 | |||
$u_2$ | 3 | 2 | 3.5 | 2 | 4 | 4 | 1 | |||
$u_3$ | 3.5 | 1 | 3.5 | 4 | 1 | 3.5 | ||||
$u_4$ | 3 | 5 | 0.5 | 3.5 | 3.5 | 4.5 | ||||
$u_5$ | 3 | 4 | 2.5 | 4 |
예를 들어 사용자 $u_4$가 평가하지 않은 아이템들에 대한 예측 평점을 사용자가 평가한 아이템의 평균 평점과 사용자 Z점수로 정규화된 평점과 유사도를 사용하여 계산해 봅니다.
5.4.2.1 사용자 기반 추천
예를 들어 사용자 $u_4$가 평가하지 않은 아이템 $i_3$에 대한 예측 평점을 사용자가 평가한 아이템의 평균 평점과 사용자 Z점수로 정규화된 평점과 유사도를 사용하여 계산해 봅니다. 여기에서는 근접 이웃은 3명($k = 3$), 최소 이웃 수는 2명으로 가정하고, 유사도 계산 방법으로 결측값을 0으로 대체하지 않은 사용자 코사인 유사도를 사용합니다.
먼저 사용자 Z점수로 정규화된 평점 데이터를 사용하여 사용자 코사인 유사도를 계산해 봅니다. 여기에서는 직접 계산해 보지 않고 이전 장에서 직접 계산해본 결과를 사용합니다. 사용자 코사인 유사도의 계산에 대한 자세한 내용은 "Chapter 4. 유사도 계산"을 참고해 주세요.
다음 표는 사용자 Z점수로 정규화된 평점 데이터를 사용자는 행, 아이템은 열로 나타낸 것입니다.
사용자 Z점수화 평점 데이터
사용자/아이템 | $i_1$ | $i_2$ | $i_3$ | $i_4$ | $i_5$ | $i_6$ | $i_7$ | $i_8$ | $i_9$ | $i_{10}$ |
---|---|---|---|---|---|---|---|---|---|---|
$u_1$ | -1.3751177 | 1.1728945 | -1.0920052 | 0.0404446 | 0.3235571 | 1.1728945 | -0.2426678 | |||
$u_2$ | 0.1864109 | -0.6835067 | 0.6213698 | -0.6835067 | 1.0563286 | 1.0563286 | -1.5534244 | |||
$u_3$ | 0.5477226 | -1.2780193 | 0.5477226 | 0.9128709 | -1.2780193 | 0.5477226 | ||||
$u_4$ | -0.2122382 | 1.0611909 | -1.8040245 | 0.1061191 | 0.1061191 | 0.7428336 | ||||
$u_5$ | -0.5 | 0.8333333 | -1.1666667 | 0.8333333 |
다음 표는 사용자 Z점수로 정규화된 평점 데이터로 계산된 사용자 코사인 유사도 데이터를 사용자(LHS)는 행, 사용자(RHS)는 열로 나타낸 것입니다.
사용자 코사인 유사도 데이터
사용자(RHS) 사용자(LHS) | $u_1$ | $u_2$ | $u_3$ | $u_4$ | $u_5$ |
---|---|---|---|---|---|
$u_1$ | -0.2252454 | 0.6730268 | 0.8499498 | -0.4497706 | |
$u_2$ | -0.2252454 | -0.2116711 | 0.2260608 | 0.9684968 | |
$u_3$ | 0.6730268 | -0.2116711 | -0.038323 | 0.0530566 | |
$u_4$ | 0.8499498 | 0.2260608 | -0.038323 | -0.4834227 | |
$u_5$ | -0.4497706 | 0.9684968 | 0.0530566 | -0.4834227 |
여기에서 사용자 $u_4$의 이웃 사용자는 자기 자신을 제외한 {$u_1$, $u_2$, $u_3$, $u_5$}입니다.
다음 표는 사용자 $u_4$와 이웃 사용자 간의 유사도 데이터를 사용자(LHS)는 행, 사용자(RHS)는 열로 나타낸 것입니다.
사용자 $u_4$와 이웃 사용자 간의 유사도 데이터
사용자(RHS) 사용자(LHS) | $u_1$ | $u_2$ | $u_3$ | $u_5$ |
---|---|---|---|---|
$u_4$ | 0.8499498 | 0.2260608 | -0.038323 | -0.4834227 |
사용자 $u_4$가 평가하지 않은 아이템 {$i_3$, $i_5$, $i_7$, $i_{10}$}에 대한 이웃 사용자의 평점을 살펴봅니다.
다음 표는 이웃 사용자가 사용자 $u_4$가 평가하지 않은 아이템 {$i_3$, $i_5$, $i_7$, $i_{10}$}에 매긴 평점을 사용자는 행, 아이템은 열로 나타낸 것입니다.
사용자 $u_4$가 평가하지 않은 아이템 $i_3$에 대한 이웃 사용자의 평점 데이터
사용자/아이템(RHS) | $i_3$ | $i_5$ | $i_7$ | $i_{10}$ |
---|---|---|---|---|
$u_1$ | 1 | 3.5 | 2.5 | |
$u_2$ | 3.5 | 4 | 4 | 1 |
$u_3$ | 1 | 4 | ||
$u_5$ | 4 | 4 |
여기에서는 사용자 Z점수로 정규화된 평점 데이터를 사용한 유사도 계산 결과와는 달리 사용자 Z점수로 정규화된 평점을 직접 계산해 보기 위하여 사용자의 평균 평점을 살펴봅니다.
다음 표는 평점 데이터의 사용자 평점 평균과 표준 편차를 나타낸 것입니다.
평점 데이터의 사용자 평점 평균과 표준 편차
사용자 | $u_1$ | $u_2$ | $u_3$ | $u_4$ | $u_5$ |
---|---|---|---|---|---|
평점 평균 | 2.928571429 | 2.785714286 | 2.75 | 3.333333333 | 3.375 |
표준편차 | 1.766082563 | 1.149534067 | 1.369306394 | 1.570562532 | 0.75 |
앞서 살펴본 바와 같이, 사용자 $u_4$의 이웃 사용자 {$u_1$, $u_2$, $u_3$, $u_5$}의 유사도는 {0.8499498, 0.2260608, -0.038323, -0.4834227}, 또한, 사용자 $u_4$의 평점 평균과 표준편차는 3.3333333과 1.570562532, 사용자 $u_4$가 평가하지 않은 아이템 {$i_3$, $i_5$, $i_7$, $i_{10}$} 중 아이템 $i_3$의 평점은 {1, 3.5, 1, 4}, 이웃 사용자 {$u_1$, $u_2$, $u_3$, $u_5$}의 평점 평균과 표준 편차는 {2.9285714, 2.7857142, 2.75, 3.375}와 {1.7660825, 1.149534, 1.3693063, 0.75}입니다.
다음 표는 사용자 $u_4$가 평가하지 않은 아이템 $i_3$에 대한 이웃 사용자의 유사도와 평점을 유사도가 높은 순으로 나타낸 것입니다.
사용자 $u_4$의 아이템 $i_3$에 대한 이웃 사용자 데이터
사용자(LHS) | 평점 평균 | 표준편차 | 아이템 | 사용자(RHS) | 유사도 | 평점 | 평점 평균 | 표준편차 | 평균중심화 평점 | Z점수 | 유사도와 Z점수의 곱 | k-근접 이웃 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
$u_4$ | 3.3333333 | 1.5705625 | $i_3$ | $i_1$ | 0.8499498 | 1 | 2.928571429 | 1.766082563 | -1.928571429 | -1.092005249 | -0.928149643 | {$i_1$, $i_2$} |
$i_2$ | 0.2260608 | 3.5 | 2.785714286 | 1.149534067 | 0.714285714 | 0.621369766 | 0.140467346 | |||||
$i_3$ | -0.038323 | 1 | 2.75 | 1.369306394 | ||||||||
$i_5$ | -0.4834227 | 4 | 3.375 | 0.75 |
사용자 $u_4$가 평가하지 않은 아이템 $i_3$에 대한 $k$-근접 이웃($k = 3$)은 유사도가 0보다 같거나 작은 아이템 $i_3$과 5를 제외한 유사도가 높은 순으로 사용자 ($u_1$, $u_2$)가 됩니다. 사용자 ($u_1$, $u_2$)의 유사도는 {0.8499498, 0.2260608}, 평점과 평점 평균은 {1, 3.5}와 {2.9285714, 2.7857142}, 표준 편차는 {1.7660825, 1.149534}입니다.
사용자 $u_4$가 평가하지 않은 아이템 $i_3$의 예측 평점은 사용자 평점 평균인 $3.3333333$에 사용자 표준편차인 $1.5705625$에 $k$-근접 이웃의 유사도와 Z점수화된 평점을 곱한 값의 합인 $-0.7876822$을 각 사용자 유사도 절대값의 합인 $1.0760106$으로 나눈 값을 곱하여 더한 $2.1836$가 됩니다.
다음 표는 직접 계산한 결괏값을 나타낸 것입니다.
계산 결과
사용자 | 아이템 | 사용자 평점 평균 | 사용자 표준편차 | 합계(유사도와 Z점수의 곱) | 합계(유사도 절대값) | 예측 평점 |
---|---|---|---|---|---|---|
$u_4$ | $i_3$ | 3.3333333 | 1.5705625 | -0.7876822 | 1.0760106 | 2.1836 |
같은 방법으로 사용자 $u_4$가 평가하지 않은 아이템에 대한 예측 평점을 모두 계산해 봅니다. 다음 표는 사용자 $u_4$가 평가하지 않은 아이템 {$i_5$, $i_7$, $i_{10}$}에 대한 이웃 사용자 데이터를 사용자(LHS)는 행, 사용자 (RHS)는 열로 나타낸 것입니다.
사용자 $u_4$의 평가하지 않은 나머지 아이템에 대한 이웃 사용자 데이터
사용자 (LHS) |
평점 평균 | 표준편차 | 아이템 |
사용자 (RHS) |
유사도 | 평점 | 평점 평균 | 표준편차 | 평균중심화 평점 | Z점수 | 유사도와 Z점수의 곱 | k-근접 이웃 | 예측 평점 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$u_4$ | 3.3333333 | 1.5705625 | $i_5$ | $i_1$ | 0.8499498 | 2.9285714 | 1.7660826 | {$i_2$} | NaN | ||||
$i_2$ | 0.2260608 | 4 | 2.7857143 | 1.1495341 | 1.2142857 | 1.0563286 | 0.2387945 | ||||||
$i_3$ | -0.038323 | 4 | 2.75 | 1.3693064 | |||||||||
$i_5$ | -0.4834227 | 3.375 | 0.75 | ||||||||||
$i_7$ | $i_1$ | 0.8499498 | 3.5 | 2.9285714 | 1.7660826 | 0.5714286 | 0.3235571 | 0.2750073 | {$i_1$, $i_2$} | 4.0832868 | |||
$i_2$ | 0.2260608 | 4 | 2.7857143 | 1.1495341 | 1.2142857 | 1.0563286 | 0.2387945 | ||||||
$i_3$ | -0.038323 | 2.75 | 1.3693064 | ||||||||||
$i_5$ | -0.4834227 | 4 | 3.375 | 0.75 | |||||||||
$i_{10}$ | $i_1$ | 0.8499498 | 2.5 | 2.9285714 | 1.7660826 | -0.4285714 | -0.2426678 | -0.2062555 | {$i_1$, $i_2$} | 2.5197085 | |||
$i_2$ | 0.2260608 | 1 | 2.7857143 | 1.1495341 | -1.7857143 | -1.5534244 | -0.3511684 | ||||||
$i_3$ | -0.038323 | 2.75 | 1.3693064 | ||||||||||
$i_5$ | -0.4834227 | 2.5 | 3.375 | 0.75 |
사용자 $u_4$가 평가하지 않은 아이템 {$i_3$, $i_5$, $i_7$, $i_{10}$}에 대한 예측 평점은 {2.1836194, NaN, 4.0832867, 2.5197084}입니다. 예를 들어, 사용자 $u_4$에게 예측 평점이 높은 상위 $N$개($N = 3$)의 아이템을 예측 평점이 NaN인 아이템 $i_5$을 제외한 추천하면, 추천된 아이템은 {$i_7$, ${i_{10}}$, $i_3$} 순이 됩니다.
다음 표는 사용자 $u_4$가 평가하지 않은 아이템을 예측 평점이 높은 순으로 나타낸 것입니다.
사용자 $u_4$가 평가하지 않은 아이템의 예측평점
아이템 | 평점 평균 | 표준편차 | 합계(유사도와 Z점수의 곱) | 합계(유사도 절대값) | k-근접 이웃 | 예측 평점 |
---|---|---|---|---|---|---|
$i_7$ | 3.3333333 | 1.5705625 | 0.5138017 | 1.0760106 | {$i_1$, $i_2$} | 4.0832867 |
$i_{10}$ | 3.3333333 | 1.5705625 | -0.5574238 | 1.0760106 | {$i_1$, $i_2$} | 2.5197084 |
$i_3$ | 3.3333333 | 1.5705625 | -0.7876822 | 1.0760106 | {$i_1$, $i_2$} | 2.1836194 |
$i_5$ | 3.3333333 | 1.5705625 | 0.2387944 | 0.2260608 | {$i_2$} | NaN |
5.4.2.2 아이템 기반 추천
예를 들어 사용자 $u_4$가 평가하지 않은 아이템 $i_3$에 대한 예측 평점을 아이템을 평가한 사용자의 평균 평점과 아이템 Z점수로 정규화된 평점과 유사도를 사용하여 계산해 봅니다. 여기에서는 근접 이웃은 3개($k = 3$), 최소 이웃 수는 2개으로 가정하고, 유사도 계산 방법으로 결측값을 0으로 대체하지 않은 아이템 코사인 유사도를 사용합니다.
먼저 아이템 Z점수로 정규화된 평점 데이터를 사용하여 아이템 코사인 유사도를 계산해 봅니다. 여기에서는 직접 계산해 보지 않고 이전 장에서 직접 계산해본 결과를 사용합니다. 아이템 코사인 유사도의 계산에 대한 자세한 내용은 "Chapter 4. 유사도 계산"을 참고해 주세요.
다음 표는 아이템 Z점수로 정규화된 평점 데이터를 사용자는 행, 아이템은 열로 나타낸 것입니다.
아이템 Z점수화 평점 데이터
사용자/아이템 | $i_1$ | $i_2$ | $i_3$ | $i_4$ | $i_5$ | $i_6$ | $i_7$ | $i_8$ | $i_9$ | $i_{10}$ |
---|---|---|---|---|---|---|---|---|---|---|
$u_1$ | -1.1547005 | 0.9970545 | -0.8589557 | 0.46291 | -1.1547005 | 0.8728716 | 0.7071068 | |||
$u_2$ | 0.5773503 | -1.3038405 | 0.7027819 | 0 | NaN | 0.5773503 | -0.7071068 | |||
$u_3$ | -0.153393 | -0.8589557 | 1 | NaN | -1.3887301 | -1.0910895 | ||||
$u_4$ | 0.5773503 | 0.9970545 | -1 | 0.9258201 | NaN | 0.2182179 | ||||
$u_5$ | -0.5368755 | 1.0151295 | 0 | 0.5773503 |
다음 표는 아이템 Z점수로 정규화된 평점 데이터로 계산된 아이템 코사인 유사도 데이터를 아이템(LHS)는 행, 아이템(RHS)는 열로 나타낸 것입니다.
아이템 코사인 유사도 데이터
아이템(RHS) 아이템(LHS) | $i_1$ | $i_2$ | $i_3$ | $i_4$ | $i_5$ | $i_6$ | $i_7$ | $i_8$ | $i_9$ | $i_{10}$ |
---|---|---|---|---|---|---|---|---|---|---|
$i_1$ | -0.489116 | 0.975441 | -0.7071068 | NaN | 0 | 1 | NaN | -0.7592566 | -0.9486833 | |
$i_2$ | -0.489116 | -0.7279472 | -0.4934638 | NaN | 0.6082192 | -0.9065472 | NaN | 0.6257827 | 0.9912279 | |
$i_3$ | 0.975441 | -0.7279472 | -0.7739573 | NaN | 0.343164 | 0.9325886 | NaN | 0.1104315 | -0.9950372 | |
$i_4$ | -0.7071068 | -0.4934638 | -0.7739573 | NaN | -0.9805807 | 0 | NaN | -0.8320503 | 0 | |
$i_5$ | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
$i_6$ | 0 | 0.6082192 | 0.343164 | -0.9805807 | NaN | -0.8944272 | NaN | 0.8660254 | 0 | |
$i_7$ | 1 | -0.9065472 | 0.9325886 | 0 | NaN | -0.8944272 | NaN | 0 | -0.9486833 | |
$i_8$ | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | |
$i_9$ | -0.7592566 | 0.6257827 | 0.1104315 | -0.8320503 | NaN | 0.8660254 | 0 | NaN | 0 | |
$i_{10}$ | -0.9486833 | 0.9912279 | -0.9950372 | 0 | NaN | 0 | -0.9486833 | NaN | 0 |
여기에서 사용자 $u_4$가 평가하지 않은 아이템 {$i_3$, $i_5$, $i_7$, $i_{10}$}의 이웃 아이템은 사용자 $u_4$가 평가한 아이템 {$i_1$, $i_2$, $i_4$, 6, $i_8$, $i_9$}입니다.
다음 표는 사용자 $u_4$가 평가하지 않은 아이템(LHS)는 행, 사용자 $u_4$가 평가한 이웃 아이템(RHS)는 열로 나타낸 것입니다.
사용자 $u_4$가 평가하지 않은 이웃 아이템과 사용자가 평가한 아이템 간의 유사도 데이터
아이템(RHS) 아이템(LHS) | $i_1$ | $i_2$ | $i_4$ | $i_6$ | $i_8$ | $i_9$ |
---|---|---|---|---|---|---|
$i_3$ | 0.975441 | -0.7279472 | -0.7739573 | 0.343164 | NaN | 0.1104315 |
$i_5$ | 0 | NaN | NaN | 0 | NaN | 0 |
$i_7$ | 1 | -0.9065472 | 0 | -0.8944272 | NaN | 0 |
$i_{10}$ | -0.9486833 | 0.9912279 | 0 | 0 | NaN | 0 |
다음으로 사용자 $u_4$가 평가한 아이템 {$i_1$, $i_2$, $i_4$, $i_6$, $i_8$, $i_9$}에 대한 사용자의 평점을 살펴봅니다.
다음 표는 사용자 $u_4$가 평가한 아이템 {$i_1$, $i_2$, $i_4$, $i_6$, $i_8$, $i_9$}을 사용자는 행, 아이템은 열로 나타낸 것입니다.
사용자 $u_4$가 평가한 아이템의 평점 데이터
아이템(RHS) 사용자 | $i_1$ | $i_2$ | $i_4$ | $i_6$ | $i_8$ | $i_9$ |
---|---|---|---|---|---|---|
$u_4$ | 3 | 5 | 0.5 | 3.5 | 3.5 | 4.5 |
여기에서는 아이템 Z점수로 정규화된 평점 데이터를 사용한 유사도 계산 결과와는 달리 아이템 Z점수로 정규화된 평점을 직접 계산해 보기 위하여 아이템의 평균 평점을 살펴봅니다.
다음 표는 평점 데이터의 아이템 평점 평균을 나타낸 것입니다.
평점 데이터의 아이템 평점 평균과 표준편차
아이템 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
평점 평균 | 2.1666666 | 3.7 | 2.375 | 2 | 4 | 2.5 | 3.8333333 | 3.5 | 4.3333333 | 1.75 |
표준편차 | 1.4433753 | 1.3038404 | 1.6007810 | 1.5 | 0 | 1.0801234 | 0.2886751 | NaN | 0.7637626 | 1.0606601 |
앞서 살펴본 바와 같이, 사용자가 평가하지 않은 아이템 $i_3$과 사용자 $u_4$가 평가한 이웃 아이템 {$i_1$, $i_2$, $i_4$, $i_6$, $i_8$, $i_9$}의 유사도는 {0.975441, -0.7279472, -0.7739573, 0.343164, NaN, 0.1104315}, 사용자 $u_4$가 평가한 이웃 아이템 {$i_1$, $i_2$, $i_4$, $i_6$, $i_8$, $i_9$}의 평점은 {3.5, 5, 0.5, 3.5, 4.5}, 평점 평균과 표준 편차는 {2.1666666, 3.7, 2, 2.5, 8.5, 4.3333333}와 {1.4433756, 1.3038404, 1.5, 1.0801234, NaN, 0.7637626}입니다.
다음 표는 사용자 $u_4$가 평가하지 않은 아이템 $i_3$에 대한 이웃 아이템의 유사도와 평점을 유사도가 높은 순으로 나타낸 것입니다.
아이템 $i_3$에 대한 이웃 아이템 데이터
아이템 $i_3$에 대한 이웃 아이템 데이터
사용자 | 아이템(LHS) | 평점 평균 | 표준편차 | 아이템(RHS) | 유사도 | 평점 | 평점 평균 | 표준편차 | 평균중심화 평점 | Z점수 | 유사도와 Z점수의 곱 | k-근접 이웃 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
$u_4$ | $i_3$ | 2.375 | 1.600781059 | $i_1$ | 0.975441 | 3 | 2.166666667 | 1.443375673 | 0.833333333 | 0.577350269 | 0.563171124 | {$i_1$, $i_6$, $i_9$} |
$i_6$ | 0.343164 | 3.5 | 2.5 | 1.08012345 | 1 | 0.9258201 | 0.317708129 | |||||
$i_9$ | 0.1104315 | 4.5 | 4.333333333 | 0.763762616 | 0.166666667 | 0.218217891 | 0.024098129 | |||||
$i_2$ | -0.7279472 | 5 | 3.7 | 1.303840481 | ||||||||
$i_4$ | -0.7739573 | 0.5 | 2 | 1.5 | ||||||||
$i_8$ | NaN | 3.5 | 3.5 | NaN |
사용자 $u_4$가 평가하지 않은 아이템 $i_3$에 대한 $k$-근접 이웃($k = 3$)은 유사도가 NaN인 아이템 $i_8$을 제외한 유사도가 높은 순으로 아이템 {$i_1$, $i_6$, $i_9$}이 됩니다. 아이템 {$i_1$, $i_6$, $i_9$}의 유사도는 {0.975441, 0.343164, 0.1104315}, 평점과 평점 평균은 {3, 3.5, 4.5}와 {2.1666666, 2.5, 4.3333333}, 표준 편차는 {1.4433756, 1.0801234, 0.7637626}입니다.
사용자 $u_4$가 평가하지 않은 아이템 $i_3$의 예측 평점은 아이템 평점 평균인 $2.375$에 아이템 표준편차인 $1.600781$에 $k$-근접 이웃의 유사도와 Z점수화된 평점을 곱한 값의 합인 $0.9049774$을 각 사용자 유사도 절대값의 합인 $1.4290365$으로 나눈 값을 곱하여 더한 $3.3887$가 됩니다.
다음 표는 직접 계산한 결괏값을 나타낸 것입니다.
계산 결과
사용자 | 아이템 | 평점 평균 | 표준편차 | 합계(유사도와 Z점수의 곱) | 합계(유사도 절대값) | 예측 평점 |
---|---|---|---|---|---|---|
$u_4$ | $i_3$ | 2.375 | 1.600781 | 0.9049774 | 1.4290365 | 3.3887 |
같은 방법으로 사용자 $u_4$가 평가하지 않은 아이템에 대한 예측 평점을 모두 계산해 봅니다. 다음 표는 사용자 $u_4$가 평가하지 않은 아이템 {$i_5$, $i_7$, $i_{10}$}에 대한 이웃 아이템 데이터를 아이템(LHS)은 행, 아이템(RHS)은 열로 나타낸 것입니다.
사용자 $u_4$의 평가하지 않은 나머지 아이템에 대한 이웃 아이템 데이터
사용자 u4의 평가하지 않은 나머지 아이템에 대한 이웃 아이템 데이터
사용자 |
아이템 (LHS) |
평점 평균 | 표준편차 |
아이템 (RHS) |
유사도 | 평점 | 평점 평균 | 표준편차 | 평균중심화 평점 | Z점수 | 유사도와 Z점수의 곱 | k-근접 이웃 | 예측 평점 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$u_4$ | $i_5$ | 4 | 0 | $i_1$ | NaN | 3 | 2.1666666 | 1.4433757 | - | NaN | |||
$i_2$ | NaN | 5 | 3.7 | 1.3038405 | |||||||||
$i_4$ | NaN | 0.5 | 2 | 1.5 | |||||||||
$i_6$ | NaN | 3.5 | 2.5 | 1.0801235 | |||||||||
$i_8$ | NaN | 3.5 | 3.5 | NaN | |||||||||
$i_9$ | NaN | 4.5 | 4.3333333 | 0.7637626 | |||||||||
$i_7$ | 3.8333333 | 0.2886751 | $i_1$ | 1 | 3 | 2.1666666 | 1.4433757 | 0.8333333 | 0.5773503 | 0.5773503 | {$i_1$} | NaN | |
$i_4$ | 0 | 0.5 | 2 | 1.5 | |||||||||
$i_9$ | 0 | 4.5 | 4.3333333 | 0.7637626 | |||||||||
$i_6$ | -0.8944272 | 3.5 | 2.5 | 1.0801235 | |||||||||
$i_2$ | -0.9065472 | 5 | 3.7 | 1.3038405 | |||||||||
$i_8$ | NaN | 3.5 | 3.5 | NaN | |||||||||
$i_{10}$ | 1.75 | 1.0606601 | $i_2$ | 0.9912279 | 5 | 3.7 | 1.3038405 | 1.3 | 0.9970545 | 0.9883082 | {$i_2$} | NaN | |
$i_4$ | 0 | 0.5 | 2 | 1.5 | |||||||||
$i_6$ | 0 | 3.5 | 2.5 | 1.0801235 | |||||||||
$i_9$ | 0 | 4.5 | 4.3333333 | 0.7637626 | |||||||||
$i_1$ | -0.9486833 | 3 | 2.1666666 | 1.4433757 | |||||||||
$i_8$ | NaN | 3.5 | 3.5 | NaN |
사용자 $u_4$가 평가하지 않은 아이템 {$i_3$, $i_5$, $i_7$, $i_{10}$}에 대한 예측 평점은 {3.4130897, NaN, NaN, NaN}입니다. 예를 들어, 사용자 $u_4$에게 예측 평점이 NaN인 아이템 {$i_5$, $i_7$, $i_{10}$}을 제외한 예측 평점이 높은 순으로 $N$개($N = 3$)의 아이템을 추천하면, 추천된 아이템은 $i_3$이 됩니다.
다음 표는 사용자 $u_4$가 평가하지 않은 아이템을 예측 평점이 높은 순으로 나타낸 것입니다.
사용자 $u_4$가 평가하지 않은 아이템의 예측평점
아이템 | 평점 평균 | 표준편차 | 합계(유사도와 Z점수의 곱) | 합계(유사도 절대값) | k-근접 이웃 | 예측 평점 |
---|---|---|---|---|---|---|
$i_3$ | 2.375 | 1.600781059 | 0.904977381 | 1.4290365 | {$i_1$, $i_6$, $i_9$} | 3.4130897 |
$i_5$ | 4 | 0 | NaN | NaN | {} | NaN |
$i_7$ | 3.833333333 | 0.288675135 | 0.577350269 | 1 | {$i_1$} | NaN |
$i_{10}$ | 1.75 | 1.060660172 | 0.988308224 | 0.9912279 | {$i_2$} | NaN |
추천 시스템: 워크북
Comments
Do you have a problem, want to share feedback, or discuss further ideas? Feel free to leave a comment here! Please follow Rust's code of conduct. This comment thread directly maps to a discussion on GitHub, so you can also comment there if you prefer.
Instead of authenticating the giscus application, you can also comment directly on GitHub.