当前位置: 首页 > news >正文

聚类算法 ap 聚类 谱聚类

AP聚类(Affinity Propagation Clustering)是一种基于消息传递的聚类算法,由Brendan J. Frey和Delbert Dueck于2007年提出。与传统的聚类算法(如K-Means)不同,AP聚类不需要预先指定聚类数量,而是通过数据点之间的相似度自动确定聚类中心和聚类数量。


AP聚类的核心思想

  1. 相似度矩阵

    • AP聚类通过一个相似度矩阵 ( S ) 来描述数据点之间的关系。矩阵中的元素 ( s(i, k) ) 表示数据点 ( i ) 与数据点 ( k ) 之间的相似度。
    • 通常,相似度可以定义为数据点之间的负欧氏距离(或其他距离度量),即 ( s(i, k) = -||x_i - x_k||^2 )。
  2. 责任矩阵(Responsibility)

    • 责任矩阵 ( R ) 中的元素 ( r(i, k) ) 表示数据点 ( i ) 向数据点 ( k ) 发送的消息,反映了数据点 ( k ) 作为数据点 ( i ) 的聚类中心的适合程度。
  3. 可用性矩阵(Availability)

    • 可用性矩阵 ( A ) 中的元素 ( a(i, k) ) 表示数据点 ( k ) 向数据点 ( i ) 发送的消息,反映了数据点 ( k ) 作为聚类中心的可用性。
  4. 消息传递

    • AP聚类通过迭代更新责任矩阵和可用性矩阵,直到收敛。最终,每个数据点会被分配到其最适合的聚类中心。
  5. 聚类中心

    • 聚类中心是那些具有较高责任和可用性值的数据点。算法会自动确定聚类中心的数量。

AP聚类的优点

  1. 无需指定聚类数量
    • 与K-Means等算法不同,AP聚类不需要预先指定聚类数量,而是通过数据点之间的相似度自动确定。
  2. 对初始值不敏感
    • AP聚类对初始值的依赖性较低,通常能获得稳定的聚类结果。
  3. 适合中小规模数据集
    • AP聚类在处理中小规模数据集时表现良好。

AP聚类的缺点

  1. 计算复杂度高
    • AP聚类的时间复杂度为 ( O(N^2) ),其中 ( N ) 是数据点的数量。因此,它不适合处理大规模数据集。
  2. 对相似度矩阵敏感
    • 聚类结果依赖于相似度矩阵的定义,如果相似度矩阵定义不合理,聚类效果可能较差。

Python实现

以下是使用 scikit-learn 实现AP聚类的示例代码:

from sklearn.cluster import AffinityPropagation
import numpy as np# 示例数据
X = np.array([[1, 2], [1, 4], [1, 0],[4, 2], [4, 4], [4, 0]])# 创建AP聚类模型
af = AffinityPropagation(preference=-50).fit(X)# 获取聚类结果
cluster_centers_indices = af.cluster_centers_indices_
labels = af.labels_print("聚类中心索引:", cluster_centers_indices)
print("聚类标签:", labels)

参数说明

  1. preference
    • 控制数据点成为聚类中心的倾向性。值越大,聚类中心越多;值越小,聚类中心越少。默认情况下,preference 为所有相似度的中位数。
  2. damping
    • 阻尼系数(取值范围为0.5到1),用于控制消息传递的收敛速度。默认值为0.5。
  3. max_iter
    • 最大迭代次数,默认值为200。

总结

AP聚类是一种强大的聚类算法,特别适合中小规模数据集和不需要预先指定聚类数量的场景。然而,它的计算复杂度较高,不适合处理大规模数据。在实际应用中,可以根据数据特点选择合适的聚类算法。

我来给你简单介绍一下 AP 聚类,也叫 Affinity Propagation 聚类(亲和传播聚类)。

  1. 什么是 AP 聚类?
    AP 聚类是一种不需要提前指定簇数量的聚类算法。
    和 KMeans 这种算法不同,它通过让数据点互相“发送消息”,自动决定哪些点是簇的中心(即“代表点”或“样本代表”),最后形成不同的簇。

由两位学者 Brendan J. Frey 和 Delbert Dueck 在 2007 年提出。

  1. 原理简介
    AP 聚类的核心思想是:

每个点都可以是潜在的聚类中心。

点之间互相传递两种消息:

