我正在尝试根据他们一周工作时间的模式对大量人群进行聚类。这是我正在使用的数据的一个例子:
table, th, td {
border: 1px solid black;
}
<table>
<tr>
<th>Name</th>
<th>Monday (00:00 to 07:59)</th>
<th>Monday (08:00 to 15:59)</th>
<th>Monday (16:00 to 23:59)</th>
</tr>
<tr>
<td>Guy1</td>
<td>3</td>
<td>5.5</td>
<td>0.5</td>
</tr>
<tr>
<td>Guy2</td>
<td>0</td>
<td>7</td>
<td>2</td>
</tr>
<tr>
<td>Guy3</td>
<td>4</td>
<td>4</td>
<td>1</td>
</tr>
</table>
我想根据工作时间模式找到群集。我正在使用的实际数据集有超过10000行(不同的个体),并且有42列(间隔小时)。我正在使用R-Studio。
我希望看到不同个体的“个人资料”,这些资料将基于本周工作时间模式的相似性。例如,可能一个人的工作时间集中在工作日上午9点到下午6点,表明他属于定期安排的员工群,而另一个人的工作时间集中在夜间,表明该人工作夜班。 / p>
请注意,我是一名尚未毕业的实习生,我今天刚学会了R.这也是我的第一个StackOverflow问题,所以请原谅我无知或不知情。
答案 0 :(得分:1)
首先,您可能想要了解聚类理论。 例如that post。然后跟进一些R代码。
原因是因为群集通常非常依赖于您的数据以及您想要实现的目标。通常没有完美的解决方案,因此您必须评估自己所完成的工作是否足够好。
你可以对k-means和层次聚类做一些研究,互联网上有大量的资源。我最喜欢的是R帮助,您可以在Rstudio的帮助选项卡中找到它。
查找hclust
或kmeans
以了解这些函数的工作原理。
您还可以查看允许创建时间序列群集的hts
。这可以解决创建矩阵距离为10k * 10k时可能遇到的问题。