K-means算法原理以及应用(R)

K-means是一种无监督学习算法,是聚类算法中最简单的一种了。不同与一些分类的监督学习算法,比如逻辑回归、SVM、随机森林等,k-means聚类无需给定Y变量,只有特征X。下面是k-means算法原理及思想。

 在聚类问题中,给我们的训练样本是《K-means算法原理以及应用(R)》,每个《K-means算法原理以及应用(R)》,没有了y。

     K-means算法是将样本聚类成k个簇(cluster),具体算法描述如下:

1、 随机选取k个聚类质心点(cluster centroids)为《K-means算法原理以及应用(R)》

2、 重复下面过程直到收敛 {

               对于每一个样例i,计算其应该属于的类

               《K-means算法原理以及应用(R)》

               对于每一个类j,重新计算该类的质心

               《K-means算法原理以及应用(R)》

}

     K是我们事先给定的聚类数,《K-means算法原理以及应用(R)》代表样例i与k个类中距离最近的那个类,《K-means算法原理以及应用(R)》的值是1到k中的一个。质心《K-means算法原理以及应用(R)》代表我们对属于同一个类的样本中心点的猜测,拿星团模型来解释就是要将所有的星星聚成k个星团,首先随机选取k个宇宙中的点(或者k个星星)作为k个星团的质心,然后第一步对于每一个星星计算其到k个质心中每一个的距离,然后选取距离最近的那个星团作为《K-means算法原理以及应用(R)》,这样经过第一步每一个星星都有了所属的星团;第二步对于每一个星团,重新计算它的质心《K-means算法原理以及应用(R)》(对里面所有的星星坐标求平均)。重复迭代第一步和第二步直到质心不变或者变化很小。

     下图展示了对n个样本点进行K-means聚类的效果,这里k取2。

     《K-means算法原理以及应用(R)》

     K-means面对的第一个问题是如何保证收敛,前面的算法中强调结束条件就是收敛,可以证明的是K-means完全可以保证收敛性。下面我们定性的描述一下收敛性,我们定义畸变函数(distortion function)如下:

     《K-means算法原理以及应用(R)》

     J函数表示每个样本点到其质心的距离平方和。K-means是要将J调整到最小。假设当前J没有达到最小值,那么首先可以固定每个类的质心《K-means算法原理以及应用(R)》,调整每个样例的所属的类别《K-means算法原理以及应用(R)》来让J函数减少,同样,固定《K-means算法原理以及应用(R)》,调整每个类的质心《K-means算法原理以及应用(R)》也可以使J减小。这两个过程就是内循环中使J单调递减的过程。当J递减到最小时,《K-means算法原理以及应用(R)》和c也同时收敛。(在理论上,可以有多组不同的《K-means算法原理以及应用(R)》和c值能够使得J取得最小值,但这种现象实际上很少见)。

     由于畸变函数J是非凸函数,意味着我们不能保证取得的最小值是全局最小值,也就是说k-means对质心初始位置的选取比较感冒,但一般情况下k-means达到的局部最优已经满足需求。但如果你怕陷入局部最优,那么可以选取不同的初始值跑多遍k-means,然后取其中最小的J对应的《K-means算法原理以及应用(R)》和c输出。

kmeans的算法和思想弄懂之后,就开始要知道如何使用它,以及在什么场合适用,有什么优点和缺点。下面我来用示例来展示:

下面是一家航空公司的一部分客户数据:

 

属性名称

属性说明

客户基本信息

MEMBER_NO

会员卡号

FFP_DATE

入会时间

FIRST_FLIGHT_DATE

第一次飞行日期

GENDER

性别

FFP_TIER

会员卡级别

WORK_CITY

工作地城市

WORK_PROVINCE

工作地所在省份

WORK_COUNTRY

工作地所在国家

AGE

年龄

乘机信息

FLIGHT_COUNT

观测窗口内的飞行次数

LOAD_TIME

观测窗口的结束时间

LAST_TO_END

最后一次乘机时间至观测窗口结束时长

AVG_DISCOUNT

平均折扣率

SUM_YR

观测窗口的票价收入

SEG_KM_SUM

观测窗口的总飞行公里数

LAST_FLIGHT_DATE

末次飞行日期

AVG_INTERVAL

平均乘机时间间隔

