kmeans 原理:
(1)首先,随机确定k个初始点的质心;
(2)然后将数据集中的每一个点分配到一个簇中,即为每一个点找到距其最近的质心,并将其分配给该质心所对应的簇;
(3)对每一个簇,计算簇中所有点的均值并将均值作为质心(例:在三维空间里,计算各个点的x的均值得到x1,y的均值得到y1,z的均值得到z1,以此得到新的坐标点 x1,y1,z1,然后重新计算各个点距离最近的族)
(4)重复步骤(2),(3),直到没有变化为止
代码处理思路:
kmeans 聚类处理流程
数据源都处理好后的步骤:
第一步:通过SSE,轮廓系数等方法 选择最佳k值
第二步:根据第一步选择合适的k值,进行聚类
第三步:一般通过轮廓系数检验聚类效果,范围在[-1,1],一般越接近于1,聚类效果越好,将对应的分组类别合并到对应数据,并写入文件
第四步:画概率密度图,根据概率密度图分析每一个用户群的特点 or/and 画聚类分布图
#-*- coding:utf-8 -*-
import pandas as pd
import numpy as np
import matplotlib.pylab as pyl
'''
kmeans 聚类处理流程
数据源都处理好后的步骤:
第一步:通过SSE方法 选择最佳k值
第二步:根据第一步选择合适的k值,进行聚类
第三步:通过轮廓系数检验聚类效果,范围在[-1,1],一般越接近于1,聚类效果越好,将对应的分组类别合并到对应数据,并写入文件
第四步:画概率密度图,根据概率密度图分析每一个用户群的特点 or/and 画聚类分布图
'''
#原数据处理
data = pd.read_csv('聚类测试数据3.csv',index_col='userid')
data2= 1.0*(data - data.mean())/data.std(