美文网首页
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

相关文章

  • Python数据分析——数据预处理的方法

    前言 1. 关于数据集 数据来源:日月光华老师的《Python数据分析从入门到机器学习》的 lianjia 数据。...

  • 链家数据分析二-数据分组处理

    关于  学习日月光华老师的《Python数据分析从入门到机器学习》,通过写该文来巩固数据分析中使用的知识点。主要是...

  • 链家数据--房子单价离散区间直方图展示

    关于学习日月光华老师的《Python数据分析从入门到机器学习》,通过写该文来巩固数据分析中使用的知识点。主要是针对...

  • 天气分析

    运用机器学习基于大数据分析

  • python3之sklearn示例学习

    scikit-learn(含API) 是基于 Python 语言的机器学习工具1.简单高效的数据挖掘和数据分析工具...

  • numpy+mkl 安装文件whl

    scikit-learn 是基于 Python 语言的机器学习工具简单高效的数据挖掘和数据分析工具可供大家在各种环...

  • 2021新书:《Python机器学习算法与实战》

    本书基于Python语言,结合实际的数据集,介绍如何使用机器学习与深度学习算法,对数据进行实战分析。本书在内容上循...

  • 无标题文章

    Python Python机器学习的库:scikit-learn2.1: 特性:简单高效的数据挖掘和机器学习分析对...

  • 无标题文章

    Python Python机器学习的库:scikit-learn2.1: 特性:简单高效的数据挖掘和机器学习分析对...

  • 6决策树应用

    1. Python 2. Python机器学习的库:scikit-learn 简单高效的数据挖掘和机器学习分析对...

网友评论

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

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