无监督学习(下)

1.高斯混合模型(GMM)

(1)简单概念

  高斯混合模型是一种概率模型,它假定实例是由多个参数未知的高斯分布的混合生成的。从单个高斯分布生成的所有实例都形成一个集群,通常看起来像一个椭圆。每个集群都可以由不同的椭圆形状,大小,密度和方向。高斯模型的均值代表集群的中心,方差代表方向

     这个模型假定一个数据集是从K个高斯分布的集合中产生,但是每个集合都有一个权重,代表产生一个实例到数据集的可能性或者贡献(我暂且这么理解,要知道更严格的说法可以取看原文),一个实例的位置x(i)服从某个高斯分布x^{(i)}\sim N(\mu ^{(j)},\Sigma^{(j)}).

(2)求解重点

       高斯混合模型的目的就是找到这K个类的均值,协方差,还有权重。它和KMeans的算法差不多,也是找K个中心点,然后不断的进行迭代,所用的算法叫做EM最大算法,也就是期望最大化。只不过EM算法使用的是软集群分配,不是硬集权分类,他会估算出每个实例属于其他集群的概率值,使用所有数据进行更新,因为其中包含了概率值。

    高斯混合模型和KMean一样,受到初始化影响。而且也需要知道K值。

(3)sklearn中的模型用法

sklearn中有一个GaussianMixture类,也就是高斯混合类,它需要指定成分n_components,相当于k值,在训练之后,可以得到三个值,weight_,means_,covariances_,也就是权重,均值和协方差。

比如我们有一个数据集,是由三个高斯模型生成,然后混合在一起。

gus = GuessianMixture(n_components=3, n_init=10)

gus.fit(X)

就会把三类的数据分开,求出他们的均值,协方差,权重

然后如果你想要根据模型预测某个值属于某个类,可以使用predict或者predict_proba,前一个返回硬决策的值,后一个返回概率值,这个概率值是一个数组,长度为k,代表它属于每一个类的概率。

关于它的用法可以查看官方文档。

(4)抽样

高斯混合模型是一个生成模型,当然也可以生成一些符合该模型的数据

gus.sample(100)

生成一百个数据

(5).密度计算

给定任意位置,可以计算该位置的密度,使用score_samples()实现,分数越高代表密度越高,只不过这个数值是取对数生成的,积分求指数就是面积。

2.高斯混合模型的应用

异常检测,比如欺诈检查,异常值检测。

异常值的判断很简单,低密度的区域的任何实例都被看做异常。所有密度的阈值需要你自己去定义,比如某个产品的异常概率是百分之五,那么我们就可以根据实际经验设置低于这个值的密度,如果在后续发现这个值设定的不好,可以根据情况调整。

3.选择聚类数

对于KMeans可以通过惯性系数和轮廓系数来选择距离的数,但是对于高斯混合模型就不同。

一般是使用贝叶斯信息准则BIC,赤池 信息准则AIC

BIC = log(m)p-2log(L)

AIC=2p-2log(L)

m代表实例数。

p是模型学习的参数数量

L是模型的似然函数的最大值

他们都对具有更多需要学习的参数的模型进行惩罚,并奖励非常拟合数据的模型。他们常常选择的模型相同,但是如果不同,BIC选择模型要更简单,但是AIC要更加拟合数据。

这里突然想起一个面试题,你怎么看待似然函数和概率的?差不多就是这么一个意思吧,就是求解一个模型的惩罚函数,用的方法。

这个东西必须好好谈一下。给定一些参数\theta的统计模型,用概率一词描述未来的结果x的合理性,而用似然一词表示描述在知道结果x之后,一组特定的参数值\theta的合理性。

也就是概率密度函数f(x;\theta)是x的函数,\theta值被固定,而似然函数是\theta的函数,x被固定。

看了这么久,你可能会问,这个有什么关系吗?

显然,如果是最大似然函数,你对函数积分,就是对x积分,得到的值一定是1

如果你对概率密度函数积分,对\theta积分,你只会得到一个正数,不一定等于1。

如果你给一个数据集,你可能会使用最大似然估计来求解一个模型,然后使用最大似然估计求出\theta=某个值。但是如果存在一个先验概率,就要考虑最大化这个先验概率的最大似然估计,这个求解方式被称为最大后验估计。由于后验概率会约束参数值,则这个后验概率可以看作最大似然估计的正则化版本。

可以调用bic和aic方法查看贝叶斯信息和赤化信息。

2.贝叶斯高斯混合模型

BeyesianGaussianMixture它比上文讲到的高斯混合模型更灵活,它只需要指定最大的n_components然后分类。比如有三个类,我们要求这个模型分出10个类,它就会让其他七个类的权值归零。前面说过,高斯混合模型有三个值需要学习,权重值,均值,协方差,这里也是的,所以不存在的类的权值就归零了。

    这个训练过程是用的贝叶斯定律求解,用到了KL散度等知识。总之,它是高斯混合模型的升级版。

 3.其他聚类算法

(1).聚集聚类

它可以把多个类聚集起来、

(2).BIRCH

(3)均值聚类

(4).相似性传播

(5).谱聚类

4.异常值检测和新颖性检测

