Machine learning 如何基于相似性对大型数据集进行聚类?

Machine learning 如何基于相似性对大型数据集进行聚类?,machine-learning,cluster-analysis,k-means,dbscan,Machine Learning,Cluster Analysis,K Means,Dbscan,我想根据相似性将一个巨大的数据集聚类。我如何处理这个问题?我尝试过MinBatchK means和DBSCAN,但没有取得好的效果。我使用MinBatchKMeans面临的问题是,我必须事先指定集群的数量,而使用DBSCAN,大多数集群被归类为噪声。有人能指导我如何解决这个问题吗?我正在使用TFIDF将文本转换为向量 例如:当我使用一个80000条记录的数据集时,大约需要2-3个小时才能形成一个大小为500的集群。这使得用MinBatchK K均值寻找最优聚类数非常困难,因为我必须改变K的值,然

我想根据相似性将一个巨大的数据集聚类。我如何处理这个问题?我尝试过MinBatchK means和DBSCAN,但没有取得好的效果。我使用MinBatchKMeans面临的问题是,我必须事先指定集群的数量,而使用DBSCAN,大多数集群被归类为噪声。有人能指导我如何解决这个问题吗?我正在使用TFIDF将文本转换为向量


例如:当我使用一个80000条记录的数据集时,大约需要2-3个小时才能形成一个大小为500的集群。这使得用MinBatchK K均值寻找最优聚类数非常困难,因为我必须改变K的值,然后用肘部法等方法找到最优聚类数。有经验的人能告诉我如何解决这个问题吗?

正如报告所指出的,在不知道集群数量的情况下对大型数据集进行集群的问题确实很难解决。但是,如果您可以提供一些关于数据的先验知识,则存在一些依赖于数据集的变通方法

  • 您的数据是否相对固定?也就是说,如果您随机选择数据的一个子集,它是否具有与完整数据集大致相同的属性

  • 您是否预计会出现较大的群集不平衡,例如,您是否预计群集总体大小会有较大的变化

  • 你是否对类别的数量有粗略的想法或直觉(甚至高估)

  • (在下面几行中,我用
    scikit learn
    Python库语法来说明我的观点,但这些语句是通用的,可以适用于大多数机器学习库。)根据您对上述问题的回答,您可以尝试使用
    model.fit(x_subset)对数据的子集应用聚类
    以减少计算时间,然后使用
    模型对完整的数据集类别进行预测。预测(x_full)
    。如果数据是固定的,那么在子集上进行的类推断将有机会在完整的数据集上工作。如果集群大小变化很大,则可能需要使用分层集群(例如,使用)。在进一步使用DBSCAN或任何其他策略之前,这最后一个工具可能也是估计类别数量的好方法


    在任何情况下,您都面临着在无监督机器学习中经常遇到的问题。请注意,您正在尝试一种探索性的策略(这是很好的),如果您的数据集没有精确的解决方案,您将始终通过提取中间级别的信息(如以上三个问题的答案)从您的数据中学到一些东西这将促使您在接下来的步骤中对完整数据进行集群。

    正如报告中所指出的,在不知道集群数量的情况下对大型数据集进行集群的问题确实很难解决。但是,如果您可以提供一些关于数据的先验知识,则存在一些依赖于数据集的变通方法

  • 您的数据是否相对固定?也就是说,如果您随机选择数据的一个子集,它是否具有与完整数据集大致相同的属性

  • 您是否预计会出现较大的群集不平衡,例如,您是否预计群集总体大小会有较大的变化

  • 你是否对类别的数量有粗略的想法或直觉(甚至高估)

  • (在下面几行中,我用
    scikit learn
    Python库语法来说明我的观点,但这些语句是通用的,可以适用于大多数机器学习库。)根据您对上述问题的回答,您可以尝试使用
    model.fit(x_subset)对数据的子集应用聚类
    以减少计算时间,然后使用
    模型对完整的数据集类别进行预测。预测(x_full)
    。如果数据是固定的,那么在子集上进行的类推断将有机会在完整的数据集上工作。如果集群大小变化很大,则可能需要使用分层集群(例如,使用)。在进一步使用DBSCAN或任何其他策略之前,这最后一个工具可能也是估计类别数量的好方法


    在任何情况下,您都面临着在无监督机器学习中经常遇到的问题。请注意,您正在尝试一种探索性的策略(这是很好的),如果您的数据集没有精确的解决方案,您将始终通过提取中间级别的信息(如以上三个问题的答案)从您的数据中学到一些东西这可以促使您在接下来的步骤中对完整数据进行聚类。

    通常处理大型数据集的有效方法之一是进行降维,即PCA(主成分分析)。这里可以找到很好的例子:


    在应用PCA聚类方法后,通常工作得更快。

    通常处理大型数据集的有效方法之一是进行降维,即PCA(主成分分析)。这里可以找到很好的例子:


    在应用PCA聚类方法后,通常工作得更快。

    我是机器学习新手。这是分配给我的任务。所以我直接从无监督学习开始。我是机器学习的新手。这是分配给我的任务。所以我直接从无监督学习开始。