AI 大模型之 数据分析 无监督学习 聚类 / 降维 / 模式发现 技术

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


摘要:

随着大数据时代的到来,数据分析在各个领域都发挥着越来越重要的作用。无监督学习作为机器学习的一个重要分支,在数据分析中扮演着不可或缺的角色。本文将围绕无监督学习中的聚类、降维和模式发现技术,通过实际代码示例,探讨这些技术在数据分析中的应用。

一、

无监督学习是一种无需标注数据的机器学习方法,它通过分析数据中的内在结构,自动发现数据中的规律和模式。在数据分析中,无监督学习技术可以帮助我们理解数据的分布、发现潜在的模式、进行数据降维等。本文将详细介绍聚类、降维和模式发现技术,并通过Python代码进行实际操作。

二、聚类技术

1. K-means算法

K-means算法是一种经典的聚类算法,它通过迭代的方式将数据点分配到K个簇中,使得每个簇内的数据点距离簇中心的距离最小。

python

from sklearn.cluster import KMeans


import numpy as np

创建数据集


data = np.array([[1, 2], [1, 4], [1, 0],


[10, 2], [10, 4], [10, 0]])

创建KMeans对象


kmeans = KMeans(n_clusters=2, random_state=0).fit(data)

获取聚类结果


labels = kmeans.labels_

打印聚类结果


print("聚类结果:", labels)


2. DBSCAN算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)算法是一种基于密度的聚类算法,它将数据点分为簇,同时允许噪声点的存在。

python

from sklearn.cluster import DBSCAN


import numpy as np

创建数据集


data = np.array([[1, 2], [2, 2], [2, 3], [8, 7],


[8, 8], [25, 80], [25, 82], [30, 80]])

创建DBSCAN对象


dbscan = DBSCAN(eps=0.3, min_samples=2).fit(data)

获取聚类结果


labels = dbscan.labels_

打印聚类结果


print("聚类结果:", labels)


三、降维技术

1. PCA(主成分分析)

PCA是一种常用的降维方法,它通过将数据投影到低维空间,保留数据的主要特征。

python

from sklearn.decomposition import PCA


import numpy as np

创建数据集


data = np.array([[1, 2], [2, 2], [2, 3], [8, 7],


[8, 8], [25, 80], [25, 82], [30, 80]])

创建PCA对象


pca = PCA(n_components=2).fit(data)

获取降维后的数据


reduced_data = pca.transform(data)

打印降维后的数据


print("降维后的数据:", reduced_data)


2. t-SNE(t-Distributed Stochastic Neighbor Embedding)

t-SNE是一种非线性降维方法,它可以将高维数据映射到低维空间,同时保留数据点之间的相似性。

python

from sklearn.manifold import TSNE


import numpy as np

创建数据集


data = np.array([[1, 2], [2, 2], [2, 3], [8, 7],


[8, 8], [25, 80], [25, 82], [30, 80]])

创建t-SNE对象


tsne = TSNE(n_components=2, random_state=0).fit_transform(data)

打印降维后的数据


print("t-SNE降维后的数据:", tsne)


四、模式发现技术

1. Apriori算法

Apriori算法是一种用于关联规则学习的算法,它可以发现数据集中频繁项集和关联规则。

python

from mlxtend.frequent_patterns import apriori


from mlxtend.frequent_patterns import association_rules

创建数据集


data = [['bread', 'milk'],


['bread', 'diaper', 'beer', 'egg'],


['milk', 'diaper', 'beer', 'cola'],


['bread', 'milk', 'diaper', 'beer'],


['bread', 'milk', 'diaper', 'cola']]

创建频繁项集


frequent_itemsets = apriori(data, min_support=0.5, use_colnames=True)

创建关联规则


rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1.0)

打印关联规则


print(rules)


2. K-Means聚类与模式发现

结合K-Means聚类和模式发现,我们可以发现不同簇中的潜在模式。

python

from sklearn.cluster import KMeans


from mlxtend.frequent_patterns import association_rules

创建数据集


data = np.array([[1, 2], [2, 2], [2, 3], [8, 7],


[8, 8], [25, 80], [25, 82], [30, 80]])

创建KMeans对象


kmeans = KMeans(n_clusters=2, random_state=0).fit(data)

获取聚类结果


labels = kmeans.labels_

根据聚类结果创建数据集


cluster_data = []


for i in range(2):


cluster_data.append(data[labels == i])

创建频繁项集


frequent_itemsets = apriori(cluster_data, min_support=0.5, use_colnames=True)

创建关联规则


rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1.0)

打印关联规则


print(rules)


五、结论

本文介绍了无监督学习中的聚类、降维和模式发现技术,并通过Python代码进行了实际操作。这些技术在数据分析中具有广泛的应用,可以帮助我们更好地理解数据、发现潜在的模式和规律。在实际应用中,我们可以根据具体问题选择合适的技术,以提高数据分析的效率和准确性。