❶ 各种遥感数据分类方法比较
常用的遥感数据的专题分类方法有多种,从分类判别决策方法的角度可以分为统计分类器、神经网络分类器、专家系统分类器等;从是否需要训练数据方面,又可以分为监督分类器和非监督分类器。
一、统计分类方法
统计分类方法分为非监督分类方法和监督分类方法。非监督分类方法不需要通过选取已知类别的像元进行分类器训练,而监督分类方法则需要选取一定数量的已知类别的像元对分类器进行训练,以估计分类器中的参数。非监督分类方法不需要任何先验知识,也不会因训练样本选取而引入认为误差,但非监督分类得到的自然类别常常和研究感兴趣的类别不匹配。相应地,监督分类一般需要预先定义分类类别,训练数据的选取可能会缺少代表性,但也可能在训练过程中发现严重的分类错误。
1.非监督分类器
非监督分类方法一般为聚类算法。最常用的聚类非监督分类方法是 K-均值(K-Means Algorithm)聚类方法(Duda and Hart,1973)和迭代自组织数据分析算法(ISODATA)。其算法描述可见于一般的统计模式识别文献中。
一般通过简单的聚类方法得到的分类结果精度较低,因此很少单独使用聚类方法进行遥感数据专题分类。但是,通过对遥感数据进行聚类分析,可以初步了解各类别的分布,获取最大似然监督分类中各类别的先验概率。聚类分析最终的类别的均值矢量和协方差矩阵可以用于最大似然分类过程(Schowengerdt,1997)。
2.监督分类器
监督分类器是遥感数据专题分类中最常用的一种分类器。和非监督分类器相比,监督分类器需要选取一定数量的训练数据对分类器进行训练,估计分类器中的关键参数,然后用训练后的分类器将像元划分到各类别。监督分类过程一般包括定义分类类别、选择训练数据、训练分类器和最终像元分类四个步骤(Richards,1997)。每一步都对最终分类的不确定性有显着影响。
监督分类器又分为参数分类器和非参数分类器两种。参数分类器要求待分类数据满足一定的概率分布,而非参数分类器对数据的概率分布没有要求。
遥感数据分类中常用的分类器有最大似然分类器、最小距离分类器、马氏距离分类器、K-最近邻分类器(K-Nearest neighborhood classifier,K-NN)以及平行六面体分类器(parallelepiped classifier)。最大似然、最小距离和马氏距离分类器在第三章已经详细介绍。这里简要介绍 K-NN 分类器和平行六面体分类器。
K-NN分类器是一种非参数分类器。该分类器的决策规则是:将像元划分到在特征空间中与其特征矢量最近的训练数据特征矢量所代表的类别(Schowengerdt,1997)。当分类器中 K=1时,称为1-NN分类器,这时以离待分类像元最近的训练数据的类别作为该像元的类别;当 K >1 时,以待分类像元的 K 个最近的训练数据中像元数量最多的类别作为该像元的类别,也可以计算待分类像元与其 K 个近邻像元特征矢量的欧氏距离的倒数作为权重,以权重值最大的训练数据的类别作为待分类像元的类别。Hardin,(1994)对 K-NN分类器进行了深入的讨论。
平行六面体分类方法是一个简单的非参数分类算法。该方法通过计算训练数据各波段直方图的上限和下限确定各类别像元亮度值的范围。对每一类别来说,其每个波段的上下限一起就形成了一个多维的盒子(box)或平行六面体(parallelepiped)。因此 M 个类别就有M 个平行六面体。当待分类像元的亮度值落在某一类别的平行六面体内时,该像元就被划分为该平行六面体代表的类别。平行六面体分类器可以用图5-1中两波段的遥感数据分类问题来表示。图中的椭圆表示从训练数据估计的各类别亮度值分布,矩形表示各类别的亮度值范围。像元的亮度落在哪个类别的亮度范围内,就被划分为哪个类别。
图5-1 平行六面体分类方法示意图
3.统计分类器的评价
各种统计分类器在遥感数据分类中的表现各不相同,这既与分类算法有关,又与数据的统计分布特征、训练样本的选取等因素有关。
非监督聚类算法对分类数据的统计特征没有要求,但由于非监督分类方法没有考虑任何先验知识,一般分类精度比较低。更多情况下,聚类分析被作为非监督分类前的一个探索性分析,用于了解分类数据中各类别的分布和统计特征,为监督分类中类别定义、训练数据的选取以及最终的分类过程提供先验知识。在实际应用中,一般用监督分类方法进行遥感数据分类。
最大似然分类方法是遥感数据分类中最常用的分类方法。最大似然分类属于参数分类方法。在有足够多的训练样本、一定的类别先验概率分布的知识,且数据接近正态分布的条件下,最大似然分类被认为是分类精度最高的分类方法。但是当训练数据较少时,均值和协方差参数估计的偏差会严重影响分类精度。Swain and Davis(1978)认为,在N维光谱空间的最大似然分类中,每一类别的训练数据样本至少应该达到10×N个,在可能的条件下,最好能达到100×N以上。而且,在许多情况下,遥感数据的统计分布不满足正态分布的假设,也难以确定各类别的先验概率。
最小距离分类器可以认为是在不考虑协方差矩阵时的最大似然分类方法。当训练样本较少时,对均值的估计精度一般要高于对协方差矩阵的估计。因此,在有限的训练样本条件下,可以只估计训练样本的均值而不计算协方差矩阵。这样最大似然算法就退化为最小距离算法。由于没有考虑数据的协方差,类别的概率分布是对称的,而且各类别的光谱特征分布的方差被认为是相等的。很显然,当有足够训练样本保证协方差矩阵的精确估计时,最大似然分类结果精度要高于最小距离精度。然而,在训练数据较少时,最小距离分类精度可能比最大似然分类精度高(Richards,1993)。而且最小距离算法对数据概率分布特征没有要求。
马氏距离分类器可以认为是在各类别的协方差矩阵相等时的最大似然分类。由于假定各类别的协方差矩阵相等,和最大似然方法相比,它丢失了各类别之间协方差矩阵的差异的信息,但和最小距离法相比较,它通过协方差矩阵保持了一定的方向灵敏性(Richards,1993)。因此,马氏距离分类器可以认为是介于最大似然和最小距离分类器之间的一种分类器。与最大似然分类一样,马氏距离分类器要求数据服从正态分布。
K-NN分类器的一个主要问题是需要很大的训练数据集以保证分类算法收敛(Devijver and Kittler,1982)。K-NN分类器的另一个问题是,训练样本选取的误差对分类结果有很大的影响(Cortijo and Blanca,1997)。同时,K-NN分类器的计算复杂性随着最近邻范围的扩大而增加。但由于 K-NN分类器考虑了像元邻域上的空间关系,和其他光谱分类器相比,分类结果中“椒盐现象”较少。
平行六面体分类方法的优点在于简单,运算速度快,且不依赖于任何概率分布要求。它的缺陷在于:首先,落在所有类别亮度值范围之外的像元只能被分类为未知类别;其次,落在各类别亮度范围重叠区域内的像元难以区分其类别(如图5-1所示)。
各种统计分类方法的特点可以总结为表5-1。
二、神经网络分类器
神经网络用于遥感数据分类的最大优势在于它平等地对待多源输入数据的能力,即使这些输入数据具有完全不同的统计分布,但是由于神经网络内部各层大量的神经元之间连接的权重是不透明的,因此用户难以控制(Austin,Harding and Kanellopoulos et al.,1997)。
神经网络遥感数据分类被认为是遥感数据分类的热点研究领域之一(Wilkinson,1996;Kimes,1998)。神经网络分类器也可分为监督分类器和非监督分类器两种。由于神经网络分类器对分类数据的统计分布没有任何要求,因此神经网络分类器属于非参数分类器。
遥感数据分类中最常用的神经网络是多层感知器模型(multi-layer percep-tron,MLP)。该模型的网络结构如图5-2所示。该网络包括三层:输入层、隐层和输出层。输入层主要作为输入数据和神经网络输入界面,其本身没有处理功能;隐层和输出层的处理能力包含在各个结点中。输入的结构一般为待分类数据的特征矢量,一般情况下,为训练像元的多光谱矢量,每个结点代表一个光谱波段。当然,输入结点也可以为像元的空间上下文信息(如纹理)等,或多时段的光谱矢量(Paola and Schowengerdt,1995)。
表5-1 各种统计分类器比较
图5-2 多层感知器神经网络结构
对于隐层和输出层的结点来说,其处理过程是一个激励函数(activation function)。假设激励函数为f(S),对隐层结点来说,有:
遥感信息的不确定性研究
其中,pi为隐层结点的输入;hj为隐层结点的输出;w为联接各层神经之间的权重。
对输出层来说,有如下关系:
遥感信息的不确定性研究
其中,hj为输出层的输入;ok为输出层的输出。
激励函数一般表达为:
遥感信息的不确定性研究
确定了网络结构后,就要对网络进行训练,使网络具有根据新的输入数据预测输出结果的能力。最常用的是后向传播训练算法(Back-Propagation)。这一算法将训练数据从输入层进入网络,随机产生各结点连接权重,按式(5-1)(5-2)和(5-3)中的公式进行计算,将网络输出与预期的结果(训练数据的类别)相比较并计算误差。这个误差被后向传播的网络并用于调整结点间的连接权重。调整连接权重的方法一般为delta规则(Rumelhart,et al.,1986):
遥感信息的不确定性研究
其中,η为学习率(learning rate);δk为误差变化率;α为动量参数。
将这样的数据的前向和误差后向传播过程不断迭代,直到网络误差减小到预设的水平,网络训练结束。这时就可以将待分类数据输入神经网络进行分类。
除了多层感知器神经网络模型,其他结构的网络模型也被用于遥感数据分类。例如,Kohonen自组织网络被广泛用于遥感数据的非监督聚类分析(Yoshida et al.,1994;Schaale et al.,1995);自适应共振理论(Adaptive Resonance Theory)网络(Silva,S and Caetano,M.1997)、模糊ART图(Fuzzy ART Maps)(Fischer,M.M and Gopal,S,1997)、径向基函数(骆剑承,1999)等也被用于遥感数据分类。
许多因素影响神经网络的遥感数据分类精度。Foody and Arora(1997)认为神经网络结构、遥感数据的维数以及训练数据的大小是影响神经网络分类的重要因素。
神经网络结构,特别是网络的层数和各层神经元的数量是神经网络设计最关键的问题。网络结构不但影响分类精度,而且对网络训练时间有直接影响(Kavzoglu and Mather,1999)。对用于遥感数据分类的神经网络来说,由于输入层和输出层的神经元数目分别由遥感数据的特征维数和总的类别数决定的,因此网络结构的设计主要解决隐层的数目和隐层的神经元数目。一般过于复杂的网络结构在刻画训练数据方面较好,但分类精度较低,即“过度拟合”现象(over-fit)。而过于简单的网络结构由于不能很好的学习训练数据中的模式,因此分类精度低。
网络结构一般是通过实验的方法来确定。Hirose等(1991)提出了一种方法。该方法从一个小的网络结构开始训练,每次网络训练陷入局部最优时,增加一个隐层神经元,然后再训练,如此反复,直到网络训练收敛。这种方法可能导致网络结构过于复杂。一种解决办法是每当认为网络收敛时,减去最近一次加入的神经元,直到网络不再收敛,那么最后一次收敛的网络被认为是最优结构。这种方法的缺点是非常耗时。“剪枝法”(pruning)是另一种确定神经网络结构的方法。和Hirose等(1991)的方法不同,“剪枝法”从一个很大的网络结构开始,然后逐步去掉认为多余的神经元(Sietsma and Dow,1988)。从一个大的网络开始的优点是,网络学习速度快,对初始条件和学习参数不敏感。“剪枝”过程不断重复,直到网络不再收敛时,最后一次收敛的网络被认为最优(Castellano,Fanelli and Pelillo,1997)。
神经网络训练需要训练数据样本的多少随不同的网络结构、类别的多少等因素变化。但是,基本要求是训练数据能够充分描述代表性的类别。Foody等(1995)认为训练数据的大小对遥感分类精度有显着影响,但和统计分类器相比,神经网络的训练数据可以比较少。
分类变量的数据维对分类精度的影响是遥感数据分类中的普遍问题。许多研究表明,一般类别之间的可分性和最终的分类精度会随着数据维数的增大而增高,达到某一点后,分类精度会随数据维的继续增大而降低(Shahshahani and Landgrebe,1994)。这就是有名的Hughes 现象。一般需要通过特征选择去掉信息相关性高的波段或通过主成分分析方法去掉冗余信息。分类数据的维数对神经网络分类的精度同样有明显影响(Battiti,1994),但Hughes 现象没有传统统计分类器中严重(Foody and Arora,1997)。
Kanellopoulos(1997)通过长期的实践认为一个有效的ANN模型应考虑以下几点:合适的神经网络结构、优化学习算法、输入数据的预处理、避免振荡、采用混合分类方法。其中混合模型包括多种ANN模型的混合、ANN与传统分类器的混合、ANN与知识处理器的混合等。
三、其他分类器
除了上述统计分类器和神经网络分类器,还有多种分类器被用于遥感图像分类。例如模糊分类器,它是针对地面类别变化连续而没有明显边界情况下的一种分类器。它通过模糊推理机制确定像元属于每一个类别的模糊隶属度。一般的模糊分类器有模糊C均值聚类法、监督模糊分类方法(Wang,1990)、混合像元模型(Foody and Cox,1994;Settle and Drake,1993)以及各种人工神经网络方法等(Kanellopoulos et al.,1992;Paola and Schowengerdt,1995)。由于模糊分类的结果是像元属于每个类别的模糊隶属度,因此也称其为“软分类器”,而将传统的分类方法称为“硬分类器”。
另一类是上下文分类器(contextual classifier),它是一种综合考虑图像光谱和空间特征的分类器。一般的光谱分类器只是考虑像元的光谱特征。但是,在遥感图像中,相邻的像元之间一般具有空间自相关性。空间自相关程度强的像元一般更可能属于同一个类别。同时考虑像元的光谱特征和空间特征可以提高图像分类精度,并可以减少分类结果中的“椒盐现象”。当类别之间的光谱空间具有重叠时,这种现象会更明显(Cortijo et al.,1995)。这种“椒盐现象”可以通过分类的后处理滤波消除,也可以通过在分类过程中加入代表像元邻域关系的信息解决。
在分类过程中可以通过不同方式加入上下文信息。一是在分类特征中加入图像纹理信息;另一种是图像分割技术,包括区域增长/合并常用算法(Ketting and Landgrebe,1976)、边缘检测方法、马尔可夫随机场方法。Rignot and Chellappa(1992)用马尔可夫随机场方法进行SAR图像分类,取得了很好的效果,Paul Smits(1997)提出了保持边缘细节的马尔可夫随机场方法,并用于SAR图像的分类;Crawford(1998)将层次分类方法和马尔可夫随机场方法结合进行SAR图像分类,得到了更高的精度;Cortijo(1997)用非参数光谱分类对遥感图像分类,然后用ICM算法对初始分类进行上下文校正。
❷ 全面归纳距离和相似度计算方法
距离(distance,差异程度)、相似度(similarity,相似程度)方法可以看作是以某种的距离函数计算元素间的距离,这些方法作为机器学习的基础概念,广泛应用于如:Kmeans聚类、协同过滤推荐算法、相似度算法、MSE损失函数等等。本文对常用的距离计算方法进行归纳以及解析,分为以下几类展开:
对于点x=(x1,x2...xn) 与点y=(y1,y2...yn) , 闵氏距离可以用下式表示:
闵氏距离是对多个距离度量公式的概括性的表述,p=1退化为曼哈顿距离;p=2退化为欧氏距离;切比雪夫距离是闵氏距离取极限的形式。
曼哈顿距离 公式:
欧几里得距离公式:
如下图蓝线的距离即是曼哈顿距离(想象你在曼哈顿要从一个十字路口开车到另外一个十字路口实际驾驶距离就是这个“曼哈顿距离”,此即曼哈顿距离名称的来源,也称为城市街区距离),红线为欧几里得距离:
切比雪夫距离起源于国际象棋中国王的走法,国际象棋中国王每次只能往周围的8格中走一步,那么如果要从棋盘中A格(x1,y1)走到B格(x2,y2)最少需要走几步?你会发现最少步数总是max(|x2-x1|,|y2-y1|)步。有一种类似的一种距离度量方法叫切比雪夫距离。
切比雪夫距离就是当p趋向于无穷大时的闵氏距离:
距离函数并不一定是距离度量,当距离函数要作为距离度量,需要满足:
由此可见,闵氏距离可以作为距离度量,而大部分的相似度并不能作为距离度量。
闵氏距离也是Lp范数(如p==2为常用L2范数正则化)的一般化定义。
下图给出了一个Lp球( ||X||p = 1 )的形状随着P的减少的可视化图:
距离度量随着空间的维度d的不断增加,计算量复杂也逐增,另外在高维空间下,在维度越高的情况下,任意样本之间的距离越趋于相等(样本间最大与最小欧氏距离之间的相对差距就趋近于0),也就是维度灾难的问题,如下式结论:
对于维度灾难的问题,常用的有PCA方法进行降维计算。
假设各样本有年龄,工资两个变量,计算欧氏距离(p=2)的时候,(年龄1-年龄2)² 的值要远小于(工资1-工资2)² ,这意味着在不使用特征缩放的情况下,距离会被工资变量(大的数值)主导, 特别当p越大,单一维度的差值对整体的影响就越大。因此,我们需要使用特征缩放来将全部的数值统一到一个量级上来解决此问题。基本的解决方法可以对数据进行“标准化”和“归一化”。
另外可以使用马氏距离(协方差距离),与欧式距离不同其考虑到各种特性之间的联系是(量纲)尺度无关 (Scale Invariant) 的,可以排除变量之间的相关性的干扰,缺点是夸大了变化微小的变量的作用。马氏距离定义为:
马氏距离原理是使用矩阵对两两向量进行投影后,再通过常规的欧几里得距离度量两对象间的距离。当协方差矩阵为单位矩阵,马氏距离就简化为欧氏距离;如果协方差矩阵为对角阵,其也可称为正规化的欧氏距离。
根据向量x,y的点积公式:
我们可以利用向量间夹角的cos值作为向量相似度[1]:
余弦相似度的取值范围为:-1~1,1 表示两者完全正相关,-1 表示两者完全负相关,0 表示两者之间独立。余弦相似度与向量的长度无关,只与向量的方向有关,但余弦相似度会受到向量平移的影响(上式如果将 x 平移到 x+1, 余弦值就会改变)。
另外,归一化后计算欧氏距离,等价于余弦值:两个向量x,y, 夹角为A,欧氏距离D=(x-y)^2 = x 2+y 2-2|x||y|cosA = 2-2cosA
协方差是衡量多维数据集中,变量之间相关性的统计量。如下公式X,Y的协方差即是,X减去其均值 乘以 Y减去其均值,所得每一组数值的期望(平均值)。
如果两个变量之间的协方差为正值,则这两个变量之间存在正相关,若为负值,则为负相关。
皮尔逊相关系数数值范围也是[-1,1]。皮尔逊相关系数可看作是在余弦相似度或协方差基础上做了优化(变量的协方差除以标准差)。它消除每个分量标准不同(分数膨胀)的影响,具有平移不变性和尺度不变性。
卡方检验X2,主要是比较两个分类变量的关联性、独立性分析。如下公式,A代表实际频数;E代表期望频数:
Levenshtein 距离是 编辑距离 (Editor Distance) 的一种,指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
像hallo与hello两个字符串编辑距离就是1,我们通过替换”a“ 为 ”e“,就可以完成转换。
汉明距离为两个等长字符串对应位置的不同字符的个数,也就是将一个字符串变换成另外一个字符串所需要替换的字符个数。例如:1011101 与 1001001 之间的汉明距离是 2,“toned” 与 “roses” 之间的汉明距离是 3
另外的,对于字符串距离来说,不同字符所占的份量是不一样的。比如”我乐了“ 与【“我怒了”,”我乐了啊” 】的Levenshtein 距离都是1,但其实两者差异还是很大的,因为像“啊”这种语气词的重要性明显不如“乐”,考虑字符(特征)权重的相似度方法有:TF-IDF、BM25、WMD算法。
Jaccard 取值范围为0~1,0 表示两个集合没有重合,1 表示两个集合完全重合。
但Dice不满足距离函数的三角不等式,不是一个合适的距离度量。
基础地介绍下信息熵,用来衡量一个随机变量的不确定性程度。对于一个随机变量 X,其概率分布为:
互信息用于衡量两个变量之间的关联程度,衡量了知道这两个变量其中一个,对另一个不确定度减少的程度。公式为:
如下图,条件熵表示已知随机变量X的情况下,随机变量Y的信息熵,因此互信息实际上也代表了已知随机变量X的情况下,随机变量Y的(信息熵)不确定性的减少程度。
JS 散度解决了 KL 散度不对称的问题,定义为:
群体稳定性指标(Population Stability Index,PSI), 可以看做是解决KL散度非对称性的一个对称性度量指标,用于度量分布之间的差异(常用于风控领域的评估模型预测的稳定性)。
psi与JS散度的形式是非常类似的,如下公式:
PSI的含义等同P与Q,Q与P之间的KL散度之和。
DTW 距离用于衡量两个序列之间的相似性,适用于不同长度、不同节奏的时间序列。DTW采用了动态规划DP(dynamic programming)的方法来进行时间规整的计算,通过自动warping扭曲 时间序列(即在时间轴上进行局部的缩放),使得两个序列的形态尽可能的一致,得到最大可能的相似度。(具体可参考[5])
图结构间的相似度计算,有图同构、最大共同子图、图编辑距离、Graph Kernel 、图嵌入计算距离等方法(具体可参考[4][6])。
度量学习的对象通常是样本特征向量的距离,度量学习的关键在于如何有效的度量样本间的距离,目的是通过训练和学习,减小或限制同类样本之间的距离,同时增大不同类别样本之间的距离,简单归类如下[2]:
最后,附上常用的距离和相似度度量方法[3]:
❸ k-means与RFM模型结合进行用户群体划分
在CRM系统中经常要对用户进行划分,以标记不同的标签,进行个性化的营销触达动作。通常的用户群体划分会使用用户的一些属性信息,例如年龄,职业,性别等。但是这些属性基本上都是用户本身的特征属性,并不是和品牌关联产生的属性信息。另外一种常用的用户模型,就是 RFM模型 ,是以用户的实际购买行为数据作为基础,进行用户群体的划分的,在实践中更加具有实际价值。
RFM模型由三个指标组成,分别为:
最近一次消费 (Recency)
消费频率 (Frequency)
消费金额 (Monetary)
可以看到这三个属性都是通过用户的购买行为计算得出的,这些指标基本上代表了用户是否活跃,购买能力,忠诚度等信息。
而我们的目标是通过对每个用户的RFM属性进行计算,将用户群体划分为不同的种类进行区分,以便我们进行分析和精准营销。例如我们可以分析出高价值用户,重点发展用户,流失用户等群体进行针对性营销动作。
本文将使用Python的一些工具包,对用户数据集进行分析处理,例如建立RFM模型,数据标准化,以及使用k-means聚类算法将用户群体进行划分。需要读者具有一些基础的Python和数据统计知识。
首先我们通过一些订单数据分析得到一部分用户的样本数据来:
这里包括了用户的id,总购买笔数,总购买金额以及最后一笔订单时间的信息。我们将文件加载进来,截取一部分后对字段类型进行处理:
为了将其转化为我们要使用的RFM属性,我们需要对last_order_date进行处理,转换为最后一次订单时间到目前的天数。这样我们就获得了RFM的基本属性,分别为last_order_day_from_now(R), total_order_count(F), total_order_price(M)。处理完成后对数据进行可视化观察数据分布:
其散点图为:
我们会发现实际上的数据大部分都聚集在了一起,并且有一些非常离散的极端值数据,这对我们后续进行数据聚类会产生不利影响,所以我们使用log函数对数据进行处理,让其分布的更加均匀:
可以看到现在数据分布的已经比较均匀了,这为我们进行聚类打下一个比较好的基础。但同时我们也会发现RFM这三个属性的单位却并不相同,分别是天数,交易笔数和交易金额。这就造成了其数值差别巨大。而聚类算法一般都是使用不同向量间的距离进行计算划分的,属性单位不同造成的数值差异过大会造成计算距离时的权重分布不均衡,也并不能反映实际情况,所以我们还要对数据进行标准化处理,这里我们使用z-score对RFM属性进行加工运算。
z-score是一种数据标准化的计算方法,其公式为:
z = (x – μ) / σ
μ代表x所属数据组的平均值,σ代表x所属数据组的方差。所以通过z-score计算,我们将绝对值数据转化为一个数据在所属数据组中的位置(得分),这样不同单位和类型间的数据使用z-score做相互的比较也就有了一定的意义。
这时候会看到数据不但分布较为均匀,而且不同维度间的数值差异也很小了,这样我们可以把三种不同单位的属性一起进行处理。
当我们建立好RFM的数据模型之后,期望通过不同的RFM值,对用户进行区分以进行精准化营销。当然我们可以通过对RFM这三组数值的平均值或者中位数和每个用户进行比较,以建立起一个数据立方,进行群体划分。但另外一方面,一般来说用户群体会大致符合28原则,80%左右的收入是由20%左右的客户所贡献的,所以根据平均值或者中位数进行群体划分也并不能总是科学的反应出不同的用户群体来,所以我们也可以基于数据本身的特性,使用聚类算法进行处理,以便让数据更加“自然”的区分。
这里我们选用非常常用的k-means算法进行聚类计算,k-means聚类的原理并不复杂,首先随机的或者通过更高效的方式(例如k-means++)选取k个点,然后不断迭代的计算,修正这k个点的坐标,目的是让集合中的每个点的距离(有很多种距离算法,比较常用的是欧氏距离)都和k个点里的其中一个尽量的近,而和其他的尽量的远。这样数据集合就能根据自身的分布规律,自然的区分出不同的类别来。
这里我们将k值设定为3,也就是将数据划分为三个部分,通过使用我们处理后的RFM属性进行计算,最终我们得到:
可以看到不同的颜色代表不同的用户类别,可以简单的认为标记为0的是流失用户,1是重点发展用户,2是高价值用户。这样我们就可以对不同的群体使用适合的营销策略了,同时当有新的用户加入后,我们也可以使用得到的k-means模型对其进行预测划分。
在使用这种方式做实际的数据处理时,可能因为数据分布的原因导致区分度并不是特别好,因为根据销售数据进行用户区分,并不是总能发现比较明显的区分“界限”,也就是不同群体间的边界其实是非常模糊和混杂的(从上面的最终分析图也可以看出这样的情况),所以从这个角度讲,单纯通过RFM模型和聚类进行用户群体划分也是有它的局限性的。