归属度(Responsibility):点 i 认为点 k 作为它的簇中心的适合程度。

可用度(Availability):点 k 认为自己作为点 i 簇中心的适合程度。

算法通过迭代更新这两个值,直到收敛。

  1. 特点
    优点

不需要提前指定簇数量。

能自动选择代表点。

对异常值不敏感。

适用于复杂的样本分布。

缺点

时间复杂度较高,一般是 O(N²),适合中小规模数据。

相似度矩阵要提前计算,内存消耗大。

  1. 适用场景
    文本分类

图像处理与图像分割

基因数据聚类

推荐系统

  1. Python 简单示例
    你可以用 sklearn 来实现:

python
复制
编辑
from sklearn.cluster import AffinityPropagation
from sklearn import datasets
import matplotlib.pyplot as plt

加载数据

X, y = datasets.make_blobs(random_state=42)

建立模型

ap = AffinityPropagation(random_state=0)
ap.fit(X)

可视化

plt.scatter(X[:, 0], X[:, 1], c=ap.labels_)
plt.scatter(ap.cluster_centers_[:, 0], ap.cluster_centers_[:, 1], c=‘red’, marker=‘x’)
plt.title(‘Affinity Propagation Clustering’)
plt.show()

AP(Affinity Propagation)聚类是一种基于“消息传递”(Message Passing)的聚类算法,其核心思想是不需要预先指定簇的数量,而由数据点间的相似度自动决定聚类中心。下面介绍其主要数学推导公式及其含义:

一、基本概念
相似度函数
𝑠
(
𝑖
,
𝑘
)
s(i,k)
表示数据点
𝑖
i 与候选聚类中心
𝑘
k 之间的相似度。

一般来说,常用的定义是负距离:

𝑠
(
𝑖
,
𝑘
)



𝑥
𝑖

𝑥
𝑘

2
s(i,k)=−∥x
i

−x
k


2

对于
𝑖

𝑘
i=k(也就是把自己作为中心),还会引入一个偏好值
𝑝
p(preference),该值控制簇的数量。通常,所有数据点的偏好值设为相同值。

责任值
𝑟
(
𝑖
,
𝑘
)
r(i,k)
表示数据点
𝑖
i “认为”数据点
𝑘
k 作为簇中心的合适程度,相当于 i 选择 k 的论据。

可用度
𝑎
(
𝑖
,
𝑘
)
a(i,k)
表示数据点
𝑘
k “适合”被
𝑖
i 选择作为簇中心的支持程度。
注意:两者都是通过“消息”传递机制在所有数据点之间迭代更新的。

二、消息传递更新公式

  1. 责任值更新公式
    对于每个数据点
    𝑖
    i 和候选中心
    𝑘
    k,责任值
    𝑟
    (
    𝑖
    ,
    𝑘
    )
    r(i,k) 的更新公式为:

𝑟
(
𝑖
,
𝑘
)

𝑠
(
𝑖
,
𝑘
)

max

𝑘


𝑘
{
𝑎
(
𝑖
,
𝑘

)
+
𝑠
(
𝑖
,
𝑘

)
}
r(i,k)←s(i,k)−
k


=k
max

{a(i,k

)+s(i,k

)}
解释:

𝑠
(
𝑖
,
𝑘
)
s(i,k) 表示
𝑖
i 与
𝑘
k 的直接相似度。

max

𝑘


𝑘
{
𝑎
(
𝑖
,
𝑘

)
+
𝑠
(
𝑖
,
𝑘

)
}
max
k


=k

{a(i,k

)+s(i,k

)} 则是除了
𝑘
k 之外的所有候选中心中,能给予
𝑖
i 的最大支持(可用度加上相似度)。

因此,责任值表示
𝑖
i 与
𝑘
k 的相似度相对于其它候选中心的优势。

  1. 可用度更新公式
    对于
    𝑎
    (
    𝑖
    ,
    𝑘
    )
    a(i,k) 的更新分为两种情况:


𝑖

𝑘
i

=k(非自引用)时:

𝑎
(
𝑖
,
𝑘
)

min

{
0
,

𝑟
(
𝑘
,
𝑘
)
+

𝑖


{
𝑖
,
𝑘
}
max

(
0
,

𝑟
(
𝑖

,
𝑘
)
)
}
a(i,k)←min




0,r(k,k)+
i


/
{i,k}


max(0,r(i

,k))



解释:

