11- 聚类算法 (KMeans/DBSCAN/agg) (算法)

K-means聚类模型(超详细,含案例代码) K-means是一种常用的聚类算法,用于将数据集中的观测点分为不同的群组或簇。聚类是一种无监督学习方法,其目标是发现数据中隐藏的结构,将相似的数据点划分为同一组,同时将不相似的数据点划分为不同的组。 阅读详情

聚类算法

  • 聚类算法和降维算法那都属于无监督算法。
  • KMeans 是以一个值为中心, 然后所有其他点到该点距离最小值的累积和。
kmeans = KMeans(n_clusters=3)     # n_clusters 分类数量
kmeans.fit(data.iloc[:,1:])       # 无监督,只需要给数据X就可以
  • DBSCAN 算法是以某点为起始点, 如果到该点距离的附近点的数量达到一定数量就可以进入该集合, 类似传销。
dbscan = DBSCAN(eps = 0.2,min_samples=3)
dbscan.fit(X)
  • agg 算法是先找距离最近的点, 再根据距离的远近进行不断聚合。
agg = AgglomerativeClustering(n_clusters=6,linkage='ward') # 最近的距离,作为标准
agg.fit(X)


一  聚类算法介绍

1.1、聚类作用

  • 知识发现 发现事物之间的潜在关系
  • 异常值检测
  • 特征提取 数据压缩的例子

1.2、有监督与无监督学习

  • 有监督:
    • 给定训练集 X 和 标签Y
    • 选择模型
    • 学习(目标函数的最优化), 训练fit
    • 生成模型(本质上是一组参数、方程)
    • 根据生成的一组参数进行预测分类等任务
  • 无监督:
    • 拿到的数据只有X ,没有标签,只能根据X的相似程度做一些事情。
    •  Clustering 聚类
    • 对于大量未标注的数据集,按照内在相似性来分为多个类别(簇) 目标:类别内相似度大,类别间相似小。
    • 也可以用来改变数据的维度,可以将聚类结果作为一个维度添加到训练数据中。
  • 降维算法,数据特征变少

1.3、数据间的相似度

  • 每一条数据都可以理解为多维空间中的一个点。
  • 可以根据点和点之间的距离来评价数据间的相似度
  • 近朱者赤近墨者黑!

数据间的距离类型:

  • P = 1 曼哈顿距离:  
    • \bg_white \small d(X,Y) = |x_1 - y_1| + |x_2 - y_2| + .... + |x_n - y_n|
    • 在二维空间中可以看出,这种距离是计算两点之间的直角边距离,相当于城市中出租汽车沿城市街道拐直角前进而不能走两点连接间的最短距离。
  • P = 2 欧氏距离,就是两点之间的直线距离(以下简称欧氏距离)
    • d = \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}
  • P = 无穷,切比雪夫距离 ,哪个维度差值最大就是哪个差值作为距离。

1.4、余弦距离

将数据看做空间中的点的时候,评价远近可以用欧氏距离或者余弦距离。
计算过程如下:

  • 将数据映射为高维空间中的点(向量)
  • 计算向量间的余弦值
  • 取值范围[-1,+1] 越趋近于1代表越相似,越趋近于-1代表方向相反,0代表正交
  • 余弦相似度可以评价文章的相似度,从而实现对文章,进行分类。

cos\theta = \frac{x_1x_2 + y_1y_2}{\sqrt{x_1^2 + y_1^2} \times \sqrt{x_2^2 + y_2^2}}

二  Kmeans

2.1、聚类原理

  • 将N个样本映射到K个簇中
  • 每个簇至少有一个样本

基本思路:

  • 先给定K个划分,迭代样本与簇的隶属关系,每次都比前一次好一些
  • 迭代若干次就能得到比较好的结果

2.2、Kmeans算法原理

算法步骤:

  • 选择K个初始的簇中心
  • 逐个计算每个样本到簇中心的距离,将样本归属到距离最小的那个簇中心的簇中
  • 每个簇内部计算平均值,更新簇中心
  • 开始迭代

