Python 无监督高维聚类

Python 无监督高维聚类,python,cluster-analysis,unsupervised-learning,dbscan,Python,Cluster Analysis,Unsupervised Learning,Dbscan,我有一个记录数据集,其中每个记录有5个标签,每个标签的重要性不同 我知道标签是按重要性排序的,但不知道它们之间的区别,所以两个记录之间的区别是:a+b+b+c*c=1 数据集包含大约3000条记录,我想以某种方式对其进行集群(不知道集群的数量) 我考虑过DBSCAN,但它对高维数据不是很好 分层聚类需要知道聚类的数量,而且我认为它会影响你比较的第一条记录,所以在这种情况下,结果可能是错误的 还要寻找图聚类,以便两个记录之间的差异将是这两个节点之间的边的权重,但没有找到这样做的算法 编辑: 数据是

我有一个记录数据集,其中每个记录有5个标签,每个标签的重要性不同

我知道标签是按重要性排序的,但不知道它们之间的区别,所以两个记录之间的区别是:a+b+b+c*c=1

数据集包含大约3000条记录,我想以某种方式对其进行集群(不知道集群的数量)

我考虑过DBSCAN,但它对高维数据不是很好

分层聚类需要知道聚类的数量,而且我认为它会影响你比较的第一条记录,所以在这种情况下,结果可能是错误的

还要寻找图聚类,以便两个记录之间的差异将是这两个节点之间的边的权重,但没有找到这样做的算法

编辑:

数据是CDR数据,表示用户在使用手机通话、短信和互联网时连接的天线,因此标签为:

location(longitude,latitude), part_of_day(night,morning-noon,after noon,evening), 
workday\weekend, ,day_of_week, num of days of connection to this antenna
我想对其进行聚类,以检测该用户的兴趣点,如健身房、商场等。。所以我想把它集中起来,在健身房和购物中心之间分开,尽管它们彼此很近,但这是一项不同的活动


有什么办法吗?

那么您的数据集有3000条记录,但有5列?在这种情况下,它不是高维的。也许您可以通过提供样本数据更精确地了解您的列,以及它们可以采用的值的类型?凝聚聚类不需要知道每个示例的聚类数,例如,scikit learn实现将此作为一个选项(但您可能可以检查基础图)。您还可以看看hdbscan,它的工作原理类似于dbscan,但应该可以扩展得更好。@user2653663我会检查一下。非常感谢。是否可以为每个维度分配权重?在这两种情况下,您都可以在训练/预测之前缩放输入特征。由于它们都使用距离度量,这应该具有相同的效果。那么您的数据集有3000条记录,但有5列?在这种情况下,它不是高维的。也许您可以通过提供样本数据更精确地了解您的列,以及它们可以采用的值的类型?凝聚聚类不需要知道每个示例的聚类数,例如,scikit learn实现将此作为一个选项(但您可能可以检查基础图)。您还可以看看hdbscan,它的工作原理类似于dbscan,但应该可以扩展得更好。@user2653663我会检查一下。非常感谢。是否可以为每个维度分配权重?在这两种情况下,您都可以在训练/预测之前缩放输入特征。因为它们都使用距离度量,所以这应该具有相同的效果。