𝑟
(
𝑘
,
𝑘
)
r(k,k) 表示候选点
𝑘
k 作为自身作为簇中心的自信程度。


𝑖


{
𝑖
,
𝑘
}
max

(
0
,

𝑟
(
𝑖

,
𝑘
)
)

i


/
{i,k}

max(0,r(i

,k)) 累计了其他所有数据点对
𝑘
k 的正面反馈(责任值非负部分)。

取两者之和与 0 的较小值,确保当负反馈过大时,可用度不会超过 0,避免对不适合做中心的数据点给予过高可用度。


𝑖

𝑘
i=k(自引用)时:

𝑎
(
𝑘
,
𝑘
)


𝑖


𝑘
max

(
0
,

𝑟
(
𝑖

,
𝑘
)
)
a(k,k)←
i


=k


max(0,r(i

,k))
解释:

自可用度是所有其他数据点对
𝑘
k 的正面责任值的累计和,反映了
𝑘
k 作为聚类中心的总体吸引力。

三、算法流程简述
初始化:
通常先将所有责任值
𝑟
(
𝑖
,
𝑘
)
r(i,k) 和可用度
𝑎
(
𝑖
,
𝑘
)
a(i,k) 设置为 0。

消息传递迭代:
交替更新责任值和可用度,反复迭代直到收敛或达到迭代次数上限。

确定聚类中心:
对于每个数据点
𝑖
i,计算
𝑎
(
𝑖
,
𝑘
)
+
𝑟
(
𝑖
,
𝑘
)
a(i,k)+r(i,k);令

𝑘

arg

max

𝑘
{
𝑎
(
𝑖
,
𝑘
)
+
𝑟
(
𝑖
,
𝑘
)
}
k

=arg
k
max

{a(i,k)+r(i,k)}
如果
𝑘

𝑖
k

=i,则数据点
𝑖
i 被选为聚类中心;否则,
𝑖
i 分配到
𝑘

k

对应的簇中。

四、总结
AP 聚类不需要预先指定聚类数,而是基于数据点之间的相似度、责任值和可用度的相互作用来自适应地确定聚类中心和簇的数量。

关键公式为责任值和可用度的更新公式,其中责任值反映了某点认为另一个点适合作为中心的优势,可用度反映了候选点对其他点的吸引力。

迭代更新这些消息,最终就能得到每个数据点对应的聚类分配。

这些公式和流程构成了 AP 聚类的数学基础。希望这个详细讲解对你理解 AP 聚类有所帮助

相关文章:

聚类算法 ap 聚类 谱聚类

AP聚类(Affinity Propagation Clustering)是一种基于消息传递的聚类算法,由Brendan J. Frey和Delbert Dueck于2007年提出。与传统的聚类算法(如K-Means)不同,AP聚类不需要预先指定聚类数量,而是…...

习题与正则表达式

思路: 二分查找: left 1(最小可能距离),right L(最大可能距离)。 每次取 mid (left right) / 2,判断是否可以通过增设 ≤ K 个路标使得所有相邻路标的距离 ≤ mid。 贪心验证…...

数据库管理工具实战:IDEA 与 DBeaver 连接 TDengine(一)

一、引言 在当今数字化时代,数据如同企业的生命线,而数据库则是承载这些宝贵数据的关键基础设施。TDengine 作为一款高性能的时序数据库,在物联网、工业互联网、车联网、IT 运维等众多领域中发挥着举足轻重的作用。它以其卓越的性能、高效的…...

聚类Clustering和分类Classification的区别

目的: 聚类:旨在将数据集中的样本分成若干组(簇),使得同一组内的样本在某种意义上更相似,而不同组的样本差异更大。聚类是一种探索性分析,用于发现数据中的自然结构。分类:旨在根据已…...

对比 redis keys 命令 ,下次面试说用 scan

Redis SCAN 命令使用指南 SCAN 是 Redis 提供的一种非阻塞迭代器命令,用于逐步遍历 Redis 数据库中的键。相比于 KEYS 命令,SCAN 不会一次性加载所有键,因此对性能的影响较小,适合在生产环境中使用。 以下是关于 SCAN 的详细用法…...

【Java设计模式】第6章 抽象工厂模式讲解