2.3、KMeans优缺点

  • 优点:
    • 简单,效果不错
  • 缺点:
    • 对异常值敏感
    • 对初始值敏感
    • 对某些分布聚类效果不好

2.4、Kmeans损失函数

  •  \sum\limits_{i=0}^{n}\underset{\mu_j \in C}\min(||x_i - \mu_j||^2)
  • 其中 μ 是簇的均值向量,或者说是质心。
  • 其中 ||x_i - \mu_j||^2 代表每个样本点到均值点的距离(其实也是范数)。

2.5、Kmeans初步使用

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
import pandas as pd

# 需要将亚洲国家队,分成三个类别
# 只有历年的统计数据,没有目标值(类别,等级)
data = pd.read_csv('./AsiaFootball.txt')

# 执行多次,分类结果会有所不同
kmeans = KMeans(n_clusters=3)  # n_clusters 分类数量
# 无监督,只需要给数据X就可以
kmeans.fit(data.iloc[:,1:])
y_ = kmeans.predict(data.iloc[:,1:])# 聚类算法预测、划分的类别
c = data['国家'].values
for i in range(3):
    cond = y_ == i#索引条件
    print('类别是%d的国家有:'%(i),c[cond])

2.6、Kmeans聚类算法K值选择

针对某个样本的轮廓系数s为:

s= \frac{b - a}{max(a, b)}

  • a:某个样本与其所在簇内其他样本的平均距离
  • b:某个样本与其他簇样本的平均距离

聚类总的轮廓系数SC为:SC = \frac{1}{N}\sum\limits_{i = 1}^Ns_i,所有样本的 s_i 的均值称为聚类结果的轮廓系数,是该聚类是否合理、有效的度量。

import numpy as np
from sklearn import datasets
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 聚类:轮廓系数,对聚类的评价指标,对应数学公式
from sklearn.metrics import silhouette_score

# 创建数据
# 假数据,数据X划分成3类
X,y = datasets.make_blobs(centers=3)
plt.scatter(X[:,0],X[:,1],c = y)

# 指定不同的k,寻找最佳聚类类别数目
# 可以画图,一目了然,数据简单,属性只有两个,所以可以画图
# 属性多,无法可视化,评价指标
# 轮廓系数
plt.rcParams['font.sans-serif'] = 'KaiTi'
plt.rcParams['font.size'] = 18
plt.rcParams['axes.unicode_minus'] = False
score = []
for i in range(2,7):
    kmeans = KMeans(n_clusters=i)
    kmeans.fit(X)
    y_ = kmeans.predict(X)# 预测类别 == 标签
#     plt.scatter(X[:,0],X[:,1],c = y_)
    score.append(silhouette_score(X,y_))
#     print('当聚类类别是6的时候,评价指标轮廓系数: ',silhouette_score(X,y_))
plt.plot(range(2,7),score)
plt.xlabel('K值')
plt.ylabel('轮廓系数',c = 'red')
# 结论:,当k值是3的时候,轮廓系数最大,这个时候,说明划分效果最好!

 2.7、Kmeans图像压缩

import matplotlib.pyplot as plt # plt 用于显示图片
from sklearn.cluster import KMeans
import numpy as np
plt.figure(figsize=(8,4))

# 加载图片显示原图
pixel = plt.imread('11-bird.png')
plt.subplot(1,2,1)
plt.imshow(pixel)

# 聚类运算,压缩图片
pixel = pixel.reshape((128*128 , 3))
kmeans = KMeans(n_clusters=8).fit(pixel)

# 聚类结果合成新图片
newPixel = kmeans.cluster_centers_[kmeans.labels_].reshape(128,128,3)
plt.subplot(1,2,2)
plt.imshow(newPixel)

3、DBSCAN

