图1.
这个图使用的方法: 简单对应分析
核心思想对高维数据降维同时表示在二维图上。
这些坐标点是什么生成的:
现在我们有n行套餐 样本有m列维度对之进行描述,在本问题中m=5(低arpu,中低,中,中高,高),n=12[公客套餐取了总人数90%的12种套餐)
不妨记 X(n*m)为样本矩阵:m行 n列
图1 有2种点,套餐的点和ARPU分档的点,首先来画套餐的点吧:
X(n*m)
每个套餐都是被5个ARPU分档来表示的一个1*m的行向量,对应分析的方法是为了研究套餐在各分档上的用户数占比,因此
我们行向量中点化成和为1的占比,例如 4G-399 (1,3,5,4,1) 化成 (0.07,0.21,0.36,0.29,0.07)
于是得到新的矩阵 X’
接着对X’进行标准化,也就是对 X’中每个格子值
例如刚才的 4G-399 (0.07,0.21,0.36,0.29,0.07)中第二个格子 0.21 进行标准化:0.21减去此位置处期望/此处标准方差
** 此位置处期望就是(该行和/总数) *(该列和/总数),这里的标准方差是 sqrt((该行和/总数) *(该列和/总数)) 。此处是多项式分布。
标准化的方式意味着,当表格内数量占多的列,将会主导期望的数值,也就是经过标准化后的点更加接近0,也就是在后期经过乘以一个矩阵降维后,点也在原点附近。
记标准化后的X为 Z
Z(n*m)
然后我们对 Z矩阵进行svd分解 Z=P* diag *Qt
Diag表示分解后的特征值对角阵维度和Z的秩有关,不妨记为k
K<=n且k<=m , 并且特征值从大到小排列。在简单对应分析中,k=2
P(n*k) 是n行k列的矩阵
Qt 表示Q的转置矩阵,因此Q(m*k) 是m行k列矩阵
此处略去很多推导,总之 Q矩阵第一列,就是套餐的点在arpu值构成的空间中,方差最大的方向【总是优先选择方差较大的方向进行降维,因为点在该方向上有区分度】
因此套餐中的点的二维坐标是 套餐的原始点(1行m列行向量)*Q(m行k列)得到套餐的新坐标点(1行2列)。【真实的坐标点会有一定比例的缩放】