自定义数据集,使用scikit-learn 中K均值包 进行聚类

1. 引言

K均值聚类是一种无监督学习方法,用于将数据集分为多个簇。通过计算数据点之间的距离并将它们分配到最近的簇中心,K均值算法可以帮助我们发现数据中的自然结构。

2. 数据集创建

首先,我们使用numpy创建一个自定义的二维数据集:

import numpy as np

# 创建一个简单的二维数据集
X = np.array([[1, 2], [1.5, 1.8], [5, 8], [8, 8], [1, 0.6], [9, 11]])
3. 导入K均值并进行聚类

接下来,我们使用scikit-learn中的K均值算法进行聚类。

from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 使用K均值聚类,设定簇的数量为2
kmeans = KMeans(n_clusters=2)
kmeans.fit(X)

# 获取簇的中心和标签
centroids = kmeans.cluster_centers_
labels = kmeans.labels_
4. 可视化结果

为了更好地理解聚类结果,我们可以使用matplotlib来可视化数据点和簇的中心。

# 绘制数据点和簇的中心
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')

# 标出簇的中心
plt.scatter(centroids[:, 0], centroids[:, 1], s=200, c='red', marker='X')
plt.show()
5. 总结

通过K均值聚类,我们成功地将数据集分为两个簇,并通过可视化方式直观展示了聚类结果。K均值算法的核心思想是通过计算点与簇中心的距离进行分组,并不断迭代优化簇的中心位置。

相关推荐
程序员学习随笔1 天前
StarRocks高效聚合源码解析
数据库·聚类
qq_189370492 天前
Scikit-learn库中用于特征缩放的类MinMaxScaler用法详细介绍并举例说明
python·机器学习·scikit-learn·minmaxscaler
-一杯为品-2 天前
【机器学习】朴素贝叶斯分类#1基于Scikit-Learn的简单实现
人工智能·python·机器学习·分类·scikit-learn
SmallBambooCode2 天前
【人工智能】【Python】在Scikit-Learn中使用KNN(K最近邻算法)
人工智能·python·机器学习·scikit-learn·近邻算法
MMMMMMMay Love Code4 天前
大模型工程师学习日记(十一):FAISS 高效相似度搜索和密集向量聚类的库
学习·聚类·faiss
天才少女爱迪生4 天前
在数据集上通过聚类实现特征降维
机器学习·数据挖掘·聚类
想吃砸到牛顿的苹果的籽4 天前
点云 PCL分割聚类适用场景
聚类·点云pcl
数据攻城小狮子5 天前
深入探究Python机器学习算法:无监督学习(聚类算法如 K-Means、DBSCAN,降维算法如 PCA、SVD)
python·算法·机器学习·聚类·sklearn·k-means
那雨倾城5 天前
深入了解 K-Means 聚类算法:原理与应用
python·opencv·算法·计算机视觉·kmeans·聚类
BIGZJU5 天前
层次聚类R复现
机器学习·r语言·聚类