lol视频网站源码,做公司门户网站的重点,wordpress 点餐,南宁网络推广有几家前言 提醒#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布#xff0c;其中引用内容都会使用链接表明出处#xff08;如有侵权问题#xff0c;请及时联系#xff09;。 其中内容多为一次书写#xff0c;缺少检查与订正#xff0c;如有问题或其他拓展…前言 提醒 文章内容为方便作者自己后日复习与查阅而进行的书写与发布其中引用内容都会使用链接表明出处如有侵权问题请及时联系。 其中内容多为一次书写缺少检查与订正如有问题或其他拓展及意见建议欢迎评论区讨论交流。 文章目录 前言聚类算法经典应用场景自组织映射(Self-Organizing Maps, SOM)优点缺点简单实例函数库实现数学表达 。。。。。。。 聚类算法
聚类算法在各种领域中有广泛的应用主要用于发现数据中的自然分组和模式。以下是一些常见的应用场景以及每种算法的优缺点
经典应用场景 市场细分根据消费者的行为和特征将他们分成不同的群体以便进行有针对性的营销。 图像分割 将图像划分为多个区域或对象以便进行进一步的分析或处理。 社交网络分析识别社交网络中的社区结构。 文档分类自动将文档分组到不同的主题或类别中。 异常检测识别数据中的异常点或异常行为。 基因表达分析在生物信息学中根据基因表达模式对基因进行聚类。
自组织映射(Self-Organizing Maps, SOM)
Self-Organizing Maps (SOM)也称为自组织映射或Kohonen网络是一种无监督的机器学习方法主要用于降维和聚类。以下是SOM聚类方法的优缺点
优点
降维SOM能够将高维数据映射到低维空间通常是二维同时保持数据的拓扑结构这使得数据可视化变得更加容易。拓扑保持SOM在映射过程中努力保持原始数据中相似性关系的拓扑结构即相似的输入向量在映射后仍然接近。无监督学习SOM不需要预先标记的数据可以自动发现数据中的结构和模式。可解释性SOM的输出是一个网格每个网格节点代表一个聚类中心这种结构使得聚类结果具有一定的可解释性。灵活性SOM可以适应不同形状和密度的聚类。噪声鲁棒性SOM对噪声数据有一定的鲁棒性能够在一定程度上忽略小的数据扰动。
缺点
参数敏感SOM的性能对初始参数如网格大小、学习率、邻域函数等非常敏感需要仔细选择和调整。计算复杂度SOM的训练过程可能比较耗时特别是对于大型数据集和复杂的网格结构。缺乏全局优化SOM的训练过程是局部的可能导致无法达到全局最优解。边界效应SOM的边界节点可能没有足够的邻居这可能导致边界区域的映射不够准确。难以确定最佳网格大小选择合适的网格大小是一个挑战过小可能无法捕捉数据的复杂性过大则可能导致过度拟合。对初始化敏感SOM的最终结果可能受到初始权重随机化的影响不同的初始化可能导致不同的聚类结果。不适合非凸聚类SOM在处理非凸形状的聚类时可能表现不佳因为其本质上是基于距离的聚类方法。 总的来说SOM是一种强大的工具适用于多种数据分析和聚类任务但也需要仔细考虑其参数设置和适用场景。在实际应用中可能需要结合其他方法或技术来克服其局限性。
简单实例函数库实现
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from minisom import MiniSom# 生成示例数据
n_samples 500
n_centers 3
X, _ make_blobs(n_samplesn_samples, centersn_centers, cluster_std0.7, random_state42)# 自组织映射的参数
som_size 7 # SOM的网格大小
som MiniSom(som_size, som_size, X.shape[1], sigma1.0, learning_rate0.9)# 初始化并训练SOM
som.random_weights_init(X)
som.train_random(X, num_iteration100)# 获取SOM的输出
win_map som.win_map(X)
labels np.zeros(X.shape[0])# 将每个数据点分配给最近的SOM节点
for i in range(som_size):for j in range(som_size):if (i, j) in win_map:for x in win_map[(i, j)]:# 使用SOM的网格位置来标记index np.argmin(np.linalg.norm(X - x, axis1))labels[index] (i * som_size j)
# 可视化结果
plt.figure(figsize(8, 6))
plt.scatter(X[:, 0], X[:, 1], clabels, cmapviridis, markero, edgecolork, s50)
plt.title(Self-Organizing Map Clustering Result)
plt.xlabel(Feature 1)
plt.ylabel(Feature 2)
plt.grid(True)
plt.show()代码运行结果 学习效果不是很好是很不好原因以后再说吧 数学表达
自组织映射Self-Organizing Maps, SOM是一种基于神经网络的无监督学习算法旨在通过无监督的方式对高维数据进行降维和聚类。其核心思想是通过竞争学习使得相似的数据点在低维空间中尽可能靠近。下面我们将结合数学公式详细讲解SOM的工作原理。 网络结构 SOM通常由一个二维的神经元网格组成每个神经元都有一个权重向量 w j ∈ R n \mathbf{w}_j \in \mathbb{R}^n wj∈Rn与输入数据的维度相同。设网络中有 m × n m \times n m×n 个神经元权重向量表示为 W { w 1 , w 2 , … , w m × n } \mathbf{W} \{ \mathbf{w}_1, \mathbf{w}_2, \ldots, \mathbf{w}_{m \times n} \} W{w1,w2,…,wm×n}输入信号 给定一个输入样本 x ∈ R n \mathbf{x} \in \mathbb{R}^n x∈RnSOM的目标是找到一个最接近的神经元即最佳匹配单元Best Matching Unit, BMU其位置为 b \mathbf{b} b b arg min j ∥ x − w j ∥ 2 \mathbf{b} \arg\min_{j} \|\mathbf{x} - \mathbf{w}_j\|^2 bargjmin∥x−wj∥2 这里 ∥ ⋅ ∥ \|\cdot\| ∥⋅∥ 表示欧几里得距离。更新权重 一旦确定了BMU下一步是更新BMU及其邻域神经元的权重以使它们更接近输入向量 x \mathbf{x} x。权重更新规则如下 w j ( t 1 ) w j ( t ) α ( t ) ⋅ h b , j ( t ) ⋅ ( x − w j ( t ) ) \mathbf{w}_j(t 1) \mathbf{w}_j(t) \alpha(t) \cdot h_{b,j}(t) \cdot (\mathbf{x} - \mathbf{w}_j(t)) wj(t1)wj(t)α(t)⋅hb,j(t)⋅(x−wj(t)) 其中 t t t 表示当前的训练迭代次数。 α ( t ) \alpha(t) α(t) 是学习率随着时间的推移通常会逐步降低。 h b , j ( t ) h_{b,j}(t) hb,j(t) 是邻域函数表示与BMU相邻的神经元的影响程度一般定义为 h b , j ( t ) { exp ( − d b , j 2 2 σ ( t ) 2 ) if j is a neighbor of b 0 otherwise h_{b,j}(t) \begin{cases} \exp\left(-\frac{d_{b,j}^2}{2\sigma(t)^2}\right) \text{if } j \text{ is a neighbor of } b \\ 0 \text{otherwise} \end{cases} hb,j(t){exp(−2σ(t)2db,j2)0if j is a neighbor of botherwise 这里 d b , j d_{b,j} db,j 是BMU和神经元 j j j 之间的距离 σ ( t ) \sigma(t) σ(t) 是邻域范围通常也随着时间衰减。 学习率和邻域函数 学习率 α ( t ) \alpha(t) α(t)通常定义为 α ( t ) α 0 ⋅ ( 1 − t T ) \alpha(t) \alpha_0 \cdot \left(1 - \frac{t}{T}\right) α(t)α0⋅(1−Tt) 其中 α 0 \alpha_0 α0 是初始学习率 T T T 是总训练迭代次数。邻域范围 σ ( t ) \sigma(t) σ(t)通常定义为 σ ( t ) σ 0 ⋅ ( 1 − t T ) \sigma(t) \sigma_0 \cdot \left(1 - \frac{t}{T}\right) σ(t)σ0⋅(1−Tt) 其中 σ 0 \sigma_0 σ0 是初始邻域范围。 算法步骤 SOM算法的主要步骤如下 初始化权重向量 W \mathbf{W} W。对于每个输入样本 x \mathbf{x} x: 找到BMU b \mathbf{b} b。更新BMU及其邻域的权重。 重复步骤2直到达到设定的训练次数或收敛条件。 结果与聚类 训练完成后SOM将高维数据映射到低维网格上具有相似特征的数据点会被映射到相邻的神经元。通过分析每个神经元的权重向量可以识别出数据的聚类结构。 总结 自组织映射SOM是一种强大且直观的聚类和可视化方法。通过竞争学习和权重更新机制SOM能够有效地将高维数据映射到低维空间同时保持数据的拓扑结构。其数学基础包括欧几里得距离计算、权重更新规则以及邻域函数的设计是理解SOM算法的关键。 。。。。。。。 学习日记_20241110_聚类方法K-Means 学习日记_20241115_聚类方法层次聚类 学习日记_20241115_聚类方法DBSCAN 学习日记_20241117_聚类方法高斯混合模型 学习日记_20241123_聚类方法高斯混合模型续 学习日记_20241123_聚类方法MeanShift 学习日记_20241126_聚类方法谱聚类Spectral Clustering 学习日记_20241126_聚类方法聚合聚类Agglomerative Clustering 学习日记_20241126_聚类方法Affinity Propagation 九个聚类算法终于搞完了终于。 我要刷视频放松去了。