K-means算法初试

Kmeans聚类算法: k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。来自 百度百科
个人理解: k均值聚类算法(k-means clustering algorithm)即通过随机得到的K个聚类对象作为聚类中心,把每个对象分配给距离它最近的聚类中心。每次迭代聚类求解都是对不同的聚类中心进行聚类分组求解,直到满足某个条件,不再进行迭代。

import numpy as np
import matplotlib.pyplot as plt
import sklearn.datasets as ds
import matplotlib.colors
from sklearn.cluster import KMeans

# 随机生成数据
points_number = 50000
centers = 25
data,laber=ds.make_blobs(points_number,centers=centers,random_state=0)#point_numbers为样本总数3000,
#center为中心数20,random_state参数主要是为了保证每次都分割一样的训练集和测试机,大小可以是任意一个整数,在调参缓解,只要保证其值一致即可。

# 创建Figure
fig = plt.figure()
# 用来正常显示中文标签
matplotlib.rcParams['font.sans-serif'] = [u'SimHei']
# 用来正常显示负号
matplotlib.rcParams['axes.unicode_minus'] = False

# 原始点的分布
ax1 = fig.add_subplot(211)#把画布分为2行1列,area为从左往右从上往下第1块区域
plt.scatter(data[:,0],data[:,1],c=laber)#data[:,0]为一维所有数据,
plt.title(u'原始数据分布')
plt.sca(ax1)

# K-means聚类后
N = 4
model = KMeans(n_clusters = N,init = 'k-means++')#init: 初始簇中心的获取方法
y_pre = model.fit_predict(data)#计算中心并预测聚类索引
ax2 = fig.add_subplot(212)#add_subplot画子图,把画布分为2行1列,area为从左往右从上往下第2块区域
plt.scatter(data[:,0],data[:,1],c=y_pre)
plt.title(u'K-Means聚类')
plt.sca(ax2)

plt.show()

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值