异常值检测和新颖性检测的区别在于,异常值检测的实例中含有异常值,而新颖性假设数据集没有异常。

使用的算法除了高斯混合模型,还要如下算法

(1).PCA

这是因为正常的实例重建与含有异常值的重建误差比较起来小得多。

(2).Fast-MCD(最小协方差决定)

它假定正常值是高斯分布,异常值不是高斯分布

(3).隔离森林

它构建一个随机森林,然后再每个节点上去掉一个特征,然后选择一个阈值来把数据集分为两个部分,数据集就慢慢分开了,最后所有的数据都分开了,但是异常值会距离其他值更远。而且,他们只需要更少的步骤被隔离开。

(4).局部离群因子(LOF)

它将给定实例周围的实例密度与其相邻的实例周围的密度进行比较,离群值通常比k个最近的邻居更加孤立。

(5).单例SVM

这个就需要给定一个纯洁的数据集,然后指分为一个类,那么最后分割平面就是原点和其他数据分开了。其实这个算法更加适合于新颖性检测。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/312881.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

echarts 二分图布局_力向导图_关系图

Echarts 常用各类图表模板配置 注意: 这里主要就是基于各类图表,更多的使用 Echarts 的各类配置项; 以下代码都可以复制到 Echarts 官网,直接预览; 图标模板目录 Echarts 常用各类图表模板配置一、力向导图(二分图布局…

基于简化版python+VGG+MiniGoogLeNet的智能43类交通标志识别—深度学习算法应用(含全部python工程源码)+数据集+模型(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境Anaconda环境 模块实现1. 数据预处理 相关其它博客工程源代码下载其它资料下载 前言 本项目专注于解决出国自驾游特定场景下的交通标志识别问题。借助Kaggle上的丰富交通标志数据集,我们采用了VGG和G…

C++类和对象(中)

前言 我们前面已经介绍过了C类和对象的入门知识,例如面向过程和面向对象,类的概念以及this指针等~!本期我们再来对类和对象介绍~! 本内容介绍 类的6个默认成员函数 构造函数 析构函数 拷贝构造 赋值运算符重载 const成员函数 取…

《ORANGE’S:一个操作系统的实现》读书笔记(十九)输入输出系统(一)

我们刚刚实现了简单的进程,你现在可能很想把它做得更加完善,比如进一步改进调度算法、增加通信机制等。但是这些工作不但做起来没有尽头,而且有些也是难以实现的,因为进程必须与I/O、内存管理等其它模块一起工作。而且&#xff0c…

低成本设计一套防串号系统

问题 物联网设备接入服务器的鉴权,如何做到防止被串号。 举一个通俗的例子,群晖,与黑群晖洗白,通常是不知道哪里搞来的黑群晖的序列号和mac,刷到系统中系统就可以正常接入群晖的服务器。如果你的序列号和mac不小心被泄…

【C++】手撕 Vector类

目录 1,vector类框架 2,vector () 3,pinrt() 4,vector(int n, const T& value T()) 5,vector(const vector& v) 6,vector(InputIterator first, InputIterator last) 7,~vector…

HarmonyOS应用程序包快速修复

快速修复概述 快速修复是HarmonyOS系统提供给开发者的一种技术手段,支持开发者以远快于应用升级的方式对应用程序包进行缺陷修复。和全量应用升级软件版本相比,快速修复的主要优势在小、快和用户体验好。在较短的时间内不中断正在运行的应用的情况下&am…

【兔子王赠书第14期】《YOLO目标检测》涵盖众多目标检测框架,附赠源代码和全书彩图!

文章目录 写在前面YOLO目标检测推荐图书本书特色内容简介作者简介 推荐理由粉丝福利写在后面 写在前面 小伙伴们好久不见吖,本期博主给大家推荐一本关于YOLO目标检测的图书,该书侧重目标检测的基础知识,包含丰富的实践内容,是目标…

Qt+Opencv:人脸检测

话接上一篇,我们仍使用在上篇《QtOpencv:Qt中部署opencv》创建的Qt项目来测试opencv提供的sample。 在正式开始本篇之前,我们先说做一下准备工作: 一、opencv官方文档 学习最权威和最可靠的方式,就是阅读官方文档和…

QtitanRibbon 开始使用实例

新建一个界面程序: 修改项目里面的源码: 至此,一个简单界面就出来了,效果如下所示:

详解信道容量,信道速率,安全速率的区别

目录 一. 信道容量与信道速率 二. 小结 三. 安全速率与物理层安全 3.1 香农物理层安全模型 3.2 安全信道速率 四. 补充安全中断概率(Secrecy Outage Probability, SOP) 五. 补充安全分集度(Secrecy Diversity Order, SDO) …

数据通信网络基础的网络参考模型华为ICT网络赛道

网络参考模型 目录 网络参考模型 2.1.应用与数据 2.2.网络参考模型与标准协议 2.2.1.OSI参考模型 2.2.2.TCP/IP参考模型 2.2.3.应用层 2.2.4.传输层 2.2.5.TCP和UDP 2.2.6.网络层 2.2.7.数据链路层 2.2.8.物理层 2.3.数据通信过程 2.1.应用与数据 应用的存在&#…