MAX_INTERVAL

最大乘机间隔

积分信息

EXCHANGE_COUNT

积分兑换次数

EP_SUM

总精英积分

PROMOPTIVE_SUM

促销积分

PARTNER_SUM

合作伙伴积分

POINTS_SUM

总累计积分

POINT_NOTFLIGHT

非乘机的积分变动次数

BP_SUM

总基本积分

*观测窗口:以过去某个时间点为结束时间,某一时间长度作为宽度,得到历史时间范围内的一个时间段。

目标:对客户精准个性化营销,提升航空公司收益。

思路:

1.选取特征变量;

在经典RFM模型上加上两个业务紧密相关指标,总共5个特征变量。

模型

L

R

F

M

C

航空公司LRFMC模型

会员入会时间距观测窗口结束的月数

客户最近一次乘坐公司飞机距观测窗口结束的月数

客户在观测窗口内乘坐公司飞机的次数

客户在观测窗口内累计的飞行里程

客户在观测窗口内乘坐舱位所对应的折扣系数的平均值

2.采用k-means进行聚类(K=5);

3.对聚类用户进行特征分析;

4.对不同聚类群体客户特征进行个性化营销服务。

summary(datafile)
##    MEMBER_NO           FFP_DATE     FIRST_FLIGHT_DATE GENDER    
##  Min.   :    1   2011/1/13 :  184   2013/2/16:   96     :    3  
##  1st Qu.:15748   2013/1/1  :  165   2012/9/30:   85   男:48134  
##  Median :31495   2013/3/1  :  100   2013/2/15:   84   女:14851  
##  Mean   :31495   2010/11/17:   99   2005/9/9 :   78             
##  3rd Qu.:47241   2011/1/14 :   95   2012/4/21:   70             
##  Max.   :62988   2012/9/19 :   88   2012/4/27:   70             
##                  (Other)   :62257   (Other)  :62505             
##     FFP_TIER       WORK_CITY     WORK_PROVINCE    WORK_COUNTRY  
##  Min.   :4.000   广州   : 9385   广东   :17507   CN     :57748  
##  1st Qu.:4.000   北京   : 7843   北京   : 8014   HK     :  991  
##  Median :4.000   上海   : 4995   上海   : 4994   JP     :  875  
##  Mean   :4.102   深圳   : 3604   辽宁   : 4182   KR     :  790  
##  3rd Qu.:4.000          : 2268          : 3244   US     :  575  
##  Max.   :6.000   大连   : 1978   新疆   : 2512   (Other): 2008  
##                  (Other):32915   (Other):22535   NA's   :    1  
##       AGE             LOAD_TIME      FLIGHT_COUNT        BP_SUM      
##  Min.   :  6.00   2014/3/31:62988   Min.   :  2.00   Min.   :     0  
##  1st Qu.: 35.00                     1st Qu.:  3.00   1st Qu.:  2518  
##  Median : 41.00                     Median :  7.00   Median :  5700  
##  Mean   : 42.48                     Mean   : 11.84   Mean   : 10925  
##  3rd Qu.: 48.00                     3rd Qu.: 15.00   3rd Qu.: 12831  
##  Max.   :110.00                     Max.   :213.00   Max.   :505308  
##  NA's   :420                                                         
##   EP_SUM_YR_1  EP_SUM_YR_2         SUM_YR_1         SUM_YR_2     
##  Min.   :0    Min.   :    0.0   Min.   :     0   Min.   :     0  
##  1st Qu.:0    1st Qu.:    0.0   1st Qu.:  1003   1st Qu.:   780  
##  Median :0    Median :    0.0   Median :  2800   Median :  2773  
##  Mean   :0    Mean   :  265.7   Mean   :  5355   Mean   :  5604  
##  3rd Qu.:0    3rd Qu.:    0.0   3rd Qu.:  6574   3rd Qu.:  6846  
##  Max.   :0    Max.   :74460.0   Max.   :239560   Max.   :234188  
##                                 NA's   :551      NA's   :138     
##    SEG_KM_SUM     WEIGHTED_SEG_KM   LAST_FLIGHT_DATE AVG_FLIGHT_COUNT 
##  Min.   :   368   Min.   :     0   2014/3/31:  959   Min.   : 0.2500  
##  1st Qu.:  4747   1st Qu.:  3219   2014/3/30:  933   1st Qu.: 0.4286  
##  Median :  9994   Median :  6978   2014/3/28:  924   Median : 0.8750  
##  Mean   : 17124   Mean   : 12777   2014/3/29:  779   Mean   : 1.5422  
##  3rd Qu.: 21271   3rd Qu.: 15300   2014/3/27:  767   3rd Qu.: 1.8750  
##  Max.   :580717   Max.   :558440   2014/3/26:  728   Max.   :26.6250  
##                                    (Other)  :57898                    
##    AVG_BP_SUM      BEGIN_TO_FIRST   LAST_TO_END     AVG_INTERVAL   
##  Min.   :    0.0   Min.   :  0.0   Min.   :  1.0   Min.   :  0.00  
##  1st Qu.:  336.0   1st Qu.:  9.0   1st Qu.: 29.0   1st Qu.: 23.37  
##  Median :  752.4   Median : 50.0   Median :108.0   Median : 44.67  
##  Mean   : 1421.4   Mean   :120.1   Mean   :176.1   Mean   : 67.75  
##  3rd Qu.: 1690.3   3rd Qu.:166.0   3rd Qu.:268.0   3rd Qu.: 82.00  
##  Max.   :63163.5   Max.   :729.0   Max.   :731.0   Max.   :728.00  
##                                                                    
##   MAX_INTERVAL ADD_POINTS_SUM_YR_1 ADD_POINTS_SUM_YR_2 EXCHANGE_COUNT   
##  Min.   :  0   Min.   :     0.0    Min.   :     0.0    Min.   : 0.0000  
##  1st Qu.: 79   1st Qu.:     0.0    1st Qu.:     0.0    1st Qu.: 0.0000  
##  Median :143   Median :     0.0    Median :     0.0    Median : 0.0000  
##  Mean   :166   Mean   :   540.3    Mean   :   814.7    Mean   : 0.3198  
##  3rd Qu.:228   3rd Qu.:     0.0    3rd Qu.:     0.0    3rd Qu.: 0.0000  
##  Max.   :728   Max.   :600000.0    Max.   :728282.0    Max.   :46.0000  
##                                                                         
##   avg_discount    P1Y_Flight_Count  L1Y_Flight_Count    P1Y_BP_SUM    
##  Min.   :0.0000   Min.   :  0.000   Min.   :  0.000   Min.   :     0  
##  1st Qu.:0.6120   1st Qu.:  2.000   1st Qu.:  1.000   1st Qu.:   946  
##  Median :0.7119   Median :  3.000   Median :  3.000   Median :  2692  
##  Mean   :0.7216   Mean   :  5.766   Mean   :  6.073   Mean   :  5367  
##  3rd Qu.:0.8095   3rd Qu.:  7.000   3rd Qu.:  8.000   3rd Qu.:  6485  
##  Max.   :1.5000   Max.   :118.000   Max.   :111.000   Max.   :246197  
##                                                                       
##    L1Y_BP_SUM         EP_SUM        ADD_Point_SUM    Eli_Add_Point_Sum
##  Min.   :     0   Min.   :    0.0   Min.   :     0   Min.   :     0   
##  1st Qu.:   545   1st Qu.:    0.0   1st Qu.:     0   1st Qu.:     0   
##  Median :  2547   Median :    0.0   Median :     0   Median :     0   
##  Mean   :  5558   Mean   :  265.7   Mean   :  1355   Mean   :  1621   
##  3rd Qu.:  6619   3rd Qu.:    0.0   3rd Qu.:     0   3rd Qu.:   345   
##  Max.   :259111   Max.   :74460.0   Max.   :984938   Max.   :984938   
##                                                                       
##  L1Y_ELi_Add_Points   Points_Sum     L1Y_Points_Sum  
##  Min.   :     0     Min.   :     0   Min.   :     0  
##  1st Qu.:     0     1st Qu.:  2775   1st Qu.:   700  
##  Median :     0     Median :  6328   Median :  2860  
##  Mean   :  1080     Mean   : 12546   Mean   :  6639  
##  3rd Qu.:     0     3rd Qu.: 14302   3rd Qu.:  7500  
##  Max.   :728282     Max.   :985572   Max.   :728282  
##                                                      
##  Ration_L1Y_Flight_Count Ration_P1Y_Flight_Count Ration_P1Y_BPS  
##  Min.   :0.0000          Min.   :0.0000          Min.   :0.0000  
##  1st Qu.:0.2500          1st Qu.:0.2889          1st Qu.:0.2582  
##  Median :0.5000          Median :0.5000          Median :0.5143  
##  Mean   :0.4864          Mean   :0.5136          Mean   :0.5223  
##  3rd Qu.:0.7111          3rd Qu.:0.7500          3rd Qu.:0.8151  
##  Max.   :1.0000          Max.   :1.0000          Max.   :1.0000  
##                                                                  
##  Ration_L1Y_BPS   Point_NotFlight  
##  Min.   :0.0000   Min.   :  0.000  
##  1st Qu.:0.1680   1st Qu.:  0.000  
##  Median :0.4767   Median :  0.000  
##  Mean   :0.4684   Mean   :  2.728  
##  3rd Qu.:0.7284   3rd Qu.:  1.000  
##  Max.   :1.0000   Max.   :140.000  
## 
head(datafile)
##   MEMBER_NO  FFP_DATE FIRST_FLIGHT_DATE GENDER FFP_TIER   WORK_CITY
## 1     54993 2006/11/2        2008/12/24     男        6           .
## 2     28065 2007/2/19          2007/8/3     男        6            
## 3     55106  2007/2/1         2007/8/30     男        6           .
## 4     21189 2008/8/22         2008/8/23     男        5 Los Angeles
## 5     39546 2009/4/10         2009/4/15     男        6        贵阳
## 6     56972 2008/2/10         2009/9/29     男        6        广州
##   WORK_PROVINCE WORK_COUNTRY AGE LOAD_TIME FLIGHT_COUNT BP_SUM EP_SUM_YR_1
## 1          北京           CN  31 2014/3/31          210 505308           0
## 2          北京           CN  42 2014/3/31          140 362480           0
## 3          北京           CN  40 2014/3/31          135 351159           0
## 4            CA           US  64 2014/3/31           23 337314           0
## 5          贵州           CN  48 2014/3/31          152 273844           0
## 6          广东           CN  64 2014/3/31           92 313338           0
##   EP_SUM_YR_2 SUM_YR_1 SUM_YR_2 SEG_KM_SUM WEIGHTED_SEG_KM
## 1       74460   239560   234188     580717        558440.1
## 2       41288   171483   167434     293678        367777.2
## 3       39711   163618   164982     283712        355966.5
## 4       34890   116350   125500     281336        306900.9
## 5       42265   124560   130702     309928        300834.1
## 6       27323   112364    76946     294585        285067.7
##   LAST_FLIGHT_DATE AVG_FLIGHT_COUNT AVG_BP_SUM BEGIN_TO_FIRST LAST_TO_END
## 1        2014/3/31           26.250   63163.50              2           1
## 2        2014/3/25           17.500   45310.00              2           7
## 3        2014/3/21           16.875   43894.88             10          11
## 4       2013/12/26            2.875   42164.25             21          97
## 5        2014/3/27           19.000   34230.50              3           5
## 6        2014/1/13           11.500   39167.25             11          79
##   AVG_INTERVAL MAX_INTERVAL ADD_POINTS_SUM_YR_1 ADD_POINTS_SUM_YR_2
## 1     3.483254           18                3352               36640
## 2     5.194245           17                   0               12000
## 3     5.298507           18                3491               12000
## 4    27.863636           73                   0                   0
## 5     4.788079           47                   0               22704
## 6     7.043956           52                   0                2460
##   EXCHANGE_COUNT avg_discount P1Y_Flight_Count L1Y_Flight_Count P1Y_BP_SUM
## 1             34    0.9616390              103              107     246197
## 2             29    1.2523144               68               72     177358
## 3             20    1.2546755               65               70     169072
## 4             11    1.0908696               13               10     186104
## 5             27    0.9706579               71               81     128448
## 6             10    0.9676925               50               42     190583
##   L1Y_BP_SUM EP_SUM ADD_Point_SUM Eli_Add_Point_Sum L1Y_ELi_Add_Points
## 1     259111  74460         39992            114452             111100
## 2     185122  41288         12000             53288              53288
## 3     182087  39711         15491             55202              51711
## 4     151210  34890             0             34890              34890
## 5     145396  42265         22704             64969              64969
## 6     122755  27323          2460             29783              29783
##   Points_Sum L1Y_Points_Sum Ration_L1Y_Flight_Count
## 1     619760         370211               0.5095238
## 2     415768         238410               0.5142857
## 3     406361         233798               0.5185185
## 4     372204         186100               0.4347826
## 5     338813         210365               0.5328947
## 6     343121         152538               0.4565217
##   Ration_P1Y_Flight_Count Ration_P1Y_BPS Ration_L1Y_BPS Point_NotFlight
## 1               0.4904762      0.4872207      0.5127773              50
## 2               0.4857143      0.4892891      0.5107081              33
## 3               0.4814815      0.4814671      0.5185300              26
## 4               0.5652174      0.5517217      0.4482754              12
## 5               0.4671053      0.4690537      0.5309427              39
## 6               0.5434783      0.6082326      0.3917642              15
#确定要探索分析的变量
col=c(15:18,20:29)#去掉日期型变量