3.1、算法介绍

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的空间聚类算法。该算法将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,它将簇定义为密度相连的点的最大集合。
基于密度这点有什么好处呢,我们知道Kmeans聚类算法只能处理球形的簇,也就是一个聚成实心的团(这是因为算法本身计算平均距离的局限)。但往往现实中还会有各种形状,这个时候,那些传统的聚类算法显然就悲剧了。于是就思考,样本密度大的成一类呗。这就是DBSCAN聚类算法 .

3.2、DBSCAN参数解析

  • 参数一 eps:DBSCAN算法参数,即我们的eps邻域的距离阈值,和样本距离超过eps的样本点不在eps邻域内。默认值是0.5,一般需要通过在多组值里面选择一个合适的阈值。eps过大,则更多的点会落在核心对象的eps邻域,此时我们的类别数可能会减少, 本来不应该是一类的样本也会被划为一类。反之则类别数可能会增大,本来是一类的样本却被划分开。
  • 参数二 min_samples:DBSCAN算法参数,即样本点要成为核心对象所需要的eps 邻域的样本数阈值。默认值是5。
  • 参数与三 metrics:距离度量参数, 一般使用的欧氏距离。

3.3、DBSCAN使用示例

import numpy as np
from sklearn import datasets
from sklearn.cluster import KMeans,DBSCAN
import matplotlib.pyplot as plt

# y中是两类:0,1
X,y = datasets.make_circles(n_samples=1000,noise=0.05,factor = 0.5)  
# 创建一个大圆包含小圆的样本集
# centers = [(1.5,1.5)] 元组,代表着,中心点的坐标值
# y1一类:0 + 2
X1,y1 = datasets.make_blobs(n_samples=500,n_features=2,
                            centers=[(1.5,1.5)],cluster_std=0.2)

# 将circle和散点进行了数据合并
X = np.concatenate([X,X1])
y = np.concatenate([y,y1 + 2])
plt.scatter(X[:,0],X[:,1],c = y)

# 根据距离,划分‘势力范围’
kmeans = KMeans(3)
kmeans.fit(X)
y_ = kmeans.labels_
plt.scatter(X[:,0],X[:,1],c = y_)

# 使用DBSCAN算法可以较好的区分
dbscan = DBSCAN(eps = 0.2,min_samples=3)
dbscan.fit(X)
y_ = dbscan.labels_
plt.scatter(X[:,0],X[:,1],c = y_)

4、分层聚类

4.1、算法介绍

分层聚类输出层次结构,这种结构比平面聚类返回的非结构化聚类集更具信息性。

分层聚类法(hierarchical cluster method)一译“系统聚类法”。聚类分析的一种方法。其做法是开始时把每个样品作为一类,然后把最靠近的样品(即距离最小的群品)首先聚为小类,再将已聚合的小类按其类间距离再合并,不断继续下去,最后把一切子类都聚合到一个大类。

4.2、算法原理

层次聚类 (Hierarchical Clustering) 是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点。创建聚类树有自下而上合并和自上而下分裂两种方法。

我们着重看一下自底向上的合并算法:

  • Single Linkage:  方法是将两个组合数据点中距离最近的两个数据点间的距离作为这两个组合数据点的距离。这种方法容易受到极端值的影响。两个很相似的组合数据点可能由于其中的某个极端的数据点距离较近而组合在一起。
  • Complete Linkage:  complete Linkage的计算方法与Single Linkage相反,将两个组合数据点中距离最远的两个数据点间的距离作为这两个组合数据点的距离。Complete Linkage的问题也与Single Linkage相反,两个不相似的组合数据点可能由于其中的极端值距离较远而无法组合在一起。
  • Average Linkage:  Average Linkage的计算方法是计算两个组合数据点中的每个数据点与其他所有数据点的距离。将所有距离的均值作为两个组合数据点间的距离。这种方法计算量比较大,但结果比前两种方法更合理。  我们使用Average Linkage计算组合数据点间的距离。下面是计算组合数据点(A,F)到(B,C)的距离,这里分别计算了(A,F)和(B,C)两两间距离的均值。

