美文网首页
33. 日月光华 Python数据分析 - 机器学习 - 基于项

33. 日月光华 Python数据分析 - 机器学习 - 基于项

作者: 薛东弗斯 | 来源:发表于2023-08-01 07:01 被阅读0次

    基于用户的系统过滤:基于用户之间的相似性
    基于项目的协同过滤:优于基于用户的协同推荐, 寻找最相似的项目而不是基于相似用户(根据以前看过的内容推荐相似的内容)
    用户之间,喜好会有差异

    import numpy as np
    import pandas as pd
    from sklearn.metrics.pairwise import cosine_similarity
    
    data = pd.DataFrame({'U1': [2, None, 1, None, 3],
                         'U2': [None, 3, None, 4, None],
                         'U3': [4, None, 5, 4, None],
                         'U4': [None, 3, None, 4, None],
                         'U5': [5, None, 4, None, 5]
    })
    data.index = ['S1', 'S2', 'S3', 'S4', 'S5']
    
    data # 评分矩阵
    
    image.png

    目 标:预测 U3 用户对 S5 的评分
    方法:寻找与S5最相似的项目/商品

    data_center = data.apply(lambda x: x-x.mean(), axis=1)   # 基于项目去中心化
    data_center
    
    image.png
    sim = []     # 存放相似度
    for i in range(len(data_center)):
        simliarity = cosine_similarity(
           # S5位于最后一行,计算每一行与S5的相似度
            np.nan_to_num(data.iloc[-1].values).reshape(1, -1),   
            np.nan_to_num(data.iloc[i].values).reshape(1, -1)
        )
        sim.append(simliarity)
    
    sim
    # [array([[0.79253049]]),
    #  array([[0.]]),
    #  array([[0.60864454]]),
    #  array([[0.]]),
    #  array([[1.]])]
    
    # U3对物品的评分
    rate_u3 = pd.DataFrame({
        'rating': data['U3'],
        'sim': sim
    })
    
    rate_u3 = rate_u3.dropna()
    rate_u3
          rating    sim
    # S1      4.0       [[0.792530488475616]]
    # S3      5.0           [[0.6086445426287076]]
    # S4      4.0           [[0.0]]
    
    rate_u3['sim'] = rate_u3['sim'].map(lambda x:x[0][0])
    
    # 取出最相似的两个物品进行计算,并深度copy
    sim_u3 = rate_u3.sort_values('sim', ascending=False)[:2].copy()
    sim_u3
    #           rating  sim
    # S1    4.0 0.792530
    # S3            5.0 0.608645
    
    # 计算预测的评分
    (sim_u3.rating*sim_u3.sim).sum()/sim_u3.sim.sum()
    # 4.43438152202085
    

    相关文章

      网友评论

          本文标题:33. 日月光华 Python数据分析 - 机器学习 - 基于项

          本文链接:https://www.haomeiwen.com/subject/styypdtx.html