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