4.3、参数介绍

  • n_clusters:  划分类别数目
  • linkage:  度量两个子类的相似度时所依据的距离
    • Single Linkage:将两个数据点集中距离最近的两个数据点的距离作为两个点集的距离。
    • Complete Linkage:将两个点集中距离最远的两个数据点的距离作为这两个点集的距离。
    • 上述两种方法容易受到极端值的影响,计算大样本集效率较高。
    • Average Linkage:计算两个点集中的每个数据点与其他所有数据点的距离。将所有距离的均值作为两个点集间的距离。这种方法计算量比较大,不过这种度量方法更合理。
    • Ward:最小化簇内方差。
  • connectivity:  连接性约束,作用:只有相邻的簇才能合并在一起,进行聚类!

4.4、算法案例

import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d.axes3d as p3
from sklearn.cluster import AgglomerativeClustering
from sklearn.datasets import make_swiss_roll

# 创建数据
X,y = datasets.make_swiss_roll(n_samples=1500,noise = 0.05)
fig = plt.figure(figsize=(12,9))
a3 = fig.add_subplot(projection = '3d')
a3.scatter(X[:,0],X[:,1],X[:,2],c = y)
a3.view_init(10,-80)

# Kmeans只负责分类,随机性,类别是数字几,不固定
clf = KMeans(n_clusters=6)
clf.fit(X)
y_ = clf.labels_
fig = plt.figure(figsize=(12,9))
a3 = plt.subplot(projection = '3d')
a3.scatter(X[:,0],X[:,1],X[:,2],c = y_)
a3.view_init(10,-80)

# 分层聚类
agg = AgglomerativeClustering(n_clusters=6,linkage='ward') # 最近的距离为标准
agg.fit(X)
y_ = agg.labels_
fig = plt.figure(figsize=(12,9))
a3 = plt.subplot(projection = '3d')
a3.scatter(X[:,0],X[:,1],X[:,2],c = y_)
a3.view_init(10,-80)

对于这种非欧几何的数据下,可见如果没有设置连接性约束,将会忽视其数据本身的结构,强制在欧式空间下聚类,于是很容易形成了上图这种跨越流形的不同褶皱。

5、分层聚类改进

(连接性约束,对局部结构进行约束)

from sklearn.neighbors import kneighbors_graph# graph图形的意思
# 邻居数量变少,认为,条件宽松
conn = kneighbors_graph(X,n_neighbors=10) #采用邻居,进行约束
agg = AgglomerativeClustering(n_clusters=6,connectivity=conn,linkage='ward')
# 最近的距离,作为标准
agg.fit(X)
y_ = agg.labels_
fig = plt.figure(figsize=(12,9))
a3 = fig.add_subplot(projection = '3d')
a3.scatter(X[:,0],X[:,1],X[:,2],c = y_)
a3.view_init(10,-80)

一文读懂pg AGG聚集算子计划与执行(更新中) 一文读懂openGauss/pg AGG聚集算子计划与执行Agg聚集算子与聚集操作(函数)基本概念执行策略聚集操作基本执行步骤与元数据计划生成与数据结构确定操作策略关键数据结构思考数据结构基本执行流程PLAIN-AGG并行执行流程grouping set\cube的执行策略代码走读如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart 阅读详情

相关推荐

DBSCAN聚类原理及详解

DBSCAN聚类 (1)DBSCAN简介 DBSCAN是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。 DBSCAN中的几个定义: Ε邻域:给定对象半径为Ε内的区域称为该对象的Ε邻域; 核心对象:如果给定对象Ε邻域内的样本点数大于等于min_samples,则称该对...

weixin_43224539的博客 1万+

K-Means

K-Means 是一种非监督学习,解决的是聚类问题。K 代表的是 K 类,Means 代表的是中心,可以理解这个算法的本质是确定 K 类的中心点,当找到了这些中心点,也就完成了聚类。 工作原理: 选取 K 个点作为初始的类中心点,这些点一般都是从数据集中随机抽取的; 将每个点分配到最近的类中心点,这样就形成了 K 个类,然后重新计算每个类的中心点; 重复第二步,直到类不发生变化,或者也可以设置最大迭代次数,这样即使类中心点发生变化,但是只要达到最大迭代次数就会结束。 ...

