zoukankan      html  css  js  c++  java
  • 数据挖据之余弦相识度

    # coding:utf-8
    __author__ = 'hdfs'
    from math import sqrt
    
    users = {
        "Angelica": {"Blues Traveler": 3.5, "Broken Bells": 2.0, "Norah Jones": 4.5, "Phoenix": 5.0,
                     "Slightly Stoopid": 1.5,
                     "The Strokes": 2.5, "Vampire Weekend": 2.0},
        "Hailey": {"Broken Bells": 4.0, "Deadmau5": 1.0, "Norah Jones": 4.0, "The Strokes": 4.0, "Vampire Weekend": 1.0},
        "Jordyn": {"Broken Bells": 4.5, "Deadmau5": 4.0, "Norah Jones": 5.0, "Phoenix": 5.0, "Slightly Stoopid": 4.5,
                   "The Strokes": 4.0, "Vampire Weekend": 4.0},
        "Sam": {"Blues Traveler": 5.0, "Broken Bells": 2.0, "Norah Jones": 3.0, "Phoenix": 5.0, "Slightly Stoopid": 4.0,
                "The Strokes": 5.0},
        "Veronica": {"Blues Traveler": 3.0, "Norah Jones": 5.0, "Phoenix": 4.0, "Slightly Stoopid": 2.5, "The Strokes": 3.0}
    }
    
    
    def coscoefficient(rating1, rating2):
        '''
        余弦相识度
        :param rating1: 
        :param rating2: 
        :return:
        '''
        xleng, yleng = 0, 0
        for ratval01key, ratval01 in rating1.items():
            xleng = xleng + ratval01 * ratval01
    
        for ratval02key, ratval02 in rating2.items():
            yleng = yleng + ratval02 * ratval02
    
        neiji = 0
        for key1 in rating1.keys():
            if key1 in rating2.keys():
                neiji = neiji + rating1[key1] * rating2[key1]
    
        result = neiji / (sqrt(xleng) * sqrt(yleng))
        return result
    
    
    if __name__ == "__main__":
        print(coscoefficient(users['Angelica'], users['Veronica']))
    

      

  • 相关阅读:
    iOS开发UI篇—CAlayer简介
    iOS开发UI篇—ios手势识别(双击、捏、旋转、拖动、划动、长按, 上下左右滑动)
    录屏专家
    加载Gif图片方法
    制作酸奶方法
    UITabBar小红点(适配iPad)
    那些著名或非著名的iOS面试题-后编
    iOS学习资源
    实用的Mac软件
    安装iOS企业包流程
  • 原文地址:https://www.cnblogs.com/similarface/p/5636549.html
Copyright © 2011-2022 走看看