在Web日志数据上使用k-means聚类

时间:2013-12-03 10:52:18

标签: apache data-mining k-means access-log

我有一个来自访问网络日志文件的数据集,我有兴趣找到类似的集群。 (我是数据挖掘的绝对初学者)。到目前为止,我已经在同一个问题领域提到了许多研究论文。

An Efficient Approach for Clustering Web Access Patterns from Web Logs

Classifying the user intent of web queries using k-means clustering

我想使用k-means聚类来聚类网页。虽然这些论文讨论了算法,但它们没有指定提供输入数据集的方式。 k-means使用欧几里德距离计算数据点之间的相似性。因此,如何使用k-means规范化我的数据集以进行挖掘,因为网址不能直接用于k-means。对此有何帮助/好的参考?

示例数据集(p1..pn是不同的网页)

p1,p2,p3,p4
p1,p2
p1,p5,p6,p7
p1,p2,p3,p5

1 个答案:

答案 0 :(得分:2)

如果我理解正确,那么您就拥有了一组网页,并为每个网页访问过这些网页。例如(0 - 未访问,1 - 访问):

WebPage  | user1 | user2 | user3
webpage1 |     0 |     1 |     1
webpage2 |     1 |     0 |     0
webpage3 |     0 |     1 |     1

你想要找到这些网页之间的距离。

然后两个网页之间的欧几里德距离是:
d(wp 1 ,wp 2 )= sqrt((u 1,1 < / sub> - u 2,1 )^ 2 +(u 1,2 - u 2,2 )^ 2 + ... +(u 1,n - u 2,n )^ 2),
其中u 2,1 = 1 if user1已访问过网页2,否则为0

所以d(网页1,网页2)= sqrt((0 - 1)^ 2 +(1 - 0)^ 2 +(1 - 0)^ 2)= sqrt(3)
d(webpage1,webpage3)= sqrt(0 + 0 + 0)= 0 =它们之间的距离为零

您还可以为每个用户考虑特定网页访问次数,而不是访问网页使用加权值而不是1:numberOfParticularWebPageVisits / numberOFAllUsersWebpageVisits