光尘的博客 1934

用ChatGPT协同跑通K-Means与DBSCAN聚类全流程

聚类是无监督学习的核心技术,其本质是基于数据内在结构发现自然分组。原理上依赖距离度量、密度估计或概率分布假设,技术价值在于无需标签即可挖掘用户分群、异常检测和设备分组等关键模式。典型应用场景包括电商客户分层、IoT传感器异常识别及金融风控群体画像。然而,传统聚类面临参数玄学、评估模糊与结果难解释三大瓶颈。本文聚焦人工智能辅助聚类实践,将ChatGPT作为智能协作者,深度嵌入数据清洗、特征工程、算法选型、参数调优与业务解读全链路,尤其强化对K-Means和DBSCAN两大主流算法的实操闭环支持。

anjueci1221的博客 419

kmeans.fit_predict 和 kmeans.fit有什么区别

方法在训练模型的同时,还会返回每个样本的聚类标签。如果需要训练模型并立即得到聚类结果,可以使用。是 scikit-learn 库中用于执行 K-means 聚类算法的类。如果只需要训练模型而不需要立即得到聚类结果,可以使用。是该类中的两个方法,的主要区别在于返回的内容和用途。方法仅用于训练模型,而。

hello! 2961

Scikit-Learn聚类实战:K-Means与DBSCAN原理、调参与业务落地

聚类是无监督学习的核心技术,指在不依赖预设标签的前提下,依据数据点间的相似性自动发现内在分组结构。其本质基于距离或密度的数学建模,通过优化簇内紧凑性与簇间分离度实现结构识别。Scikit-Learn凭借统一接口、稳定实现和详实文档,成为工业界聚类任务的事实标准。K-Means适用于球形簇与规模均衡场景,但对异常值敏感且需预设K值;DBSCAN则擅长挖掘任意形状、含噪声的真实分布,参数eps与min_samples需结合领域知识科学设定。轮廓系数等评估指标不仅反映模型质量,更可诊断各簇稳定性,支撑可解释的业务

weixin_30856725的博客 411

用Spotify音频特征做音乐流派聚类的实战指南

音乐信息检索(MIR)中,音频特征提取是将原始声波转化为可计算向量的关键步骤。其核心原理在于通过统计建模(如能量、节奏、情绪值等12维Spotify特征)量化听觉感知,并借助主成分分析(PCA)与标准缩放消除量纲干扰和多重共线性。这一技术路径显著提升了无监督聚类在风格识别中的鲁棒性,广泛应用于智能歌单生成、版权相似性分析及流派演化研究。本文聚焦danceability、energy等高频特征的实际处理链路,完整复现从数据清洗、多算法对比(K-Means/层次聚类/OPTICS)到Silhouette评估与热

weixin_34377919的博客 594

聚类算法全解析:从K-Means到DBSCAN的数学建模实战指南

聚类分析作为无监督学习的核心技术,旨在探索数据内在结构,将相似样本自动分组。其原理基于距离度量(如欧氏距离、余弦相似度)评估样本间相似性,通过迭代优化实现簇内紧凑、簇间分离。该技术价值在于无需预先定义标签,即可从无标注数据中发现潜在模式与规律,广泛应用于客户细分、异常检测、图像分割等场景。本文聚焦K-Means、DBSCAN等主流算法,结合特征工程与模型评估,详解如何通过标准化处理与轮廓系数优化聚类效果,为数学建模与数据挖掘提供系统方法论。

优快云头条 703

从传统RFM到AI聚类:构建自动化用户分群系统的技术实践

