Andrew Ng机器学习课程笔记--week9(下)

来源:互联网 发布:凯聪网络摄像头app 编辑:程序博客网 时间:2024/05/22 07:48

本周内容较多,故分为上下两篇文章。
本文为下篇。

一、内容概要

1. Anomaly Detection

  • Density Estimation
    • Problem Motivation
    • Gaussian Distribution
    • Algorithm
  • Building an Anomaly Detection System(创建异常检测系统)
    • Developing and Evaluating an Anomaly Detection System
    • Anomaly Detection vs. Supervised Learning
    • Choosing What Features to Use
  • Multivariate Gaussion Distribution(多元高斯分布)
    • Multivariate Gaussion Distribution
    • Anomaly Detection using the Multivariate Gaussion Distribution

2. Recommender System

  • Predicting Movie
    • Problem Formulation
    • Content Based Recommendations
  • Collaborative Filtering(协同过滤)
    • Collaborative Filtering
    • Collaborative Filtering Algorithm
  • Low Rank Matrix Factorization(低秩矩阵分解)
    • Vectorization(向量化): Low Rank Matrix Factorization
    • Implementational Detail:Mean Normalization
    • -

二、重点&难点

Recommender System(推荐系统)

1.Predicting Movie

1)Problem Formulation

下面将以推荐电影为例来介绍推荐系统的实现。

movie Alice Bob Carol Dave Love at last 5 5 0 0 Romance forever 5 ? ? 0 Cute Puppies of love ? 4 0 ? nonstop car chases 0 0 5 4 swords & karate 0 0 5 ?

上面的分数表示用户对该电影的评分(0~5分,?表示未获得评分数据)
为方便下面叙述,对如下符号进行说明:

  • nu:表示用户数量
  • nm:表示电影数量
  • r(i,j):如果等于1则表示用户j对电影i进行了评分
  • y(i,j):表示用户j对电影i的评分

上面例子中可以知道 nu=4nm=5y(1,1)=5

2)Content Based Recommendations(基于内容的推荐)

1.获取特征向量
为了实现推荐,我们为每部电影提取出了两个特征值,即x1(浪漫指数)和x2(动作指数)

movie Alice Bob Carol Dave x1 x2 Love at last 5 5 0 0 0.9 0.1 Romance forever 5 ? ? 0 1.0 0 Cute Puppies of love ? 4 0 ? 0.99 0.01 nonstop car chases 0 0 5 4 0.1 0.9 swords & karate 0 0 5 ? 0 1.0

由上表可知每部电影都可以用一组特征向量表示:

  • 每一步电影都加上一个额外的特征,即 x0=1
  • 每部电影都有一个(3,1)的特征向量,例如第一部电影(Love at last):x(1)=[1,0.9,0.1]T
  • 对于所有数据我们有数据特征向量组为{x(1),x(2),x(3),x(4),x(5)}

2.特征权重θ
用户j对电影i的评分预测可以表示为(θj)Txi=stars

3. 线性回归预测

和线性回归一样,可以得到如下优化目标函数:

  • 对单个用户而言

minθ(j)12i;r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2k=1n(θ(j)k)2

  • 对所有用户而言

minθ(1),...,θ(nu)12j=1nui:r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2j=1nuk=1n(θ(j)k)2

应用梯度下降:

k=0θ(j)k:=θ(j)kαi:r(i,j)=1((θ(j))Tx(i)y(i,j))x(i)k

k0θ(j)k:=θ(j)kαi:r(i,j)=1((θ(j))Tx(i)y(i,j))x(i)k+λθ(j)k

2.Collaborative Filtering(协同过滤)

1)Collaborative Filtering

在之前的基于内容的推荐系统中,对于每一部电影,我们都掌握了可用的特征,使用这些特征训练出了每一个用户的参数。相反地,如果我们拥有用户的参数,我们可以学习得出电影的特征。即由θ求出x。

minθ(1),...,θ(nm)12j=1nui:r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2j=1nmk=1n(θ(j)k)2

注意累计符号的上限由nu变成了nm

但是如果我们既没有用户的参数也没有电影的特征该怎么办?这时协同过滤就可以起作用了,只需要对优化目标函数进行改进,如下:

J(x(1),...,x(nm),θ(1),...,θ(nu))=12(i,j):r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2j=1nuk=1n(θ(j)k)2+λ2i=1nmk=1n(x(i)k)2

对代价函数求偏导结果如下:

x(i)k:=x(i)kα(j:r(i,j)=1((θ(j))Tx(i)y(i,j))θ(j)k+λx(i)k)

θ(j)k:=θ(j)kα(i:r(i,j)=1((θ(j))Tx(i)y(i,j))x(i)k+λθ(j)k)

协同过滤算法使用步骤如下:
1. 初始 x (1) ,x (2) ,…,x (nm) ,θ (1) ,θ (2) ,…,θ (nu) 为一些随机小值
2. 使用梯度下降算法最小化代价函数
3. 在训练完算法后,我们预测(θ(j))Tx(i) 为用户 j 给电影 i 的评分

3. Low Rank Matrix Factorization(低秩矩阵分解)

1)Vectorization(向量化): Low Rank Matrix Factorizationv

movie Alice Bob Carol Dave Love at last 5 5 0 0 Romance forever 5 ? ? 0 Cute Puppies of love ? 4 0 ? nonstop car chases 0 0 5 4 swords & karate 0 0 5 ?

(同样的例子)很显然我们可以得到评分矩阵Y

Y=55?005?4000?05500?40

推出评分

(θ(1))T(x(1))(θ(1))T(x(2))(θ(1))T(x(nm))(θ(2))T(x(1))(θ(2))T(x(2))(θ(2))T(x(nm))(θ(nu))T(x(1))(θ(nu))T(x(2))(θ(nu))T(x(nm))

如何寻找与电影i相关的电影j呢?满足||x(i)x(j)||较小的前几部影片即可。

2)Implementational Detail:Mean Normalization

假如增加了一个用户marsggbo,他很单纯,这5部电影都还没看过,所以没有评分数据,这是可以通过均值正则化来初始化数据,具体实现如下:

movie Alice Bob Carol Dave Marsggbo Love at last 5 5 0 0 ? Romance forever 5 ? ? 0 ? Cute Puppies of love ? 4 0 ? ? nonstop car chases 0 0 5 4 ? swords & karate 0 0 5 ? ?

此时的评分矩阵为

Y=55?005?4000?05500?40?????

首先求出每行的均值(未评分不用计算)

μ=.52.522.251.25Y=2.52.5?2.251.252.5?22.251.252.5?22.753.752.52.5?1.751.25?????

预测值为(θ(j))T(x(i))+μi,因为优没有评分。所以化目的函数只需要minλ2nuj=1nk=1(θ(j)k)2,很显然θ=0⃗ ,所以新增用户评分数据可初始化为均值,即

Y=55?005?4000?05500?402.52.522.251.25





MARSGGBO原创

2017-8-14

原创粉丝点击