熵,线性规划,半监督自监督聚类打标签

news/2024/5/20 6:59:17 标签: 聚类, 机器学习, 算法

1.熵
信息熵是消除不确定性所需信息量的度量。
信息熵就是信息的不确定程度,信息熵越小,信息越确定。
对象的信息熵是正比于它的概率的负对数的,也就是
I©=−log(pc)
在这里插入图片描述
其中n为事件的所有可能性。
为什么使用交叉熵?在机器学习中,我们希望模型在训练数据上学到的预测数据分布与真实数据分布越相近越好,上面讲过了,用相对熵,但是为了简便计算使用交叉熵就可以了。
注:此处真实数据分布指的就是训练数据的分布(标注)。
以上信息来自博客为什么用交叉熵做损失函数讲得很清楚

2.线性规划
一个线性规划问题是一个线性函数最小化或最大化的问题,该线性函数服从一组有限个线性约束。
“线性编程”建议告诉计算机做线性的事情。 但这不是本课程标题中“编程”一词的含义。 在这种情况下,“编程”意味着“优化”:在集合中找到使函数值最大化的点。
线性规划是我知道的最酷的算法之一。线性规划用于在给定约束条件下最大限度地改善指定的指标。
下面是一个线性规划的例子:
在这里插入图片描述
详见线性规划简介
3.半监督自监督聚类打标签

半监督也有这个打伪标签的,多次迭代的过程。那么自监督和半监督的异同之处是什么?没什么太大区别。主要是计算聚类不需要标签啥的已知信息,所以自监督啥都不知道的情况下就可以找聚类中心。
实例:
Self-supervised Pseudo-labeling:
整个过程计算了两次聚类中心,第一次用输出的概率进行加权平均,然后用余弦距离加伪标签,然后用k-means聚类的方法再求一次聚类中心,再用余弦距离加伪标签,这样得到的伪标签较为准确。接着进行自监督,损失函数也是交叉熵损失函数。
这里是加权k-means聚类,之前知道的预测分类,使用余弦距离打标签。下图所示过程是论文“Do We Really Need to Access the Source Data? Source Hypothesis Transfer for Unsupervised Domain Adaptation”中的。
在这里插入图片描述
半监督:把没标注的数据先归到最近类,然后更新聚类中心,再把没标注的数据归类,迭代直到没有变化。

一下聚类摘自常用聚类算法
1.1聚类的定义
聚类(Clustering)是按照某个特定标准(如距离)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能地大。也即聚类后同一类的数据尽可能聚集到一起,不同类数据尽量分离。
1.2聚类的一般过程
数据准备:特征标准化和降维
特征选择:从最初的特征中选择最有效的特征,并将其存储在向量中
特征提取:通过对选择的特征进行转换形成新的突出特征
聚类:基于某种距离函数进行相似度度量,获取簇
聚类结果评估:分析聚类结果,如距离误差和(SSE)等
2.1 划分式聚类方法
划分式聚类方法需要事先指定簇类的数目或者聚类中心,通过反复迭代,直至最后达到"簇内的点足够近,簇间的点足够远"的目标。经典的划分式聚类方法有k-means及其变体k-means++、bi-kmeans、kernel k-means等。

2.1.2 k-means算法
经典的k-means算法的流程如下:
在这里插入图片描述

在这里插入图片描述


http://www.niftyadmin.cn/n/107853.html

相关文章

创建SpringBoot注意事项

作为一个java小白,你是否因为创建SpringBoot项目那些莫名其妙的错误搞得头皮发麻。不要慌张,这篇文章能帮你解决90%的问题【持续更新…】 本文结合创建SpringBoot项目的完整过程来讲 在idea中新建项目 虽然SpringBoot项目是由maven内核组成的&#xff0…

Maven的生命周期及常用命令

文章目录1、Maven生命周期1.1、clean生命周期1.2、default生命周期1.3、site生命周期2、Maven常用命令1、Maven生命周期 Maven有三套生命周期系统: 1、clean生命周期 2、default生命周期 3、site生命周期 三套生命周期之间相互独立,每套生命周期包含一…

GEBCO海洋数据下载

一、数据集简介 GEBCO(General Bathymetric chart of the Oceans)旨在为世界海洋提供最权威的、可公开获取的测深数据集。 目前的网格化测深数据集,即GEBCO_2022网格,是一个全球海洋和陆地的地形模型,在15角秒间隔的…

mysql数据库常用字符串函数

文章目录一、字符串函数详解二、文档下载地址一、字符串函数详解 1、ascii(str) 返回值为字符串str 的最左字符的数值,即取得最左字符的ascii码。假如str为空字符串,则返回值为 0 。假如str 为null,则返回值为 null。 2、bin(n) 返回值为n的二进制值的…

Spring与Dubbo整合原理与源码分析

EnableDubbo注解中有两个注解 EnableDubboConfig是用来解析配置文件的 DubboComponentScan是用来扫描Service和Refrence的 1.Dubbo中propertie⽂件解析以及处理原理 我们看到引入了DubboConfigConfigurationRegistrar,一看就知道干嘛了,老套路 我们看下…

数据结构-考研难点代码突破(C++实现树型查找 - B树插入与遍历,B+树基本概念)

数据结构(C)[B树(B-树)插入与中序遍历,效率分析]、B树、B*树、B树系列应用 文章目录1. B树B树的插入与删除流程2. B树(MySQL)3. B树与B树对比4. C实现B树插入,中序遍历1. B树 B树类…

Substrate 基础 -- 教程(Tutorials)

官网 github DOC 面向未来的区块链框架 Substrate 使开发人员能够快速、轻松地构建适合任何用例的未来 证明区块链(future proof blockchains)。 Substrate 文档包括区块链构建器(blockchain builders)和parachain 项目团队的概念、过程和参考信息。…

华为OD机试题,用 Java 解【两数之和绝对值最小】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…