在用户精细化运营领域,RFM模型作为经典的客户价值分析框架,通过最近消费时间、消费频率和消费金额三个维度对用户进行分层。传统基于规则的手工分群方法依赖人工经验,难以适应动态变化的业务需求。无监督学习中的聚类算法为解决这一问题提供了技术路径,它能够从数据分布中自动发现用户群体的自然结构,实现从经验驱动到数据驱动的智能分群。这种技术方法的核心价值在于提升运营策略的精准性和自动化水平,广泛应用于电商、金融、零售等行业的用户生命周期管理、个性化营销和资源优化分配场景。本文以K-Means、DBSCAN等算法为例,结

weixin_33866037的博客 464

聚类算法全解析:从K-Means到DBSCAN,实战指南与避坑要点

聚类作为无监督学习的核心方法,旨在探索数据内在结构,无需预先标注即可发现隐藏模式。其原理基于距离或相似性度量,将数据点分组,使组内相似度高、组间差异大。在数据挖掘和机器学习中,聚类技术价值显著,能揭示用户分群、异常检测等深层信息。应用场景广泛,涵盖客户细分、图像分割、社交网络分析等领域。本文聚焦K-Means、DBSCAN等主流算法,深入探讨轮廓系数等评价指标,并结合电商用户案例,详解数据标准化、特征工程等实战要点,帮助读者掌握聚类在工程实践中的关键应用。

weixin_34184158的博客 520

K-Means与Affinity Propagation聚类算法实战对比

聚类是无监督学习的核心任务,本质是发现数据内在结构并划分相似样本。K-Means基于几何距离最小化,依赖球形簇假设与预设簇数K,适合标准化、低噪声、业务先验明确的场景;Affinity Propagation则通过相似度矩阵与消息传递机制,让数据自主涌现簇结构,天然支持非球形、不均衡及语义驱动的分组。二者差异不在性能高低,而在于建模范式——前者是参数约束型优化,后者是关系建模型协商。在电商用户分群、设备状态识别、日志行为分析等真实工业场景中,选择关键取决于数据是否具备可定义的相似性、业务能否容忍K值强设定,

bk_lin的专栏 449

K-means聚类实战:从算法原理到业务分层落地

K-means是一种经典的无监督聚类算法,其核心基于欧氏距离与质心迭代优化,通过最小化簇内平方和(WCSS)实现数据分组。它虽结构简洁,但实际应用中高度依赖数据标准化、K值选择与初始化策略,技术细节直接影响业务可解释性。该算法在用户分层、客户价值分析、设备行为归类等场景中具备突出优势——输出硬标签、计算高效、结果直观,尤其适合处理销售日志、交易记录、传感器读数等原始‘脏数据’。本文聚焦K-means的工程落地本质,深入解析K-means++初始化、RobustScaler预处理、业务驱动的K值决策等关键实践

cucanqi9387的博客 614

聚类算法选型指南:K-Means、K-Means++与DBSCAN实战解析

聚类是无监督学习的核心技术,用于在无标签数据中发现自然形成的结构化分组。其本质并非分类,而是基于距离或密度对数据空间进行拓扑建模,揭示高密度区域(簇)与低密度区域(噪声)的分布规律。K-Means依赖球形假设与均值中心,适合各向同性、尺度一致的数据;K-Means++通过概率化初始化显著提升稳定性与收敛质量;DBSCAN则以密度为核心,无需预设簇数,能自动识别噪声并适应任意形状簇。三者共同构成从规则结构到复杂形态的完整工具链,广泛应用于用户分群、异常检测、地理热点识别和文档主题挖掘等场景。

aikb6223的博客 361

麒麟V10 ARM环境离线部署MySQL:从依赖缺失到服务自启的完整避坑指南

本文详细介绍了在麒麟V10 ARM环境下离线部署MySQL的完整流程,包括依赖缺失解决方案、目录配置、服务自启设置及性能调优。特别针对国产操作系统和ARM架构的兼容性问题,提供了实用的避坑指南和优化建议,帮助用户高效完成MySQL部署与维护。

weixin_28741413的博客 408

企业级用户画像实战:RFM模型与KMeans聚类从原理到落地