#输出变量最值、缺失情况
summary(datafile[,col])
##     SUM_YR_1         SUM_YR_2        SEG_KM_SUM     WEIGHTED_SEG_KM 
##  Min.   :     0   Min.   :     0   Min.   :   368   Min.   :     0  
##  1st Qu.:  1003   1st Qu.:   780   1st Qu.:  4747   1st Qu.:  3219  
##  Median :  2800   Median :  2773   Median :  9994   Median :  6978  
##  Mean   :  5355   Mean   :  5604   Mean   : 17124   Mean   : 12777  
##  3rd Qu.:  6574   3rd Qu.:  6846   3rd Qu.: 21271   3rd Qu.: 15300  
##  Max.   :239560   Max.   :234188   Max.   :580717   Max.   :558440  
##  NA's   :551      NA's   :138                                       
##  AVG_FLIGHT_COUNT    AVG_BP_SUM      BEGIN_TO_FIRST   LAST_TO_END   
##  Min.   : 0.2500   Min.   :    0.0   Min.   :  0.0   Min.   :  1.0  
##  1st Qu.: 0.4286   1st Qu.:  336.0   1st Qu.:  9.0   1st Qu.: 29.0  
##  Median : 0.8750   Median :  752.4   Median : 50.0   Median :108.0  
##  Mean   : 1.5422   Mean   : 1421.4   Mean   :120.1   Mean   :176.1  
##  3rd Qu.: 1.8750   3rd Qu.: 1690.3   3rd Qu.:166.0   3rd Qu.:268.0  
##  Max.   :26.6250   Max.   :63163.5   Max.   :729.0   Max.   :731.0  
##                                                                     
##   AVG_INTERVAL     MAX_INTERVAL ADD_POINTS_SUM_YR_1 ADD_POINTS_SUM_YR_2
##  Min.   :  0.00   Min.   :  0   Min.   :     0.0    Min.   :     0.0   
##  1st Qu.: 23.37   1st Qu.: 79   1st Qu.:     0.0    1st Qu.:     0.0   
##  Median : 44.67   Median :143   Median :     0.0    Median :     0.0   
##  Mean   : 67.75   Mean   :166   Mean   :   540.3    Mean   :   814.7   
##  3rd Qu.: 82.00   3rd Qu.:228   3rd Qu.:     0.0    3rd Qu.:     0.0   
##  Max.   :728.00   Max.   :728   Max.   :600000.0    Max.   :728282.0   
##                                                                        
##  EXCHANGE_COUNT     avg_discount   
##  Min.   : 0.0000   Min.   :0.0000  
##  1st Qu.: 0.0000   1st Qu.:0.6120  
##  Median : 0.0000   Median :0.7119  
##  Mean   : 0.3198   Mean   :0.7216  
##  3rd Qu.: 0.0000   3rd Qu.:0.8095  
##  Max.   :46.0000   Max.   :1.5000  
## 
head(datafile[,col])
##   SUM_YR_1 SUM_YR_2 SEG_KM_SUM WEIGHTED_SEG_KM AVG_FLIGHT_COUNT AVG_BP_SUM
## 1   239560   234188     580717        558440.1           26.250   63163.50
## 2   171483   167434     293678        367777.2           17.500   45310.00
## 3   163618   164982     283712        355966.5           16.875   43894.88
## 4   116350   125500     281336        306900.9            2.875   42164.25
## 5   124560   130702     309928        300834.1           19.000   34230.50
## 6   112364    76946     294585        285067.7           11.500   39167.25
##   BEGIN_TO_FIRST LAST_TO_END AVG_INTERVAL MAX_INTERVAL ADD_POINTS_SUM_YR_1
## 1              2           1     3.483254           18                3352
## 2              2           7     5.194245           17                   0
## 3             10          11     5.298507           18                3491
## 4             21          97    27.863636           73                   0
## 5              3           5     4.788079           47                   0
## 6             11          79     7.043956           52                   0
##   ADD_POINTS_SUM_YR_2 EXCHANGE_COUNT avg_discount
## 1               36640             34    0.9616390
## 2               12000             29    1.2523144
## 3               12000             20    1.2546755
## 4                   0             11    1.0908696
## 5               22704             27    0.9706579
## 6                2460             10    0.9676925
#丢弃票价为空的记录
delet_na = datafile[-which(is.na(datafile$SUM_YR_1) |
                           is.na(datafile$SUM_YR_2)),]