6. 抽象工厂模式 6.1 抽象工厂讲解 定义:提供一个接口创建一系列相关或依赖对象,无需指定具体类。核心概念: 产品等级结构:同一类型的不同产品(如Java视频、Python视频)。产品族:同一工厂生产的多个产品(如Java视频 + Java手记)。适用场景: 需要创建多个相关联的产品…...

设计模式 - 代理模式

代理模式 代理模式是一种结构型设计模式,它允许你提供一个代理对象来控制对另一个对象的访问。代理模式可以在不改变原始对象的情况下,增强或控制对原始对象的访问。代理模式通常用于延迟加载、访问控制、日志记录、性能监控等场景。 1.静态代理 静态…...

Unity-Xlua热更和AssetBundle详解

从今天开始我们深入Unity的组件,最近的一系列事让我明白学习技术不能只有广度,如走马观花,虽然你可能确实学到了皮毛,但是没有足够深厚的理解,是无法融入自己的东西的,那么你就只是在用别人的工具而不是自己…...

【企业级数据安全】掌握高性能Log4j2敏感信息脱敏方案

前言 在数据安全合规日益严格的今天,日志中的敏感信息保护已成为企业IT建设的必备环节。本文带您深入了解如何打造一套高性能、可实时配置的Log4j2日志脱敏插件,轻松应对各类敏感数据保护需求,让您的系统既满足合规要求,又不牺牲…...

力扣刷题——606.根据二叉树创建字符串

给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。 空节点使用一对空括号对 "()" 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映…...

图像处理中的 Gaussina Blur 和 SIFT 算法