用户画像的核心在于回答用户是谁、价值多少及未来行为,而RFM模型与KMeans聚类是实现这一目标的基础技术。RFM通过最近消费时间、消费频率和消费金额三个维度量化用户价值,KMeans则基于这些指标自动分群,使分群运营可执行。该组合广泛应用于电商、零售等场景,能有效提升转化率与用户留存。本文深入解析RFM指标设计、KMeans调参细节及实战避坑指南,帮助团队从数据中挖掘用户价值。

weixin_34013044的博客 249

.NET 8 组件之IOC容器组件

NET 8中的IOC容器组件继承了前几代的优良传统,并在性能、扩展性、灵活性等方面进行了诸多优化,使得它在现代应用开发中依然保持领先地位。通过合理使用IOC容器,开发者可以更高效地管理依赖关系,编写更加模块化、可维护的代码。随着.NET生态的不断发展,IOC容器将继续扮演关键角色,为开发者提供强大的依赖管理功能。

hy_4377的博客 1528

分布式推理服务(策略:数据并行、张量并行、流水线并行、专家并行)技术分析

摘要:分布式推理突破单GPU内存和算力限制,支持大模型部署。四种核心策略包括: 数据并行:复制模型拆分数据,提升吞吐但内存效率低; 流水线并行:模型分阶段执行,支持超大模型但存在计算气泡; 张量并行:拆分层内矩阵运算,延迟低但通信开销大; 专家并行:动态激活MoE模型专家,计算高效但路由复杂。实际应用中常组合策略(如3D并行),需权衡模型规模、硬件条件与性能目标。

技术引领业务创新 939

机器学习数据挖掘聚类分析全解析:9 大算法 + 6 大实战(10000字·22 段代码·6 张原创图)

聚类分析是一套强大的无监督学习工具集,它如同一位敏锐的数据探险家,在未知的标签荒漠中,依据“物以类聚”的古老法则,为我们揭示数据内部隐藏的群体结构和自然模式。从简单高效的K-Means,到能适应复杂形状的DBSCAN,再到展现层次关系的层次聚类,每种算法都是解决特定问题的利器。理解它们的原理、优缺点和适用场景,是开启数据探索之旅、进行有效客户分群、异常检测乃至更高级模式发现的关键第一步。在实践中,往往需要结合业务理解,尝试多种方法,并通过可视化与评估指标来选择和优化模型。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 299

基于Spring Boot 3 + Vue 3 + Vite的现代化社区订餐系统设计与实现

本文将详细阐述系统的整体架构、数据库设计、核心功能模块(用户管理、餐厅管理、菜品浏览、购物车、订单管理)的实现细节,并提供关键代码示例。<el-input v-model="loginForm.password" type="password" placeholder="密码" prefix-icon="Lock" show-password />.requestMatchers("/api/auth/**", "/api/dishes/public/**").permitAll() // 公开接口。

2201_76125393的博客 468

K-Means聚类算法:从核心原理到实战应用全解析

聚类分析是机器学习中一种重要的无监督学习方法,其核心思想是将相似的数据点自动分组,实现“物以类聚”。K-Means算法通过迭代优化,以最小化组内平方误差和为目标,不断调整簇中心(质心)的位置并重新分配数据点,最终形成稳定的聚类结果。该算法因其原理直观、计算高效,在用户分群、图像分割、异常检测等场景中具有重要技术价值。在实际应用中,K-Means算法常面临K值选择、初始质心敏感、对噪声和离群点鲁棒性差等挑战。针对这些问题,衍生出K-Means++、Mini-Batch K-Means等改进变体,以及肘部法则、

weixin_30780649的博客 372

XSS漏洞之PDF生成:从XSS到服务端任意文件读取

XSS是最为常见的Web漏洞之一,多年来连续入选OWASP TOP10,相信大家都耳熟能详。 它是一种代码注入类的攻击,是一种客户端侧的攻击,攻击者通过在Web应用中注入恶意JavaScript代码,通过点击URL,最终在受害者浏览器端执行的一种漏洞。主要有反射型XSS、存储型XSS、基于DOM的XSS三类。XSS一些比较常规的危害大概有:重定向浏览器、窃取Cookie、浏览器劫持等。本文章侧重于发现XSS后的进一步利用。 主要介绍在某次实际测试过程中,发现XSS漏洞之后,如何进一步的利用,最终通过XSS达

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 3776

