K-mean算法实现客户分类

此项目是K-mean算法实现客户分类。 K-Means算法思想:(1)事先确定常数K,常数K意味着最终的聚类类别数,(2)首先随机选定初始点为质心,并通过计算每一个样本与质心之间的相似度(这里为欧式距离),(3)将样本点归到最相似的类中,(4)接着,重新计算每个类的质心(即为类中心),重复这样的过程,直到质心不再改变,最终就确定了每个样本所属的类别以及每个类的质心。

应用介绍

import numpy as np
import matplotlib.pyplot as plt
import math
import pandas as pds
plt.rcParams['font.sans-serif'] = 'simHei'#正确显示中文
plt.rcParams['axes.unicode_minus'] = False#正确显示负号
#date = pds.DataFrame(pds.read_csv('company.csv',header=1))
x = [10,13,17,67,35,1,10,12,8,1,32,3,90,1,16,31,25]
y = [317,147,172,194,789,190,281,142,186,226,287,499,181,172,190,271,382]
sortColors = ['g','r','b']#三个类别的三种颜色
sortX = np.random.randint(10, 100, 3)#生成三个随机数x
sortY = np.random.randint(100, 700, 3)#生成三个随机数y
sortF = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]  # 储存种类
sortM = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]#分别代表x,y,个数
#k-means算法
Mynum = 10
while(Mynum>0):
    sortM = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]#清零
    flag = 0#标记种类
    for i in range(len(x)):
        min = 1000#标记最短距离
        for j in range(3):#找出距离最短的坐标
            value = math.sqrt((x[i]-sortX[j])*(x[i]-sortX[j])+(y[i]-sortY[j])*(y[i]-sortY[j]))
            if min>value:#判断距离是否是最短
                min = value
                flag = j
                sortM[j][0] += x[i]
                sortM[j][1] += y[i]
                sortM[j][2] += 1
        sortF[i] = flag
    for i in range(3):#更新三个k值坐标
        sortX[i] = sortM[i][0]//sortM[i][2]
        sortY[i] = sortM[i][1]//sortM[i][2]
    Mynum -= 1

#绘制
plt.figure()
plt.title('用户分类图')
plt.xlabel("平均消费周期(天)")
plt.ylabel("平均每次消费金额")
#显示坐标轴元素
plt.xticks([10,20,30,40,50,60,70,80,90,100])
plt.yticks([100,150,200,250,300,350,400,450,500,550,600,650,700,750,800])

文件列表(部分)

名称 大小 修改日期
K-means╛█└α╦π╖¿.docx314.22 KB2018-07-02
k-means ╛█└α.py2.02 KB2018-07-50
K-mean╦π╖¿╩╡╧╓┐═╗º╖╓└α0.00 KB2019-07-12

立即下载

相关下载

[K-mean算法实现客户分类] 此项目是K-mean算法实现客户分类。 K-Means算法思想:(1)事先确定常数K,常数K意味着最终的聚类类别数,(2)首先随机选定初始点为质心,并通过计算每一个样本与质心之间的相似度(这里为欧式距离),(3)将样本点归到最相似的类中,(4)接着,重新计算每个类的质心(即为类中心),重复这样的过程,直到质心不再改变,最终就确定了每个样本所属的类别以及每个类的质心。

评论列表 共有 1 条评论

暂无评论

微信捐赠

微信扫一扫体验

立即
上传
发表
评论
返回
顶部