机器学习编程作业ex8(matlab/octave实现)-吴恩达coursera 异常检测与推荐系统/协同过滤

本文回顾了吴恩达Coursera课程中第9周的内容,重点介绍了异常检测和推荐系统的实现。在异常检测部分,通过高斯分布进行密度估计,识别异常点,并介绍了多元高斯分布在相关性特征中的应用。推荐系统部分,讲解了基于内容的推荐和协同过滤方法,以及在电影评分数据上的应用。作业部分提供了异常检测和推荐系统的Matlab/Octave实现细节。
摘要由CSDN通过智能技术生成

程序打包网盘地址提取码1111

一、(Week 9)内容回顾

非监督学习问题的两种应用:异常检测与推荐系统

1.1 Anomaly Detection 异常检测

1.Density Estimation密度估计-用发生的概率来判定是否为异常数据
1)P(x)<ε,则为异常。可用于欺诈数据检测、制造数据检测-飞机引擎、计算机数据检测-运行不正常/停机
在这里插入图片描述
False positive代表:算法判定positives=1,判定错误false,实际为0。因此需要减少ε,提高判定为positives的要求,从而减少异常点(=1)。
2)高斯分布/正态分布Gaussian :来自概率论中的概率分布函数,方差σ越小,越尖。
3)用高斯分布开发异常检测算法:p(x)的各个pxj为独立的元素,概率等于xi的乘积。如下图所示:
在这里插入图片描述
算法的三个过程:选特征、计算每个特征高斯分布的参数、计算概率。
2.建立异常检测算法系统:
1)评价异常算法:

  • 对10000个好/20个坏数据的分类,好的按6:2:2,坏的按0、10、10,分成训练集、交叉验证集、测试集。
  • 偏斜类问题用F score来评价-选用不同的ε,从中选用最低F的ε。

2)异常检测与监督学习的区别:

  • 异常检测的y=1数据即异常数据占少量(如0~20个);y=0则大量,监督学习则两个都很多。
  • 实际问题选取模型的技巧:当异常样本少,异常的特征不能全部判定,需要用异常检测,即以概率ε来判定;监督学习用于正常、异常两个都有大量的样本数据,此时采用分类模型。
    垃圾邮件,异常样本很多,所以可用监督学习模型。

3)选择合适的特征建议:

  • 首先用直方图绘制特征x与样本分布图,如果不符合高斯分布,用一些处理如取对数log、log(x+c)、根号x,使得x的特征分布变成高斯分布。
  • 异常检测的误差分析:找到判断失误的正常样本,如下图中的划圈点,虽然出现概率大(靠近均值),仍属于异常样本,需要添加新的特征x2。
    在这里插入图片描述
  • 特征要选择适当-既不很大也不很小的特征;同时可以进行不同特征的组合,如x4/x5。

3.多元高斯分布
1)单元高斯分布表明特征之间相互独立,当存在相关性特征时,如下左图绿色点,应该为异常点,但若按单元高斯分布来做,会得出正常点的情况,此时,如下右图所示,x2的高斯分布对称性使得该点变到x2=0.3。因此,有相关性特征时要建立多元高斯分布。
在这里插入图片描述两个变量的正相关、负相关:上图为正,因此协方差矩阵∑的副对角线为正值 。

2)多元高斯应用在异常检测-
核心依然为三个步骤(统计特征;求两个参数,均值μ和协方差矩阵∑;计算p并判定与e的关系)
多元高斯的协方差矩阵∑非对角线元素为0时,等同于是个单元高斯分布,即此时各个特征相互独立。

原始模型与多元高斯模型的比较:

  • x1与x2有相关性,如CPU/内存,需用x1/x2单个特征手动代替x1、x2的两个特征,多元可以自动计算相关性;
  • 原始模型计算量小,多元高斯计算量大,不适合n很大时;
  • 原始模型的数据集数可以比较少,多元模型则一定要数据集数m大于特征数n,满足矩阵为奇异/可逆的条件,一般在m>10n时使用。

多元出现非奇异/矩阵不可逆情况时,从数据集数、特征重复-冗余特征/特征线性相关两个方面进行考虑。
在这里插入图片描述
第三个选项,识别是否为名人的头像,由于是与不是的样本都很多,因此可用监督学习的模型进行分类。
在这里插入图片描述
x1与x2相近时为正常数据,有一部分x1大、x2小的数据为异常数据,因此x1/x2可以确定异常数据为比值大、正常数据比值小。

1.2 Recommendation System 推荐系统

1.预测电影排序:

  • 学习推荐系统的目的,是无监督学习的重要应用、可以自动学习特征
  • 符号含义:nu用户user数量,nm电影movie数量,r(i,j)=1用户j给电影i评过分,yr(r,j)只有在=1才有值(有意义)。

2.构建推荐系统的第一种方法-基于内容的推荐:线性回归

  • 与之前的回归模型类似,求取参数向量θ代表对应x的权重,去预测评分
  • 优化算法:最小化误差,采用梯度下降,得到θ1到θnu的一系列收敛值
    在这里插入图片描述

3.第二种方法-不基于内容,协同过滤collaborative filtering。可以自行学习特征
初始化θ参数,去求x的值。再去算θ值,再去算x值。循环下去求得最佳的θ、x值
在这里插入图片描述在这里插入图片描述
4.协同过滤算法改进:两个误差合并。
此时没有x0,原因为x为Rn,θ为Rn,X1可以收敛到=1,类似于x0=1。
在这里插入图片描述
这里的初始化x与θ,需要进行Symmetry breaking打破对称性-与之前神经网络参数的初始化类似,避免某些参数完全一样,浪费了计算时间。
5.协同过滤的向量化实现及应用 -low rank matrix factorization低秩矩阵分解
找到与i相关的j,确保两个xi与xj相近,向量化计算范数,可以确定特征相近的元素,用于推荐系统。
6.实施细节-均值归一化

  • 进行均值归一化的目的:没看过电影的新用户,即没有x已知项,最终θ将全为0-最小化误差函数,θ必然=0
  • 操作:每一行的和为0/均值为0。最终求得新用户的评分为μi,得到新用户的评分为平均值分值。
  • 解决没用户比没评分/列要重要
    在这里插入图片描述
  • 不需进行特征缩放的原因,在于分值已经为同样的范围,而不是C选项的特征缩放原理-缩放后不影响参数求解
    在这里插入图片描述
  • 协同过滤算法特点是一部分数据,包括用户评分y、电影类型权重x,可以自动求得所有电影类型权重X和所有用户爱好向量θ。因此D选项为侧重于单人的数据,更推荐用分类算法,输出y=0、y=1对应喜欢/不喜欢。B选项很容易得到用线性回归模型,预测销售量。A、C都是基于已有的数据,去求得其中article文章的特征,找到特征向量差距小的相似文章。

需要编辑以下的红色文件。(后续部分ÿ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值