【007】C++编程必知:原码、补码、反码的全面解读

计算机存储的是数据的补码。原码:计算机中对数字的二进制定点表示方法。比如123的原码是0111 1011。无符号数:原码=反码=补码。有符号数:要分正数和负数,正数的最高位为0,负数的最高位为1。其中,正数的原码、反码、补码都是相同的;负数的反码等于原码的符号数(最高位)不变,其他位取反;补码等于反码+1。比如:-123的原码是1111 1011,反码为1000 0100,补码为1000 0101。原码、补码和反码都是用于计算机表示有符号整数的方法。

Lion_Long的博客 2916

聚类分析实战:K-Means、层次聚类与DBSCAN代码实现与调优

聚类分析是一种无监督学习方法,通过相似度度量将数据分组,广泛应用于用户分群、异常检测等场景。其核心原理包括距离计算和迭代优化,技术价值在于发现数据内在结构。在电商、零售等领域,聚类可辅助决策。本文详细讲解K-Means、层次聚类和DBSCAN的代码实现,涵盖参数调优和常见问题排查,帮助读者快速掌握聚类分析。

weixin_34246529的博客 212

13.0 针对跳转不存在Activity崩溃处理,改成弹Toast提示,去掉崩溃弹窗,避免app崩溃退出

在开发过程中,在app跳转到某个没注册的Acitivity时,往往会出现崩溃的场景,这样也不好,接下来就从framework中来拦截这个崩溃,改成toast提示,

安卓兼职framework和app工程师的博客 46

无监督学习实战 2026 版:聚类降维与推荐系统的完整项目

本文介绍无监督学习在电商用户分群和电影推荐系统中的应用。第一部分通过RFM模型和K-Means聚类实现电商用户价值分群,详细讲解了RFM模型原理,并提供了模拟电商用户数据的Python代码。第二部分将使用协同过滤和SVD矩阵分解构建电影推荐系统。文章涵盖K-Means、DBSCAN、PCA、t-SNE等核心无监督学习算法,通过两个完整项目展示从数据预处理到模型应用的全流程,帮助读者掌握无监督学习在实际业务中的应用。

热爱技术与前沿创新,深耕科技领域,在科创中精进自我;探索技术乐趣,分享技术干货与成长心得,以技术为伴,热爱生活,在科创与生活中双向成长。 484

ncode控件使用总结

数据格式txt转s3t #HEADER #TITLES Absolute_Time,COG_Ax,COG_Ay,COG_Az,LF_SPINDLE_AZ #UNITS ,g,g,g,g, #DATATYPES Double,Float,Float,Float,Float #DATA 2. 导入s3t数据 3. 输入数据控件 直接拖入数据源或者添加控件数据 4.

技术联盟 2005

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

基于RFMT模型与K-Means聚类的客户画像构建实战

客户关系管理(CRM)与精准营销的核心在于理解用户行为。RFM模型作为经典的分析框架,通过最近一次消费(Recency)、消费频率(Frequency)和消费金额(Monetary)三个维度量化客户价值。其扩展模型RFMT进一步引入时间跨度(Time),能更全面地刻画客户生命周期与活跃状态。在技术实现上,数据标准化是处理多量纲特征的关键步骤,而K-Means聚类算法则能将具有相似RFMT特征的客户自动归为不同群体,从而实现客户分群。这种数据驱动的方法在零售、电商等场景中具有极高价值,能够帮助企业识别高价值用

weixin_34056162的博客 340

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 03- SVC 支持向量机做人脸识别 (项目三)
下一篇: 12- 降维算法 (PCA降维/LDA分类/NMF) (数据处理)
处女座_三月
博客等级 码龄6年 1482粉丝 410原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值