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

python 复制代码
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
import numpy as np

class1_points = np.array([[1.9, 1.2],
                          [1.5, 2.1],
                          [1.9, 0.5],
                          [1.5, 0.9],
                          [0.9, 1.2],
                          [1.1, 1.7],
                          [1.4, 1.1]])

class2_points = np.array([[-1.9, 1.2],
                          [-1.5, 2.1],
                          [-1.9, 0.5],
                          [-1.5, 0.9],
                          [-0.9, 1.2],
                          [-1.1, 1.7],
                          [-1.4, 1.1]])

class3_points = np.array([[1.9, -1.2],
                          [1.5, -2.1],
                          [1.9, -0.5],
                          [1.5, -0.9],
                          [0.9, -1.2],
                          [1.1, -1.7],
                          [1.4, -1.1]])

class4_points = np.array([[-1.9, -1.2],
                          [-1.5, -2.1],
                          [-1.9, -0.5],
                          [-1.5, -0.9],
                          [-0.9, -1.2],
                          [-1.1, -1.7],
                          [-1.4, -1.1]])

data = np.concatenate((class1_points, class2_points, class3_points, class4_points))

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6))

k = 4

ax1.scatter(data[:, 0], data[:, 1], s=50)
ax1.plot()

km = KMeans(n_clusters=k,max_iter=30)
km.fit(data)
centers = km.cluster_centers_
y_kmeans = km.predict(data)
print(y_kmeans)

for i in range(k):
    cluster_points = data[y_kmeans == i]
    centroid = centers[i]
    for cluster_points in cluster_points:
        ax2.plot([cluster_points[0], centroid[0]],[cluster_points[1], centroid[1]],'k--')

ax2.scatter(data[:, 0], data[:, 1], c = y_kmeans, s=50)
ax2.scatter(centers[:, 0], centers[:, 1], c='black', s=100, alpha=0.5)

plt.show()
相关推荐
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·近邻算法
lihuhelihu6 天前
精神分裂症患者GAF评分的可视化分析|使用集成学习模型 LightGBM
人工智能·python·机器学习·scikit-learn·集成学习·sklearn·boosting
-一杯为品-8 天前
【机器学习】K近邻#1基于Scikit-Learn的K近邻分类
人工智能·python·机器学习·分类·scikit-learn
万事可爱^8 天前
Mean Shift聚类算法深度解析与实战指南
算法·均值算法·数据挖掘·聚类·mean shift·均值漂移聚类
jndingxin10 天前
OpenCV计算摄影学(5)处理一系列图像(例如视频帧)的非局部均值去噪的函数fastNlMeansDenoisingColoredMulti()的使用
opencv·均值算法
以山河作礼。11 天前
【机器学习】13.十大算法之一K均值算法(K-means)聚类详细讲解
算法·机器学习·均值算法
y.Ghost12 天前
数据结构与算法:均值滤波
c语言·图像处理·人工智能·算法·计算机视觉·均值算法·均值滤波
可为测控13 天前
图像处理基础(3):均值滤波器及其变种
图像处理·人工智能·均值算法