浅谈数据处理中的相关分析
大数据的发展经历了从因果分析到相关分析的转变。宏观上来讲,如果两个事务存在某种统计学意义上的依赖性就称两者具有相关性。这里我们就简单聊聊各种相关分析的方法。
我们经常会用到的比如计算两个商品的相似度,或计算两个用户之间的相似度,如下图所示,是基于商品的购买行为,来计算两个商品之间的相似程度。我们先基于此例来说明。这里每个商品可以表示成用户购买行为的特征向量,其中1表示此用户购买,0表示此用户未购买。
设商品a的特征向量为向量A, 商品b的特征向量为向量B,那么常用的计算相关性的方法有以下:
Jaccard相关是基于计算集合之间的相似度方法,而Cosine和Pearson都属于积差相关的范畴。通过简单对比,我们看得出A和B的Pearson相关系数就是向量A和B归一化后再计算Cosine相关系数的结果。
如果在某些情况下,我们不需要顾及计算向量中值的相对大小,那么还可以计算等级相关性系数,如Spearman等级相关和Kendall等级相关等。等级相关没有积差相关要求那样严格,相同的情况下,等级相关的精确度要低于积差相关。
如果我们想除去共同噪声的影响,可以选择偏相关分析的方法(在频域上叫偏相干)。其结果与先回归掉噪声再计算相关的结果是一样的。
如果我们的处理对象是时间序列,除了以上谈到的方法外,我们还可以度量频域上的相关性,如使用相干谱分析的方法,如小波相干等。即您可以得到不同时间点不同频率上的线性相关性系数,同时还可以平衡时间和空间上的分辨率。
如果有时间建议大家不妨多做些实验,而且要定期做,因为数据集的变化(稀疏度、噪声等因素)可能导致相似度指标效果的变化。比如对于一个电商平台的商品推荐系统,初期时可能使用方法x效果最好,当用户数逐渐增加,商品越来越丰富,可能方法y效果最好,直到系统越来越复杂,可能这时方法z是最好的了。所以建议定期做些离线试验来选择此时效果最好的方法。
我们常用的如Jaccard相关, Cosine相关,Pearson 相关都是属于线性相关的范畴,复杂的还有非线性相关的方法,如多谱分析,互信息等。但这些在我们电商的场景中很少用到。