找到这种模式的任何方法/算法?

时间:2015-12-18 03:20:47

标签: algorithm

我是机器学习的新手,所以我想我应该问你们的建议。我的问题基本上是找到类似模式的用户。例如,有3个用户A,B和C,每个用户每天有4个功能,F1,F2,F3,F4。让我们假设这些功能具有以下值: 第1天

USER F1 F2 F3 F4

A 10 20 10 50

B 2 4 2 10

C 2 3 9 13

第2天 ......

我想要识别的是用户A& B具有100%匹配(每个特征的比率总是为5.假设这5天中的每一个这个比率是常数),而A& C或B& C的匹配分数介于0.00和1.00之间。什么算法对我有用? 我考虑过余弦相似度,相关性计算等等。但由于我没有很多数据点(5天* 4 = 20个值),我不知道这是否有效?

2 个答案:

答案 0 :(得分:0)

https://en.wikipedia.org/wiki/Cosine_similarity的定义表明,对于A和B,它将是1.0(或者,通常,任何两个向量,其中一个是另一个的倍数),但不是A,C和B,C - 和你应该能够手工检查。

因为你只有少量的向量,所以应该可以计算并检查所有相似之处。如果您有非常多的向量,则可以查找与余弦相似性相关的近似方法,例如https://en.wikipedia.org/wiki/Locality-sensitive_hashing#Random_projection

答案 1 :(得分:0)

您不需要机器学习算法,您需要的是一种方法来查看2个向量的相似性。如果使用二次差分,最常见的方法。如果您的数据具有相似的范围,则可以正常工作。这意味着您的数据在相同的范围内,如(0-10)。如果您有一些像0.0001这样的值而其他像10000这样的值,那么您将需要其他方法。

另一个好方法是Kullback-Liebler。在这里,您必须将数据转换为概率。所有行都必须加1。