Gaussina Blur 高斯模糊 高斯模糊的数学定义 高斯模糊是通过 高斯核(Gaussian Kernel) 对图像进行卷积操作实现的. 二维高斯函数定义为 G ( x , y , σ ) 1 2 π σ 2 e − x 2 y 2 2 σ 2 G(x, y, \sigma) \frac{1}{2\pi \sigma^2} e^{-\frac{x^2 y^2}{2\sigma^2}} G(x…...

AWS区块链游戏场景技术解决方案:全球节点与去中心化架构实践

一、区块链游戏的技术挑战与架构需求 区块链游戏作为Web3领域的重要应用场景,其技术架构需要满足以下核心需求: 分布式账本的高效同步与共识验证 智能合约的安全执行环境 全球玩家的低延迟交互体验 动态扩展的节点网络支持 海量NFT资产的可靠存储 …...

AWS VPC深度解析:构建安全可靠的云网络基础设施

1. 引言 在云计算时代,网络基础设施的重要性不言而喻。Amazon Web Services (AWS) 的Virtual Private Cloud (VPC)为用户提供了一个强大而灵活的网络环境,使他们能够在AWS云中构建安全、可扩展的应用程序。本文将全面剖析AWS VPC的核心特性,帮助读者深入理解如何利用VPC构建高…...

青少年编程与数学 02-016 Python数据结构与算法 08课题、图

青少年编程与数学 02-016 Python数据结构与算法 08课题、图 一、图1. 图的基本概念1.1 定义1.2 顶点和边1.3 图的分类1.4 特殊术语 2. 图的表示方法1. 邻接矩阵(Adjacency Matrix)2. 邻接表(Adjacency List)3. 边列表(…...

微信小程序:动态表格实现,表头单元格数据完全从data中获取,宽度自定义,自定义文本框,行勾选,样式效果,横向滚动表格(解决背景色不足的问题)等

一、样式效果 二、代码 1、wxml <view class"line flex flex-center"><view class"none" wx:if"{{info.length 0}}">暂无料号</view><view wx:else class"table-container"><!-- 动态生成表头 -->&…...

MySQL学习笔记集--游标

游标 在MySQL中&#xff0c;游标&#xff08;Cursor&#xff09;是一种数据库对象&#xff0c;它允许您逐行处理查询结果集。游标通常与存储过程一起使用&#xff0c;因为它们需要在存储过程或函数中声明和操作。游标的使用涉及几个步骤&#xff1a;声明游标、打开游标、从游标…...

Microsoft Defender Antivirus Service服务占用CPU过高

下载火绒安全&#xff0c;用它替代 Microsoft Defender&#xff0c;并关闭 Microsoft Defender 两步禁用Windows Defender Antivirus Service_microsoft defender antivirus service-CSDN博客 Windows10/11家庭版 关闭方法 按 ‘Win键R’&#xff0c;输入 “regedit”&#…...

Ansible(7)——管理机密与事实

目录 一、管理机密&#xff1a; 1、Ansible Vault &#xff1a; 2、ansible-vault 命令行工具&#xff1a; &#xff08;1&#xff09;创建加密文件&#xff1a; &#xff08;2&#xff09;查看加密文件&#xff1a; &#xff08;3&#xff09;编辑现有加密文件&#xf…...

consul服务注册与发现(go)-学习笔记

参考博客 1、服务实例接口与默认实现 type ServiceInstance interface {// 获取服务实例的唯一IDGetInstanceId() string// 获取服务IDGetServiceId() string// 获取服务实例的主机名或IP地址GetHost() string// 获取服务实例的端口号GetPort() int// 判断服务实例是否使用HT…...

golang-defer延迟机制

defer延迟机制 defer是什么 defer是go中一种延迟调用机制。 执行时机 defer后面的函数只有在当前函数执行完毕后才能执行。 执行顺序 将延迟的语句按defer的逆序进行执行&#xff0c;也就是说先被defer的语句最后被执行&#xff0c;最后被defer的语句&#xff0c;最先被执…...

字符串哈希算法详解:原理、实现与应用

字符串哈希是一种高效处理字符串匹配和比较的技术&#xff0c;它通过将字符串映射为一个唯一的数值&#xff08;哈希值&#xff09;&#xff0c;从而在O(1)时间内完成子串的比较。本文将结合代码实现&#xff0c;详细讲解前缀哈希法的工作原理&#xff0c;并通过流程图逐步解析…...

python-Leetcode 65.搜索旋转排序数组

题目&#xff1a; 整数数组nums按升序排列&#xff0c;数组中的值互不相同 在传递给函数之前&#xff0c;nums在预先未知的某个小标K上进行了旋转&#xff0c;使数组变为[nums[k], nums[k1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]]&#xff0c;小标从0开始计数。…...

蓝桥杯 C/C++ 组历届真题合集速刷(二)

一、0ASC - 蓝桥云课 &#xff08;单位换算&#xff09;算法代码&#xff1a; #include <iostream> using namespace std; int main() {printf("%d",L);return 0; } 二、0时间显示 - 蓝桥云课 &#xff08;单位换算&#xff09;算法代码&#xff1a; #inclu…...

react的redux总结

目录 一、Antd 1.1、基本使用 1.2、自定义主题 二、Redux 2.1、工作流程 2.2、理解react-redux 2.3、优化 2.3.1、简写mapDispatch 2.3.2、Provider组件 2.4、数据共享 2.4.1、编写Person组件 2.4.2、Person组件的reducer 2.4.3、完成数据共享 2.5、求和案例 2.…...

MySQL视图

一、视图的本质与分类 1. 定义 虚拟表&#xff1a;视图不存储数据&#xff0c;本质是保存的查询语句&#xff08;SELECT&#xff09;&#xff0c;每次访问视图时动态执行查询并返回结果。 逻辑抽象&#xff1a;基于一个或多个基表&#xff08;或视图&#xff09;创建&#xf…...

程序化广告行业(69/89):电商素材制作与展示策略解析

程序化广告行业&#xff08;69/89&#xff09;&#xff1a;电商素材制作与展示策略解析 在如今数字化营销的浪潮中&#xff0c;程序化广告成为众多企业精准触达目标客户的有力武器。作为一名在广告技术领域摸爬滚打多年的从业者&#xff0c;深知学习是不断进步的阶梯&#xff…...

【PCB工艺】发光二极管的原理

你真的知道发光二极管为什么会发光吗&#xff1f; 而为什么另一部分二极管不会发光呢&#xff1f; 这篇文章解释元器件发光二极管&#xff08;LED&#xff09;的底层原理。 发光二极管&#xff08;LED, Light Emitting Diode&#xff09; 是一种能够将电能转换为光能的半导体…...

探秘 DeepSeek:开源生态如何推动 AI 技术普惠?

探秘 DeepSeek:开源生态如何推动 AI 技术普惠? 引言 在人工智能(AI)领域,技术的快速发展和广泛应用正在深刻改变我们的生活。然而,AI 的发展往往伴随着资源和技术的集中化问题,大型科技公司凭借其雄厚的资金和人才优势占据了主导地位,而中小企业、研究机构和个人开发…...

远程主机可能不符合glibc和libstdc++ VS Code服务器的先决条件

这是因为我最近更新了vscode&#xff0c; 服务器中有个GLIBC库&#xff0c;VSCode>1.86.0版本对 低于v2.28.0版本的GLIBC不再满足需求。 解决办法 回退到之前能够连接服务器的版本。我之前用的是January 2025 (version 1.97) vscode旧版本下载地址...

JVM性能调优:参数配置×内存诊断×GC调优实战

&#x1f680;前言 “你的Java应用是否还在经历莫名卡顿&#xff1f;半夜被OOM报警惊醒&#xff1f;GC日志像天书看不懂&#xff1f; 本文将用20个真实案例50个关键参数&#xff0c;带你掌握&#xff1a; 参数调优&#xff1a;如何用-XX:UseG1GC让GC暂停从秒级降到毫秒级&…...

pg_waldump 使用方法和输出验证

目录 pg_waldump 使用方法和输出验证一、pg_waldump 基础用法二、验证输出文件正确性三、关键参数 -p 的作用四、验证示例五、注意事项 pg_waldump 使用方法和输出验证 一、pg_waldump 基础用法 命令格式 pg_waldump [选项] [WAL文件路径]-p, --pgdataDIR&#xff1a;指定 Pos…...

Android 定制飞行模式和通话中设置菜单置灰

业务背景 定制需求实现 目标&#xff1a;通话中禁用移动网络设置中的网络模式和APN入口。 Google原生行为分析 在原生Android中&#xff1a; 飞行模式&#xff1a; 无法在通话中开启&#xff1a;系统会自动阻止&#xff0c;因飞行模式会断开通话所需的射频。APN/网络模式修改…...

C# System.Text.Json 中 ReferenceHandling 使用详解

总目录 一、什么是 ReferenceHandling&#xff1f; 1. 概述 ReferenceHandling 是 System.Text.Json 中用于处理对象引用&#xff08;循环引用或重复引用&#xff09;的选项。它允许开发者在序列化和反序列化时控制如何处理对象之间的引用关系。 默认情况下&#xff0c;Syst…...

【开发经验】调试OpenBMC Redfish EventService功能

EventService功能是Redfish规范中定义的一种事件日志的发送方式。用户可以设置订阅者信息(通常是一个web服务器)&#xff0c;当产生事件日志时&#xff0c;OpenBMC可以根据用户设置的订阅者信息与对日志的筛选设置&#xff0c;将事件日志发送到订阅者。 相比于传统的SNMPTrap日…...

【AI工具】FastGPT:开启高效智能问答新征程

前言 在人工智能飞速发展的当下&#xff0c;各类 AI 工具如雨后春笋般涌现。FastGPT 作为一款基于大语言模型&#xff08;LLM&#xff09;的知识图谱问答系统&#xff0c;凭借其强大的数据处理和模型调校能力&#xff0c;为用户带来了便捷的使用体验。今天&#xff0c;就让我们…...

4.8学习总结 贪心算法+Stream流

贪心算法&#xff1a; 找到局部最优->从而推导全局最优。 Java练习&#xff1a; 获取随机验证码&#xff1a; import java.util.*; import java.util.function.BiConsumer; public class test {public static void main(String[] args) {System.out.println(createCode(…...

入选ICLR‘25 Spotlight!深度强化学习(DRL)迎来新突破!

近年来&#xff0c;深度强化学习相关的成果在顶会顶刊上接受度普遍较高&#xff0c;经常上榜ICLR、Nature、Science等。比如ICLR 2025上的一篇Spotlight&#xff0c;由清华团队提出&#xff0c;介绍了一种SmODE网路&#xff0c;让深度强化学习的控制更加丝滑&#xff01; 另外…...

【学习笔记】HTTP和HTTPS的核心区别及工作原理

一、基础概念 HTTP&#xff08;超文本传输协议&#xff09;&#xff1a;明文传输数据&#xff0c;默认端口80&#xff0c;容易被窃听或篡改。 HTTPS&#xff08;HTTP SSL/TLS&#xff09;&#xff1a;通过加密传输数据&#xff0c;默认端口443&#xff0c;保障安全性。 二、…...

gbase8s之数据字典导出脚本(完美)

有时我们需要将表结构转换成数据库设计文档&#xff08;WORD或者其他格式&#xff09;&#xff0c;这时需要使用脚本将表结构导出&#xff0c;转换成可用格式。 该脚本适用于GBase 8s小版本号在3.0之后的版本&#xff08;含有syscolumnsext、syscomments以及syscolcomments表&a…...

java整合socket通信全流程

前言 大家好,由于工作上业务的需要,在java项目中引入了socket通信,特此记录一下,用以备份,本文章中的socket通信实现了,服务端与客户端的双向通讯,以及二者之间的心跳通信,服务端重启之后,客户端的自动重连功能。 原理 Socket通信是计算机网络中常用的一种通信机制…...

【scikit-learn基础】--『预处理』之 正则化

数据的预处理是数据分析&#xff0c;或者机器学习训练前的重要步骤。 通过数据预处理&#xff0c;可以 提高数据质量&#xff0c;处理数据的缺失值、异常值和重复值等问题&#xff0c;增加数据的准确性和可靠性整合不同数据&#xff0c;数据的来源和结构可能多种多样&#xff…...

WHAT - React 使用 Hook 分离计算逻辑与渲染逻辑

目录 原始代码如何优化1. 函数式简洁风格2. hook 封装&#xff08;重点&#xff09;3. 性能优化 原始代码 const GoodList ({ goods }) > {if (goods.length 0) {return <>暂无数据</>;}let totalCount 0;let totalPrice 0;goods.forEach((good) > {tot…...

AI比人脑更强,因为被植入思维模型【49】冰山理论思维模型

giszz的理解&#xff1a;冰山一角&#xff0c;冰山理论并不深奥&#xff0c;就是这个意思。对我启发比较大的&#xff0c;就是人的一个行为&#xff0c;背后可能藏着行为、应对方式、感受、观点、期待、渴望、自我七个层次。更有一个扩展&#xff0c;就是每个人的自我&#xff…...

【Linux】Git的简单使用

&#x1f4dd;前言&#xff1a; 这篇文章我们来讲讲版本控制器Git&#xff0c;主要掌握一些简单的本地仓库与远端仓库之间的文件传输操作。 &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4cb;个人专栏&#xff1a;Linux &#x1f380;CSDN主页 愚润求学 &#x1f30…...

【WebRTC】开源项目Webrtc-streamer介绍

WebRTC-Streamer 这是一个用于通过简单的信令机制&#xff08;参见 api&#xff09;流式传输 WebRTC 媒体源的实验项目&#xff0c;支持以下媒体源&#xff1a; 捕获设备 屏幕捕获 mkv 文件 RMTP/RTSP 源 同时该项目也兼容 WHEP 接口。 注意 * 在线演示已停止&#xff0c…...

Bigemap pro制作行政区域图

Bigemap pro制作行政区域图 第一步&#xff1a;打开bigemap pro软件&#xff0c;右上角加载更多矢量到地图上&#xff0c;加载出来需要的矢量数据&#xff0c;以北京市为例&#xff0c;如图所示&#xff1a; 第二步&#xff1a;在我的矢量图层&#xff0c;点击右键&#xff0c…...

Kotlin 和 spring-cloud-function 兼容问题

错误&#xff1a; [ERROR] Failed to execute goal org.jetbrains.kotlin:kotlin-maven-plugin:1.9.25:compile (compile) on project springdoc-openapi-starter-common: Compilation failure [ERROR] /opt/repository/org/springframework/cloud/spring-cloud-function-conte…...

OpenVINO是什么

OpenVINO&#xff08;Open Visual Inference and Neural Network Optimization&#xff09;是由英特尔&#xff08;Intel&#xff09;开发的一个开源工具套件&#xff0c;用于优化和加速深度学习模型的推理过程&#xff0c;特别是在计算机视觉、自然语言处理和生成式 AI 等领域…...

【学Rust写CAD】38 over_in 函数(alpha256补充方法)

源码 #[inline] // 内联优化标记 pub fn over_in(self, src: Argb, dst: Argb) -> Argb {// 计算目标alpha因子 self * src的alpha通道let dst_alpha self * src.alpha_t();// 预乘源和目标的颜色分量let src_rb src.rb() * self.0; // 源的红蓝分量乘以alpha因子let …...

球类(继承和多态)

父类Ball&#xff0c;设置为抽象类&#xff0c;调用get和set方法创建对象&#xff0c;将子类重写的功能函数抽象化。 // 抽象球类 abstract class Ball {private String name;private double radius; // 半径private double weight; // 重量private double price; // 价格// 构…...