AI学习指南机器学习篇-K均值聚类模型应用与Python实践
1. 介绍
在机器学习领域,聚类算法是一种常用的无监督学习方法,其中K均值聚类是其中一种经典算法。K均值聚类算法通过将样本分配到K个不同的簇中,使得簇内的样本相似度最大,而簇间的样本相似度最小。本篇博客将介绍如何使用Python中的Scikit-learn库来实现K均值聚类模型,并提供详细的代码示例。
2. 数据准备
在使用K均值聚类模型之前,我们需要准备数据集。为了简化示例,我们将使用Scikit-learn库中的鸢尾花数据集。鸢尾花数据集是一个经典的分类数据集,包含150个样本以及4个特征。
首先,我们需要导入所需的库,并加载鸢尾花数据集:
import numpy as np
from sklearn import datasets# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
数据集加载完成后,我们可以查看数据的基本信息,例如样本数、特征数以及类别数:
# 查看数据基本信息
n_samples, n_features = X.shape
print("样本数:", n_samples)
print("特征数:", n_features)
print("类别数:", len(np.unique(y)))
输出结果如下:
样本数: 150
特征数: 4
类别数: 3
3. 模型训练
接下来,我们使用K均值聚类算法对数据进行聚类。首先,我们需要导入KMeans类,并创建一个实例:
from sklearn.cluster import KMeans# 创建KMeans实例
kmeans = KMeans(n_clusters=3)
在创建实例之后,我们可以使用fit方法对数据进行训练,并得到聚类结果:
# 训练模型并得到聚类结果
kmeans.fit(X)
4. 聚类结果可视化
为了更好地理解聚类结果,我们可以将结果进行可视化展示。这里,我们使用Matplotlib库来绘制散点图,并根据聚类结果对样本进行着色。
import matplotlib.pyplot as plt# 获取聚类结果
labels = kmeans.labels_# 绘制散点图
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel("Sepal length")
plt.ylabel("Sepal width")
plt.title("K-Means Clustering")
plt.show()
运行以上代码,将得到一个散点图,其中不同的颜色表示不同的聚类簇。
5. 完整代码示例
下面是完整的代码示例,包括数据准备、模型训练和聚类结果可视化:
import numpy as np
from sklearn import datasets
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target# 查看数据基本信息
n_samples, n_features = X.shape
print("样本数:", n_samples)
print("特征数:", n_features)
print("类别数:", len(np.unique(y)))# 创建KMeans实例
kmeans = KMeans(n_clusters=3)# 训练模型并得到聚类结果
kmeans.fit(X)# 获取聚类结果
labels = kmeans.labels_# 绘制散点图
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel("Sepal length")
plt.ylabel("Sepal width")
plt.title("K-Means Clustering")
plt.show()
6. 总结
本篇博客介绍了如何使用Python中的Scikit-learn库来实现K均值聚类模型。通过详细的代码示例,我们了解了数据准备、模型训练以及聚类结果可视化的过程。希望本篇博客能够帮助读者更好地理解K均值聚类算法,并能够在实际应用中灵活运用。