0. 算法原理:
上述过程简单描述:
a: 初始数据
b: 选择质点
c: 根据质点划分
d: 求均值,更新质心点
e: 划分
f: 更新质心点
1. 代码实现:
# K means 教程
# 0. 引入依赖
import numpy as np
import matplotlib.pyplot as plt
# 从sklearn中直接生成聚类数据
from sklearn.datasets.samples_generator import make_blobs
# 1. 数据加载
x, y = make_blobs(n_samples = 100, centers = 6, random_state = 1234, cluster_std = 0.6)
# make_blobs函数是为聚类产生数据集
# n_samples:表示数据样本点个数
# centers是聚类中心点的个数 可以理解为label的种类数
# random_state是随机种子,可以固定生成的数据
# cluster_std设置每个类别的方差
# print(x.shape) x为100 * 2 矩阵,横纵坐标
plt.figure(figsize = (6, 6)) # 设置画布大小
plt.scatter(x[:, 0],x[:, 1], c = y)