个人建设网站教程,做一手房用什么网站,重庆有什么好玩的吗,网站是否wordpress常见的聚类算法总结
1. K-Means 聚类
描述
K-Means 是一种迭代优化的聚类算法#xff0c;它通过最小化样本点到质心的距离平方和来进行聚类。
思想
随机选择 K 个初始质心。分配每个数据点到最近的质心#xff0c;形成 K 个簇。重新计算每个簇的质心。重复上述步骤…常见的聚类算法总结
1. K-Means 聚类
描述
K-Means 是一种迭代优化的聚类算法它通过最小化样本点到质心的距离平方和来进行聚类。
思想
随机选择 K 个初始质心。分配每个数据点到最近的质心形成 K 个簇。重新计算每个簇的质心。重复上述步骤直到质心不再变化或达到最大迭代次数。
代码例子
from sklearn.cluster import KMeans
import numpy as np# 生成示例数据
X np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]])# 定义 KMeans 模型
kmeans KMeans(n_clusters2, random_state0)# 训练模型
kmeans.fit(X)# 获取聚类结果
labels kmeans.labels_
centroids kmeans.cluster_centers_print(聚类标签:, labels)
print(质心:, centroids)2. 层次聚类 (Hierarchical Clustering)
描述
层次聚类是一种基于树状结构的聚类方法分为自下而上凝聚和自上而下分裂两种。
思想
自下而上每个数据点开始为一个簇不断合并最相似的簇直到所有点合并为一个簇或达到预定的簇数。自上而下开始时将所有数据点视为一个簇不断拆分最不相似的簇直到每个点为一个簇或达到预定的簇数。
代码例子
from sklearn.cluster import AgglomerativeClustering# 定义层次聚类模型
hierarchical AgglomerativeClustering(n_clusters2)# 训练模型
hierarchical.fit(X)# 获取聚类结果
labels hierarchical.labels_print(聚类标签:, labels)
3. DBSCAN 聚类
描述
DBSCANDensity-Based Spatial Clustering of Applications with Noise是一种基于密度的聚类算法能够发现任意形状的簇同时识别噪声点。
思想
选择一个样本点如果在其 ε 邻域内的点数不少于 minPts则将这些点视为一个簇的核心点。将核心点邻域内的点添加到该簇中重复这个过程直到簇不再增长。标记未分配到任何簇的点为噪声点。
代码例子
from sklearn.cluster import DBSCAN# 定义 DBSCAN 模型
dbscan DBSCAN(eps3, min_samples2)# 生成示例数据
X np.array([[1, 2], [2, 2], [2, 3],[8, 7], [8, 8], [25, 80]])# 训练模型
dbscan.fit(X)# 获取聚类结果
labels dbscan.labels_print(聚类标签:, labels)4. 均值漂移 (Mean Shift) 聚类
描述
均值漂移是一种基于密度的聚类算法通过不断移动数据点到高密度区域的中心找到簇的质心。
思想
对每个点计算其在一定窗口带宽内的密度中心将点移动到密度中心。重复上述过程直到所有点都在其密度中心。将密度中心附近的点合并为一个簇。
代码例子
from sklearn.cluster import MeanShift
import numpy as np# 生成示例数据
X np.array([[1, 2], [2, 2], [2, 3],[8, 7], [8, 8], [25, 80]])# 定义均值漂移模型
meanshift MeanShift(bandwidth2)# 训练模型
meanshift.fit(X)# 获取聚类结果
labels meanshift.labels_
centroids meanshift.cluster_centers_print(聚类标签:, labels)
print(质心:, centroids)5. 高斯混合模型 (Gaussian Mixture Model, GMM)
描述
高斯混合模型是一种基于概率模型的聚类方法假设数据由多个高斯分布组成通过期望最大化EM算法估计参数。
思想
初始化每个高斯分布的参数。E步计算每个样本属于每个高斯分布的概率。M步根据概率更新高斯分布的参数。重复上述过程直到参数收敛。
代码例子
from sklearn.mixture import GaussianMixture
import numpy as np# 生成示例数据
X np.array([[1, 2], [2, 2], [2, 3],[8, 7], [8, 8], [25, 80]])# 定义高斯混合模型
gmm GaussianMixture(n_components2, random_state0)# 训练模型
gmm.fit(X)# 获取聚类结果
labels gmm.predict(X)
centroids gmm.means_print(聚类标签:, labels)
print(质心:, centroids)