大家好,我是一名机器学习新手。我需要一些关于高维数据无监督聚类的帮助。我的数据有超过15个维度,大约有50到80千行。数据看起来像这样(15个参与者,每个参与者行数大致相等,15个特征):
参与者 | 时间 | 特征1 | 特征2… |
---|---|---|---|
1 | 0.05 | val | val |
1 | 0.10 | val | val |
2 | 0.05 | val | val |
2 | 0.10 | val | val |
2 | 0.15 | val | val |
数据包含许多参与者,每个参与者有多个数据行,并且这些数据带有时间戳和特征。我的目标是根据参与者对这些数据进行聚类,并基于这些聚类进行推断。这里的问题是每个参与者有许多行数据,我无法用单个点来表示每个参与者,因此聚类似乎是一项艰巨的任务。
我希望得到帮助的是:
-
如何最好地聚类这些数据,以便我可以根据参与者进行推断?
-
我应该使用哪种聚类技术?我尝试过sklearn的Kmeans、meanshift和其他库,但它们运行时间太长并使我的系统崩溃。
如果我的描述有点难理解,我会尽力回答您的问题。提前感谢您的帮助。如果这个问题与其他问题非常相似,请告诉我(我没能找到它)。
谢谢你 🙂
回答:
由于您在计算资源上遇到了麻烦,您必须在这里做出一些妥协。以下是一些可能解决您问题的建议,但它们都有一定的代价。
-
降维,例如使用PCA将您的列数减少到大约2个左右。您会损失一些信息,但可以绘制数据并通过K-means进行推断。
-
平均患者数据。不确定这是否足够,这取决于您的数据。这将失去对患者随时间的观察,但可能会大幅减少您的行数。
我的建议是进行降维,因为失去对患者随时间的数据可能会使您的数据无用。除了PCA之外,还有其他方法,例如自动编码器。对于您描述的聚类方式,我建议您继续使用K-means或软K-means。