AI 大模型之 机器学习 无监督学习 聚类 / 降维 / 自组织映射 实践

AI人工智能阿木 发布于 3 天前 3 次阅读


无监督学习实践:聚类、降维与自组织映射

无监督学习是机器学习的一个重要分支,它关注于从未标记的数据中寻找隐藏的结构和模式。无监督学习算法不需要标签信息,通过分析数据自身的特征来揭示数据中的内在规律。本文将围绕无监督学习的三个重要应用:聚类、降维和自组织映射,通过Python代码实践来探讨这些技术。

聚类

聚类是将数据集划分为若干个组(簇),使得同一簇内的数据点彼此相似,而不同簇的数据点彼此不同。常见的聚类算法有K-means、层次聚类、DBSCAN等。

K-means聚类

K-means算法是一种基于距离的聚类方法,它通过迭代优化聚类中心,使得每个数据点与最近的聚类中心的距离最小。

python

from sklearn.cluster import KMeans


import numpy as np

创建一些随机数据


data = np.random.rand(100, 2)

初始化K-means聚类器


kmeans = KMeans(n_clusters=3, random_state=0)

拟合数据


kmeans.fit(data)

获取聚类标签


labels = kmeans.labels_

获取聚类中心


centers = kmeans.cluster_centers_


层次聚类

层次聚类是一种自底向上的聚类方法,它通过合并相似度高的簇来形成更大的簇。

python

from sklearn.cluster import AgglomerativeClustering


import matplotlib.pyplot as plt

创建一些随机数据


data = np.random.rand(100, 2)

初始化层次聚类器


hierarchical = AgglomerativeClustering(n_clusters=3)

拟合数据


hierarchical.fit(data)

获取聚类标签


labels = hierarchical.labels_

绘制聚类结果


plt.scatter(data[:, 0], data[:, 1], c=labels)


plt.show()


降维

降维是将高维数据转换成低维数据的过程,这有助于减少数据冗余,提高计算效率,同时可能揭示数据中的潜在结构。

主成分分析(PCA)

主成分分析是一种常用的降维方法,它通过找到数据的主要成分来降低维度。

python

from sklearn.decomposition import PCA


import matplotlib.pyplot as plt

创建一些随机数据


data = np.random.rand(100, 2)

初始化PCA


pca = PCA(n_components=1)

拟合和转换数据


data_reduced = pca.fit_transform(data)

绘制降维后的数据


plt.scatter(data_reduced[:, 0], data_reduced[:, 1])


plt.show()


自组织映射(SOM)

自组织映射是一种无监督学习算法,它通过竞争学习的方式将高维数据映射到低维空间,通常用于可视化高维数据。

python

from minisom import MiniSom


import matplotlib.pyplot as plt

创建一些随机数据


data = np.random.rand(100, 2)

初始化SOM


som = MiniSom(x=10, y=10, input_len=2, sigma=1.0, learning_rate=0.5)

训练SOM


som.train_random(data, 100)

获取获胜神经元的位置


winners = som.winner_map(data)

绘制SOM结果


plt.imshow(winners, cmap='gray')


plt.show()


总结

本文通过Python代码实践介绍了无监督学习中的聚类、降维和自组织映射技术。这些技术在实际应用中有着广泛的应用,如数据挖掘、图像处理、生物信息学等。通过理解这些算法的原理和实现,我们可以更好地利用无监督学习来探索数据中的隐藏模式。

注意:以上代码示例使用了`sklearn`和`minisom`库,这些库是Python中常用的机器学习库,可以在大多数Python环境中安装和使用。在实际应用中,可能需要根据具体的数据和需求调整参数和算法。