推荐算法3:回归模型、梯度下降、最小二乘法

一、基于回归模型的协同过滤推荐

1、Baseline:基准预测 介绍

基准就是平均值,用户或物品普遍高于或低于平均值的差值,我们称之为偏置(bias)

(1)Baseline目标

找出用户的偏置值bu物品的偏置值bi。问题转化为寻找最优的bu和bi

(2) Baseline步骤在这里插入图片描述
(3)损失函数
在这里插入图片描述
在这里插入图片描述
利用梯度下降优化损失。

(4)真实值与预测值图像:
在这里插入图片描述
在这里插入图片描述

(5)总结

在这里插入图片描述

2、梯度下降

(1)推导过程

在这里插入图片描述

在这里插入图片描述

(2)随机梯度下降

SGD 优化
随机梯度下降指:从自身位置出发,每隔一段路程就探索一次,随机挑选一个梯度最大的方向进行移动,直到移动到最低点。那么隔多远进行一次探索呢?这就是学习率。好的学习率能有让点快速降到最低。

好的学习率能够让点快速降到最低。
在这里插入图片描述
在这里插入图片描述

本例:
在这里插入图片描述

(3)算法实现

扩展:pandas库
pandas是用于数据挖掘的python库,具有便捷的数据处理能力,独特的数据结构,读取文件方便,封装了matplotlib的画图和numpy的计算。
pandas的数据结构:

  • Series:类似表格中的一个列,类似于一维数组,可以保存任何数据类型。由索引和列组成。
  • DataFrame:表格型的数据结构,每列可以是不同的指类型,既有行索引也有列索引。它可以被看作由Series组成的字典。

代码:
在这里插入图片描述
数组 0:userid
1:movied
2:rating

在这里插入图片描述
在这里插入图片描述

以userid进行分组,将movieid和rating以list形式进行聚合。

扩展:
还可以求平均 mean、max、min(查pandas手册,agg可以传什么。)
在这里插入图片描述

any:不是0就返回true
在这里插入图片描述

获取索引:
在这里插入图片描述

在这里插入图片描述
可以调整学习率α。

  • zip()函数
    (云记python学习笔记)
    可以将多个序列中对应的元素重新组合生成一个新的元组。

  • dict字典
    以键值对形式存储,任意类型,如字符串、数字、元组等。无序。

real-rating:真实值
bu[uid] :从bu中取出第uid个
index=false :拿到的内容没有index列。

在这里插入图片描述
在这里插入图片描述

(4)准确性指标评估

添加test方法,然后使用之前实现accuary方法计算准确性指标。
在这里插入图片描述
在这里插入图片描述
例如:1用户有40条数据,则经过划分后,训练集有32条,测试集有8条。
随机为了每个用户在训练集和测试集上都有数据。
在这里插入图片描述

在这里插入图片描述

3、最小二乘法ASL

求偏导,令偏导=0。

在这里插入图片描述
求一个,将另一个看作未知。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值