设计 L1 和 L2 距离函数来评估银行客户的相似性。每个客户都具有以下属性

Design L1 and L2 distance functions to assess the similarity of bank customers. Each customer is characterized by the following attribute

我很难回答下面的问题。我不确定我是否理解正确,但无论哪种方式,如果有人有时间解释,我都需要一些帮助来进一步理解它,请这样做。

设计L1和L2距离函数来评估银行客户的相似度。每个客户都具有以下属性: − 年龄(客户年龄,实数,最大90岁,最小15岁) − Cr(“信用评级”)是具有“非常好”、“好”、“中等”、“差”和“非常差”值的序数属性。 − Av_bal(平均账户余额,实数,均值为7000,标准差为4000)

  1. 使用 L1 距离函数计算以下 2 个客户之间的距离:c1 = (55, good, 7000) 和 c2 = (25, poor, 1000)。 [15 分]

使用L2距离函数计算上述2个客户之间的距离

使用L2距离函数计算上述2个客户之间的距离。 用 L1

回答

d(c1,c2) = (c1.cr-c2.cr)/4 +(c1.avg.bal –c2.avg.bal/4000)* (c1.age-均值.age/std.age)-( c2.age-均值.age/std.age)

问题原样,留有解释的余地​​。主要是因为没有准确指定相似性。我将尝试解释标准方法是什么。

通常,在开始之前,您希望对值进行归一化处理,使它们大致处于同一范围内。否则,你的相似度将被方差最大的特征所支配。

如果您没有关于分布的信息,只有值的范围,您可以尝试将它们归一化为 [0,1]。对于您的示例,这意味着

norm_age = (age-15)/(90-15)

对于标称值,如果您想使用 Lp-Norms,您需要找到到序数值的映射。注意:这并不总是可能的(例如,颜色不能直观地映射到序数值)。在你的情况下,你可以像这样转换信用评级

cr = {0表示“非常好”,1表示“好”,2表示“中等”,3表示“差”,4表示“非常差”}

之后你可以做与年龄相同的归一化

norm_cr = cr/4

最后,对于正态分布的值,您通常通过减去平均值并除以标准差来执行标准化。

norm_av_bal = (av_bal-7000)/4000

现在您已经规范化了您的值,您可以继续定义距离函数:

L1(c1, c2) = |c1.norm_age - c2.norm_age| + |c1.norm_cr - c2.norm_cr | + |c1.norm_av_bal - c2.norm_av_bal|

L2(c1, c2) = sqrt((c1.norm_age - c2.norm_age)2 + (c1.norm_cr - c2.norm_cr)2 + (c1.norm_av_bal - c2.norm_av_bal)2)