#丢弃票价为0、平均折扣率不为0、总飞行公里数大于0的记录
index = ((delet_na$SUM_YR_1 == 0 & delet_na$SUM_YR_2 == 0)
         * (delet_na$avg_discount != 0)
         * (delet_na$SEG_KM_SUM > 0))
newdata = delet_na[-which(index == 1),]
datascore <- data.frame(L=as.numeric(difftime(newdata$LOAD_TIME,newdata$FFP_DATE,units = "days"))/30,
                        R=newdata$LAST_TO_END,
                        F=newdata$FLIGHT_COUNT,
                        M=newdata$SEG_KM_SUM,
                        C=newdata$avg_discount)
head(datascore)
##          L  R   F      M         C
## 1 90.20000  1 210 580717 0.9616390
## 2 86.56667  7 140 293678 1.2523144
## 3 87.16667 11 135 283712 1.2546755
## 4 68.23333 97  23 281336 1.0908696
## 5 60.53333  5 152 309928 0.9706579
## 6 74.70000 79  92 294585 0.9676925
#各个特征数据分布情况
library(ggplot2)
ggplot(datascore, aes(x=L)) + 
    geom_histogram(aes(y=..density..),bins = 30,colour="black", fill="white") +
    geom_density(alpha=.2, fill="1")

