[machineLearning]非监督学习unsupervised learning

news2024/11/24 22:25:11

1.什么是非监督学习

常见的神经网络是一种监督学习,监督学习的主要特征即为根据输入来对输出进行预测,最终会得到一个输出数值.而非监督学习的目的不在于输出,而是在于对读入的数据进行归类,选取特征,打标签,通过对于数据结构的分析来完成这些操作, 很少有最后的输出操作.

从训练数据的角度来说也是有所区别:监督学习的训练数据为(x,y), 即同时具有输入和输出数值,根据这种输入和输出来判断训练的结果是否正确.

但是非监督学习的数据只有输入数据(x),或者说非监督学习就是要处理这些数据,然后随着新的数据加入再不断进行修改,完成对数据特征提取和区分的要求.

把相同的数据进行归类,这就是非监督学习所作的事情.

下面将介绍两种常用的非监督学习算法:聚类分析和异常检测

本文中需要一定的概率论/高中概率的前置知识

2.聚类算法 k-means

(1)什么是聚类分析

俺举个简单点例子,比如说我们有两个维度的特征值x1 x2,这个时候我们根据特征值把数据点描绘在图片上.

可以很明显地看到,因为各自的特征不同和相似,我们最终可以把原本的数据集合分成两个集群聚类(cluster),我们的目的就是通过算法找到这两个聚类究竟有多少成员,有哪些成员

其中一种古老但是经典的早期算法K-means可以用来解决这个问题

(2)K-means算法

在具体解释这个算法之前,要说明一个概念:集群质心 cluster controids,集群质心代表这些集群的一个中心点.

1.Kmeans的算法第一步就是按照人为的需求,随机分配多个集群质心

2.然后将每个点分配给距离自己最近的质心,组成一个集群

3.集群中的点通过特征值平均,算出一个中心点位置,然后把这个集群的质心移动到这个位置

4.重复 2 3 两个步骤,直到最后质心的距离不发生改变,即可视为集群操作完成

