1. 相似度模型的应用场景

简单的说,相似度模型的应用场景就是,需要找到和某个实体相似的其他实体。

比如:

(1)商铺选址:某公司要在新城市开新的店铺,需要选址,可以使用相似度模型,找到和现有市场中表现好的商铺地址相似的地点;

(2)广告宣传:其实和商铺选址类似,要选择一个好的宣传地点,可以使用相似度模型,找到和现有最好的宣传地点最相似的地点;

(3)个性化推荐:这是现在互联网领域,尤其是电子商务领域应用很多的场景。用户购买了某个产品,或使用了某个功能,找到和该产品或功能相似的其他产品或者功能推荐给用户。当然,实际的模型不仅仅是计算相似度这么简单,个性化推荐本身就是一个很大的领域。以后有机会在详细写。但是个性化推荐的一个核心环节就是相似度的计算。

2. 相似度的一种常用计算方法:根据实体之间的距离确定相似度

1)  距离越大,相似度越低,距离越小,相似度越高。距离计算方式:item各特征的欧氏距离。

2)  为了避免量级大的特征对最终结果的影响太大,应该把item的各特征值标准化。

knn graph相似度 相似度模型_欧氏距离


3)  标准化的特征值表示的是特征值和均值相差几个标准差。

3.  实例:新店选址

(1)       背景:公司X卖木材火炉,业务从A州扩大到B州,需要确定在B州的哪个城镇设销售点。

(2)       方法:

1)  找到A州销售好的城镇和销售差的城镇;

2)  找到特征集T,这些特征值在A州销售好的城镇和销售差的城镇有明显的差别;

3)  确定T中每一个特征的理想值,得到理想特征值的集合;

4)  找到B州特征集T和理想特征值集合的相似度最高(距离最近)的城镇。

(3)       销售好的标准:X公司产品在当地家庭的覆盖率Y。

(4)       把A州各城镇的Y值按从高到底排序。

(5)       把候选变量集中的各变量按对应的Y值从高到低的顺序排序。

(6)       找到候选变量集中按Y值从高到低具有明显差异的变量(尤其是有单调性的变量),得到初选变量集。

(7)       从初选变量集里进一步筛选变量,比如用相关分析,得到特征变量集T。

(8)       确定T里各变量的理想值(最佳理想值:比A州销售最好的30%的城镇的变量的平均值更好一些),形成理想特征值集合Tb;

(9)       计算Tb里各变量的标准化值(z分值):

knn graph相似度 相似度模型_个性化推荐_02


(10)   把B州所有城镇的T里各变量标准化(使用A州的均值和标准差);

(11)   使用标准化值计算B州所有城镇和Tb欧氏距离;

(12)   把距离值用改变单调性的方式进行转换,得到相似度得分;

(13)   取相似度得分高的作为目标城镇。

(14)   模型验证方法:

1)  使用A州的数据计算T里变量和目标变量Y的相似性;

2)  进行卡方检验;

3)  计算A州各城镇和Tb的距离,做距离和Y的二维散点图,直观观察。

4.  计算相似度的方式

(1)       距离度量

1)  欧氏距离(标准化后的欧氏距离):

knn graph相似度 相似度模型_欧氏距离_03


2)  明氏距离:欧氏距离的推广

knn graph相似度 相似度模型_相似度模型_04


3)  曼哈顿距离:明氏距离的p取1时的计算方式

knn graph相似度 相似度模型_相似度模型_05


4)  切比雪夫距离:p趋向于无穷大时的明氏距离

knn graph相似度 相似度模型_数据挖掘_06


5)  马氏距离

(2)       相似度度量

1)  余弦相似度:两个个体向量夹角的余弦值,和距离度量相比,余弦相似度更加注重两个向量方向上的差异,而不是距离

knn graph相似度 相似度模型_knn graph相似度_07


2)  皮尔森相关系数:即相关分析中的相关系数r,对两个个体的向量基于总体标准化后计算向量夹角的余弦值。

knn graph相似度 相似度模型_knn graph相似度_08


3)  Jaccard相似系数:主要用于计算符号度量或者布尔度量的个体的相似度,因为符号度量或者布尔度量只能看出向量各维度值是否相同,所以Jaccard相似系数只关心个体间的各维度值是否一致这个问题。

knn graph相似度 相似度模型_数据挖掘_09


4)  调整的余弦相似度:把X和Y各属性值都减去X和Y所有属性值相加后的均值后,再用余弦函数计算相似度

 

(3)       欧氏距离和余弦相似度的区别:欧氏距离是最常见的距离度量,而余弦相似度则是最常见的相似度度量,很多的距离度量和相似度度量都是基于这两者的变形和衍生

knn graph相似度 相似度模型_欧氏距离_10

从图上可以看出距离度量衡量的是空间各点间的绝对距离,跟各个点所在的位置坐标(即个体特征维度的数值)直接相关;而余弦相似度衡量的是空间向量的夹角,更加的是体现在方向上的差异,而不是位置。如果保持A点的位置不变,B点朝原方向远离坐标轴原点,那么这个时候余弦相似度cosθ是保持不变 的,因为夹角不变,而A、B两点的距离显然在发生改变,这就是欧氏距离和余弦相似度的不同之处。

根据欧氏距离和余弦相似度各自的计算方式和衡量特征,分别适用于不同的数据分析模型:欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异;而余弦相似度更多的是从方向上区分差异,而对绝对的数值不敏感,更多的用于使用用户对内容评分来区分用户兴趣的相似度和差异,同时修正了用户间可能存在的度量标准不统一的问题(因为余弦相似度对绝对数值不敏感)。