吴恩达机器学习入门笔记14/15-异常检测问题/推荐系统

14 异常检测问题

针对给出的样本构建一个模型,在模型范围内的样本点被认为是正常的,超出阈值的样本点被认为是异常的。

14.1 算法实现

  • 一堆样本的每个特征量都对应一个均值和方差
  1. 计算样本每个特征的均值和标准差
  2. 利用高斯分布构建概率函数:\(p(x)=p(x_1;\mu_1,\sigma^2_1)p(x_2;\mu_2,\sigma^2_2)...p(x_n;\mu_n,\sigma^2_n)\)
  3. 设定一个阈值\(\varepsilon\)作为概率参考值,若新样本的特征计算出的P大于该值,则认为非异常,小于则认为是异常的

14.2 评估算法

  • 选取大量正常样本训练P
  • 少量正常样本和极少异常样本作为交叉验证集,尝试使用不同的\(\varepsilon\)值使\(F_1\)值最大
  • 另一部分的少量正常样本和极少异常样本作为测试集
  • 可以通过变化特征如取对数,降幂把样本的特征分布改变为高斯型,也可以组合特征使异常得以凸显

14.3 异常检测算法与监督学习的不同使用范围

  • 异常检测

    针对少量正样本(y=1),用大量负样本(正常)学习p(x)值

  • 监督学习

    大量正样本(异常样本)可以用来更新参数

    有大量的正样本和负样本也用监督学习

14.4 多元高斯分布

\[ p(X;\mu,\Sigma)=\frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}}exp(-\frac{1}{2}(X-\mu)^T\Sigma^{-1}(X-\mu))\tag{14.1} \]

[外链图片转存失败(img-f8FYhvH3-1568604363727)(E:\Artificial Intelligence Markdown\Machine Learning\pictures\14.4 多元高斯分布.png)]

改变协方差矩阵和均值可以捕捉不同的分布

样本数量m需要大于特征数量n,一般\(m\ge10n\)使用

15 推荐系统

通过已有的评价去推测未知的评价

15.1 建立推荐系统的方法

15.1.1 基于内容的推荐算法

因为假设已经有电影评价特征量\(x\),学习得到用户特征量\(\theta\)

[外链图片转存失败(img-BCCR8RHr-1568604363728)(E:\Artificial Intelligence Markdown\Machine Learning\pictures\15.1.1 推荐系统算法.png)]

相当于多个参数向量的线性回归,去掉了样本总量m

估计用户的特征值\(\theta\)

15.1.2 协同过滤

假设有部分用户特征量\(\theta\),学习得到未知的电影评价特征量\(x\),再反推用户特征量\(\theta\) ,不断往复

估计电影的特征值\(x\)

  • 快速协同过滤:同时计算得到\(\theta\)\(x\)的算法:结合两种代价函数

[外链图片转存失败(img-KtrziNeJ-1568604363730)(E:\Artificial Intelligence Markdown\Machine Learning\pictures\15.1.2 协同过滤代价函数.png)][外链图片转存失败(img-xPngr4Vn-1568604363731)(E:\Artificial Intelligence Markdown\Machine Learning\pictures\15.1.2 协同过滤算法.png)]

可计算用户j对电影i的评分预测

  • 向量化实现协同过滤:\(X\theta^T\)
  • 推荐类似的电影:small\(||x^{(i)}-x^{(j)}||\)
  • 均值归一化:解决有一用户未给所有电影评分的问题(一列无取值)
  • [外链图片转存失败(img-MVx8gFZZ-1568604363740)(E:\Artificial Intelligence Markdown\Machine Learning\pictures\15.1.2 协同过滤均值归一化.png)]

猜你喜欢

转载自www.cnblogs.com/jestland/p/11548536.html