《K-means算法原理以及应用(R)》

ggplot(datascore, aes(x=R)) + 
    geom_histogram(aes(y=..density..),bins = 30,colour="black", fill="white") +
    geom_density(alpha=.2, fill="2")

《K-means算法原理以及应用(R)》

ggplot(datascore, aes(x=F)) + 
    geom_histogram(aes(y=..density..),bins = 30,colour="black", fill="white") +
    geom_density(alpha=.2, fill="3")

《K-means算法原理以及应用(R)》

ggplot(datascore, aes(x=M)) + 
    geom_histogram(aes(y=..density..),bins = 30,colour="black", fill="white") +
    geom_density(alpha=.2, fill="4")

《K-means算法原理以及应用(R)》

ggplot(datascore, aes(x=C)) + 
    geom_histogram(aes(y=..density..),bins = 30,colour="black", fill="white") +
    geom_density(alpha=.2, fill="5")

《K-means算法原理以及应用(R)》

#数据标准化
zdatascore=scale(datascore)
colnames(zdatascore)=c("ZL","ZR","ZF","ZM","ZC")
head(zdatascore)
##             ZL         ZR         ZF       ZM       ZC
## [1,] 1.4357472 -0.9449977 14.0345098 26.76211 1.294939
## [2,] 1.3071924 -0.9119453  9.0735594 13.12737 2.866311
## [3,] 1.3284216 -0.8899103  8.7192058 12.65397 2.879075
## [4,] 0.6585213 -0.4161590  0.7816852 12.54111 1.993551
## [5,] 0.3860794 -0.9229628  9.9240081 13.89927 1.343695
## [6,] 0.8873253 -0.5153163  5.6717649 13.17045 1.327664
#聚类分析
result=kmeans(zdatascore,5)
#说明一下,这里聚类中心K=5,由于初始点随机,所以每次聚类的结果可能会有不同。经我多次重复实验后,发现最终的雷达图(见下下图)都是基本相同的,说明聚类的结果大致还是一样的,所以可以采用此聚类结果,对此聚类用户进行群体特征分析,并进行个性化营销。实际中,个人建议也多跑几次,检测聚类结果是否都相同。
#结果输出
head(result$cluster)
## [1] 5 5 5 5 5 5
result$centers#聚类中心
##           ZL         ZR         ZF         ZM          ZC
## 1  0.2696816 -0.7186760  1.2558097  1.1945424  0.32514159
## 2 -0.7170713 -0.3611278 -0.2769407 -0.2718581 -0.18322244
## 3 -0.3272473  1.7114570 -0.5727285 -0.5354953  0.02241081
## 4  1.1545411 -0.2933660 -0.2427147 -0.2446185  0.03465997
## 5  0.6922035 -0.8496275  3.8695212  3.8514378  0.50455875
result$size#查看聚类分布
## [1]  8403 24226 12175 15468  1779
#查看kmeans聚类的结果,这里只用两个特征来展示聚类结果
aaa <- as.data.frame(zdatascore)
aaa$cluster <-result$cluster
qplot(ZL,ZC,data =aaa,colour =factor(cluster))

