吴恩达机器学习非监督学习

非监督学习

聚类 Clustering

无目标y,将数据归并到各个类的方式

k均值聚类算法 k-means

步骤:

第一次先将随机猜测簇质心

  1. 遍历所有样本,检查样本靠近哪个簇质心,就分配到哪个簇质心
  2. 查看簇质心的样本点并取平均值,将每个簇质心移动到平均值的位置,再重新进行两个步骤…当算法已经收敛时,再次操作簇质心位置不变

k-means代价函数(失真函数Distortion)

x_i为样本,c_i 为x_i对应的 簇质心的编号, u_i为簇质心的值,u_c_i为x_i对应的簇质心的值

初始化k-mean

选择k个聚类(k<m) ,随机选择k个样本,让初始聚类位置位于这k个样本的位置

选择k值的方法

选择k值应根据k-mean 的后续用途的表现来决定

比如选择T-shirt 的尺寸,可以让k=3 (S,M,L) ,也可以让k=(XS,S,M,L,XL)

异常检测

查看正常事件的无标签数据集,从而学习检测或提出警报

高斯分布(正态分布)

$\sigma^2$ 表示方差 ,$\mu$表示均值

对于X单个特征

异常检测算法

$\prod$表示累乘

该算法步骤:

  1. 选择n个特征(有可能出现异常的特征)

  2. 算得参数

  3. 给定新样本x,计算p(x)

     该公式每个特征都是独立的

    该公式是通用的,即使不独立也可用

    Σ 是协方差矩阵,对角线是方差,Cov(X_i,X_j)>0则正相关,Cov(X_i,X_j)<0负相关,Cov(X_i,X_j)==0不相关 ,不相关不一定独立,但是独立一定不相关

    假设每个特征是独立的,则Cov(X_i,X_j)=0

  4. 分析p(x)是否小于某个阈值, 从而判断异常

如何选择阈值$\epsilon$ :实际评估算法

通过调整$\epsilon$、添加或删除特征,看是否使算法表现更好

有已标记的数据集(y=0正常,y=1异常),将其分为3个集合,训练集无异常,交叉验证集和测试集含异常,其中如果有些异常数据被意外标记正常,该算法仍能工作

对训练集进行异常检测算法(训练集标签都为0,可视为无标签,仍是无监督学习),通过调整$\epsilon$、添加或删除特征等,看是否使交叉集上更可靠地检测出异常,最后将其应用到测试集中看其表现

在训练集拟合模型p(x)后,在交叉验证集或测试样本x上,预测

由于异常数量相对集合很小,属于偏斜数据,可以使用精准率,召回率来评估分数

异常检测vs监督算法

当拥有大量负例少量正例时,如何判断使用异常检测还是监督学习?

异常检测能找到与之前完全不同的新正例,监督学习是判断当前样例是否与已经见过的正例相似

选择特征

看x是否符合高斯分布,如果不符合,设法转化成高斯分布(如x→log(x+c))

当训练集转化特征时,交叉验证和测试集也要转化

流程:训练模型后后,在查看交叉验证集中未检测到的异常,并看是否能创造错新的特征提高异常检测(选择出现异常时可能取很大或很小值的特征)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值