Как мы можем рассчитать скорректированное косинусное сходство для двух элементов, представленных их рейтингами?

Я хочу вычислить скорректированное значение сходства косинуса для двух элементов, представленных a и b соответственно. Берем два вектора a={2,3,1,0} и b={1,0,4,2}. Я знаю, как работает подобие косинуса, но я застрял в подходе с подобием скорректированного косинуса.


comment
С какой именно проблемой программирования вы столкнулись?   -  person Lundin    schedule 18.02.2016


Ответы (1)


Это может сработать для вас:

function sim(i,j) {
    item1 = 0
    item2 = 0

    for (k = 0; k < length(data); k++) {
        item1 += (data[k][i] - avg(data[k]))
        item2 += (data[k][j] - avg(data[k]))
    }

    var numerator = item1*item2
    var denominator =(sqrt(item1*item1)*sqrt(item2*item2)
    var result = (numerator /denominator )
    return result
}
person Kemal Can Kara    schedule 17.03.2016