《K-means算法原理以及应用(R)》

#从图像上看单单二个特征变量,并不能明显的看出聚类的好坏

把聚类中心数据导出到excel,使用雷达图展示

《K-means算法原理以及应用(R)》

群类别

优势特征

弱势特征

客户群1

F

M

R

 

客户群2

L

F

M

 

客户群3

 

F

M

R

客户群4

 

L

C

客户群5

C

R

F

M

*注:正常字体表示最大值、加粗字体表示次大值、斜体字体表示最小值、带下划线的字体表示次小值

重要保持客户:这类客户的平均折扣率(C)较高(一般所乘航班的舱位等级较高),最近乘坐过本公司航班(R)低,乘坐的次数(F)或里程(M)较高。他们是航空公司的高价值客户,是最为理想的客户类型,对航空公司的贡献最大,所占比例却较小。航空公司应该优先将资源投放到他们身上,对他们进行差异化管理和一对一营销,提高这类客户的忠诚度与满意度,尽可能延长这类客户的高水平消费。
重要发展客户:这类客户的平均折扣率(C)较高,最近乘坐过本公司航班(R)低,但乘坐次数(F)或乘坐里程(M)较低。这类客户入会时长(L)短,他们是航空公司的潜在价值客户。虽然这类客户的当前价值并不是很高,但却有很大的发展潜力。航空公司要努力促使这类客户增加在本公司的乘机消费和合作伙伴处的消费,也就是增加客户的钱包份额。通过客户价值的提升,加强这类客户的满意度,提高他们转向竞争对手的转移成本,使他们逐渐成为公司的忠诚客户。
重要挽留客户:这类客户过去所乘航班的平均折扣率(C)、乘坐次数(F)或者里程(M)较高,但是较长时间已经没有乘坐本公司的航班(R)高或是乘坐频率变小。他们客户价值变化的不确定性很高。由于这些客户衰退的原因各不相同,所以掌握客户的最新信息、维持与客户的互动就显得尤为重要。航空公司应该根据这些客户的最近消费时间、消费次数的变化情况,推测客户消费的异动状况,并列出客户名单,对其重点联系,采取一定的营销手段,延长客户的生命周期。
一般与低价值客户:这类客户所乘航班的平均折扣率(C)很低,较长时间没有乘坐过本公司航班(R)高,乘坐的次数(F)或里程(M)较低,入会时长(L)短。他们是航空公司的一般用户与低价值客户,可能是在航空公司机票打折促销时,才会乘坐本公司航班。

客户群排名排名含义
客户群11重要保持客户
客户群52重要发展客户
客户群23重要挽留用户
客户群44一般客户
客户群35低价值客户

营销方式与业务知识紧密相连,航空公司营销人员,可以对不同的客户群体进行个性化营销,避免了资源的浪费的同时,提高营销的有效性。

    原文作者:聚类算法
    原文地址: https://blog.csdn.net/csqazwsxedc/article/details/52225759
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