下面将将会使用图片来进行说明,我们一共有三十个数据点,按照特征值划分开

 随机分配两个质心(这里假设我们需要的是划分出两个集群,然后接下来是对每个数据点进行归类,将其分配给某个群(严格来说是和距离自己最近的质心打上同样的标记) 

将多个数据点分配到具体的集群以后,这个时候暂时就先不用到集群质心cluster controids了

对于每一个集群,我们通过各个分量之间计算平均点的方式,计算出这个集群的集群质心应该在什么位置上

然后将集群质心移动到对应的点上

 重复以上两个步骤,最终实现集群质心的固定,到这种程度就可以认为规定数目的集群已经按照要求划分完成

 (3)聚类算法的优化

忘记说明一点,kmeans算法的初始化,随机分配集群质心,一般是直接在已有的数据点中生成,而不是真的凭空捏造一个(hhhh).但是不同的随机选取结果,最终可能会导致不同的集群划分结果,甚至可能造成unconverge不收敛现象.

类似监督学习中的代价函数,这里我们同样是存在代价函数,只不过计算方法有一点点区别

Kmeans的代价函数如下

J=\frac{1}{m}\sum \left \| x^{i}-\mu _{c^{i}}^{} \right \|^2

c^{i}:代表的是第i个数据点所在的群

\mu:代表的是某个群的集群质心

所以这个公式的解释就是:所有点到他们各自所在群的集群质心的距离的二范数(空间距离)的平均值

在比较不同集群算法结果的时候,计算代价函数是比较合理的比较方法

而聚类算法的优化,也是期望代价函数能够降到最低

另外要说的是,不合理无法归一的情况是客观存在的,结局办法有很多,比如重新进行随机点的选取,但是kmeans毕竟还是比较早期的算法.可以选用其他算法或者其他改进模式,这里就不进行赘述了

3.异常检测算法 anomal detect

异常检测算法通常用于一些特殊的情况,  比如一些物体的识别,比如水果,可以按照重量,色泽等等特征来做区分,或者珍珠可以按照半径,色泽等等方式来判断一个珍珠是好是坏.正所谓幸福千篇一律,苦难各有不幸.

我们所遵从的原则是"群体原则",即为服从大多数,大多数具有相同特征的人被称之为正常.

所以因为这样,我们要使用高斯分布这一特性

这个玩意我觉得大多数人应该在高中或者是大学的概率论课程中接触过,在异常检测算法之中,我们会对每一个分量进行高斯分布计算

假设某一批数据有很多特征值

x_{1}^{}=\left ( x_{1}^{(1)},x_{1}^{(2)},....,x_{1}^{(n)} \right )  

x_{2}^{}=\left ( x_{2}^{(1)},x_{2}^{(2)},....,x_{2}^{(n)} \right )

.............................................................

x_{m}^{}=\left ( x_{m}^{(1)},x_{m}^{(2)},....,x_{m}^{(n)} \right )

对于每一个分量,例如这个矩阵的第一列,即每个样本的第一个特征值,对于这些数据我们需要计算出方差和平均值,然后就能构建出一个分量的高斯式子

P(x1)=gauss(x1,\mu 1,\sigma ^{2}1)

然后对于整体的输入数据来说,某个数据xi想要判断是不是"异常",只需要计算这个向量的高斯数值

P(\chi )=P(x1 )*P(x2 )*.....*P(x3 )   (注意一个很有趣的地方,就算这些特征值可能不是独立的,我们这个式子仍然是成立的)

然后通过这样子,判断该数据向量的高斯分布数值是否大于某个阀值,即可直到是不是属于"大多数"

P(\chi )>=\varepsilon ?

(2)注意事项

1.在训练的时候,训练数据必须全是正常的数据,测试集合中需要包含一些

2.有些特征可能并不是高斯分布,需要我们对数据进行适当的方所处理

3.不是二维分布不是二维聚类!二位聚类是根据两种不同的特征值划分出两种截然不同的集群,两个群中的元素则都有各自相同的部分.

而异常检测不一样,异常检测做到的是区分"大多数"和"异端"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搭建STM32F407的SPI-Flash(基于STM32CubeMX)

网上有不少例子,都对,但对我来说碰到几个坑,避免以后再犯错,mark下。 目标:通过SPI接口,对Nor Flash进行读写 开发板上Nor Flash 是W25Q128, 128Mbit,也就是16MB样子 CubeMx端配置…

WebClient vs HttpClient:异同对比

在 Java 开发中,进行网络通信是常见的需求。WebClient 和 HttpClient 是两种常用的用于发送 HTTP 请求的工具。它们都具有相似的功能,但在实现细节和用法上存在一些差异。本文将详细介绍 WebClient 和 HttpClient 的异同,帮助您选择适合您项目…

leetcode 205. 同构字符串

2023.9.6 本题维护两个映射表map&#xff0c;若发现无法对应则返回false。 代码如下&#xff1a; class Solution { public:bool isIsomorphic(string s, string t) {unordered_map<char,char> m1;unordered_map<char,char> m2;for(int i0; i<s.size(); i){//相…

信息化战略规划-CRO-SCM-应用集成-电子商务

信息化战略规划-CRO-SCM-应用集成-电子商务 信息化战略体系(重点)信息系统战略规划&#xff08;重点&#xff09;客户关系管理&#xff08;重点&#xff09;供应链管理企业应用集成电子商务 信息化战略体系(重点) 企业战略&#xff1a;目标 企业战略规划&#xff1a;实现目标的…

【EI/SCOPUS会议征稿】第二届环境遥感与地理信息技术国际学术会议(ERSGIT 2023)

第二届环境遥感与地理信息技术国际学术会议 2023 2nd International Conference on Environmental Remote Sensing and Geographic Information Technology 第二届环境遥感与地理信息技术国际学术会议&#xff08;ERSGIT 2023&#xff09;定于2023年11月10-12日在中国陕西西安…

数据库设计:防止MySQL字段名与关键字相撞,保护数据完整性!

MySQL是一款广泛应用的关系型数据库管理系统&#xff0c;对于数据库设计而言&#xff0c;字段名的选择是至关重要的一环。不小心选择了和MySQL关键字相同的字段名可能导致严重的数据完整性问题。下面将深入探讨如何防止MySQL字段名与关键字相撞&#xff0c;以保护数据的完整性。…

6.(高级示例篇)cesium暗色系地图样式地图(颜色滤镜)

注&#xff1a;高级示例博客不提供源码 地图之家总目录&#xff08;订阅之前建议先查看该博客&#xff09; 效果如下所示&#xff1a; cesium暗色系地图样式地图&#xff08;颜色滤镜&#xff09;

Multimodel Image synthesis and editing:The generative AI Era

1.introduction 基于GAN和扩散模型&#xff0c;通过融入多模态引导来调节生成过程&#xff0c;从不同的多模态信号中合成图像&#xff1b;是为多模态图像合成和编辑使用预训练模型&#xff0c;通过在GAN潜在空间中进行反演&#xff0c;应用引导函数&#xff0c;或调整扩散模型…

鞋业的数字化转型:3D建模与3D打印

3D打印正在成为时尚行业的一笔重要资产。 正如我们在之前的博客文章中看到的那样&#xff0c;制鞋行业实际上正在充分利用这种新的制造工艺。 这是改进许多不同公司的原型设计和生产流程的一种方法。 但为了改进这些流程&#xff0c;获得正确的 3D 建模软件非常重要。 即使你不…

rknn_server启动方法

rknn_server: 是一个运行在板子上的后台代理服务&#xff0c;用于接收PC通过USB传输过来的协议&#xff0c;然后执行板端runtime对应的接口&#xff0c;并返回结果给PC。 当rknn_server没有启动&#xff0c;则在上位机和瑞芯微开发板的连扳调试&#xff0c;容易出现如下错误&a…

安防监控/视频汇聚/视频云存储EasyCVR平台v3.3版本AI智能分析网关V3接入教程2.0

TSINGSEE的边缘计算硬件智能分析网关V3内置多种AI算法模型&#xff0c;包括人脸、人体、车辆、车牌、行为分析、烟火、入侵、聚集、安全帽、反光衣等等&#xff0c;可应用在安全生产、通用园区、智慧食安、智慧城管、智慧煤矿等场景中。将网关硬件结合TSINGSEE青犀的视频汇聚/安…

手写Spring:第10章-对象作用域和FactoryBean

文章目录 一、目标&#xff1a;对象作用域和FactoryBean二、设计&#xff1a;对象作用域和FactoryBean三、实现&#xff1a;对象作用域和FactoryBean3.0 引入依赖3.1 工程结构3.2 Spring单例、原型以及FactoryBean功能类图3.3 Bean的作用范围定义和xml解析3.3.1 Bean对象信息定…

【C语言】——三子棋游戏

目录 Ⅰ.初始页面&#xff1a; Ⅱ.游戏页面 Ⅲ.玩家下棋 Ⅳ.电脑下棋 Ⅴ.判断输赢 结果演示。 代码整体实现 1.test.c 2.game.c 3.game.h ① 前言 三子棋是一款非常经典的小游戏&#xff0c;三点一线即为成功&#xff0c;初学代码者&#xff0c;基本上都会接触这款小游戏…

在项目管理中,项目经理需要了解哪些内容?

在项目管理中&#xff0c;没有绝对的完美&#xff0c;每个项目和项目经理都有可以改进的空间。即使在项目交付时&#xff0c;也会面临各种问题和关系&#xff0c;使得项目经理难以充分应用最佳实践。 项目经理接触项目的第一步是沟通项目的目标&#xff0c;通过与利益相关者的…

论文研读|生成式跨模态隐写发展综述

前言&#xff1a;本文介绍近5年来生成式跨模态隐写领域的相关工作。 相关阅读&#xff1a;生成式文本隐写发展综述 不同于文本隐写&#xff0c;跨模态隐写需要考虑不同模态间的相关性&#xff0c;常见的跨模态场景有&#xff1a;Image-to-Text&#xff08;如图像描述&#xff…

【校招VIP】测试计划之loadrunner分析

考点介绍&#xff1a; LoadRunner&#xff0c;是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题&#xff0c;LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能优化性能和加速应用系统的发布周期。校…

C语言 数据结构与算法 I

C语言-数据结构与算法 C语言基础 因为之前写算法都是用C&#xff0c;也有了些C基础&#xff0c;变量常量数据类型就跳过去吧。 首先是环境&#xff0c;学C时候用Clion&#xff0c;C语言也用它写吧~ 新建项目&#xff0c;选C执行文件&#xff0c;语言标准。。。就先默认C99吧…

你折腾一天都装不上的插件,函数计算部署 Stable Diffusion 都内置了

在进行函数计算 Stable Diffusion 答疑的过程中&#xff0c;遇到很多同学在装一些插件的过程中遇到了难题&#xff0c;有一些需要安装一些依赖&#xff0c;有一些需要写一些代码&#xff0c;很多时候安装一个插件就能折腾几天&#xff0c;我们收集了很多同学需要的插件&#xf…

OpenWrt通过终端查询版本

一、cat /etc/banner 二、cat /proc/version 三、cat /etc/openwrt_release 四、uname -a 五、opkg --version

从事网络安全行业 35岁会被淘汰吗?

根据我国信息部门统计显示&#xff1a;今后5年&#xff0c;我国从事网络建设、网络应用和网络服务的新型网络人才&#xff0c;尤其是网络工程师需求将达到60—100万人&#xff0c;而现有符合新型网络人才要求的人还不足20万人。不饱和度高达80%&#xff0c;人才需求量大。 这说…