K-means实现消费行为聚类

K-means实现消费行为聚类

主要内容:

  • K-means实现消费行为聚类
      • 数据介绍
      • 数据预处理
      • 建立模型
      • 输出聚类结果


数据介绍

根据餐饮客户的消费行为特征将客户分成不同的客户群。

ID R(最近一次消费时间间隔) F(消费频率) M(消费总金额)
1 37 4 579
2 35 3 616
3 25 10 394
4 52 2 111
5 36 7 521
6 41 5 225
7 56 3 118
8 37 5 793
9 54 2 111
10 5 18 1086

采用K-means聚类算法根据客户的消费行为特征对客户进行聚类。

数据预处理

由于距离是聚类算法划分类的依据,因此数据预处理部分的关键步骤是数据标准化,此处采用Min-Max标准化方法。

    from sklearn import preprocessing
    data_array = np.array(data) 
    min_max_scaler = preprocessing.MinMaxScaler()
    data_scaler = min_max_scaler.fit_transform(data_array)

建立模型

class sklearn.cluster.KMeans(n_clusters=8, init=’k-means++’, n_init=10,
max_iter=300, tol=0.0001, precompute_distances=’auto’, verbose=0,
random_state=None, copy_x=True, n_jobs=1, algorithm=’auto’)

利用sklearn.cluster中的KMeans实现,设定聚类个数为3,最大迭代次数为500次,距离函数取欧氏距离。

    from sklearn.cluster import KMeans
    k = 3
    interation = 500
    model = KMeans(n_clusters = k, max_iter = interation)
    model.fit(data_scaler)

输出聚类结果

利用sklearn.cluster.KMeans的Attributes可以查看一些重要聚类信息。

Attributes 功能
cluster_centers_ 得到每个聚类中心
labels_ 得到每个样本的类标签
inertia_ 样本到最近簇中心的距离之和

在原来的消费行为特征矩阵中增加一列类标签信息:

    label_col = model.labels_
    cluster_data = np.column_stack((data,label_col))

计算聚类中心:

    cluster_center = model.cluster_centers_

你可能感兴趣的:(K-means实现消费行为聚类)