Sklearn.cluster.KMeans 函数作用
sklearn.cluster.KMeans
是一种常用的数据聚类算法,用于将数据集分成k个簇,使得每个数据点属于最近的簇,并且每个簇的中心与该簇内所有数据点的距离的平方和最小。在机器学习、数据挖掘中,聚类算法是非常重要的一种方法,帮助我们有效地进行数据可视化和挖掘。
Sklearn.cluster.KMeans 函数使用方法
在使用 KMeans
函数前,需要先安装scikit-learn库,可以使用pip或conda进行安装。
1.导入所需库
from sklearn.cluster import KMeans
import numpy as np
2.创建数据集
X = np.array([
[1, 2],
[1, 4],
[1, 0],
[10, 2],
[10, 4],
[10, 0]
])
3.创建KMeans模型
# n_clusters指定聚类的个数
model = KMeans(n_clusters=2)
4.训练模型
model.fit(X)
5.获取预测结果
labels = model.predict(X)
labels
是一个一维的数组,表示每个数据点所属的簇编号。比如,假设有两个靠近的簇是红色和蓝色,聚类后结果如下:
[0, 0, 0, 1, 1, 1]
6.获取聚类中心
centers = model.cluster_centers_
centers
是一个二维的数组,表示每个簇的中心点坐标。比如,上述例子中,centers
可以是:
[[ 1., 2.],
[10., 2.]]
Sklearn.cluster.KMeans 函数实例说明
实例1:将iris数据集分为三类
from sklearn.cluster import KMeans
from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target
kmeans = KMeans(n_clusters=3, random_state=0)
kmeans.fit(X)
print(kmeans.labels_)
上述代码使用KMeans算法将鸢尾花数据集分为3类,输出每个数据点所属的簇编号。
实例2:随机生成点并进行聚类
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 随机生成数据点
X = np.random.rand(100, 2)
plt.scatter(X[:, 0], X[:, 1])
plt.show()
# 聚类
kmeans = KMeans(n_clusters=3, random_state=0)
kmeans.fit(X)
# 显示聚类结果
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_)
plt.show()
上述代码随机生成100个数据点,并使用KMeans算法将数据点分为3类,通过可视化的方式显示聚类结果。