代码之家  ›  专栏  ›  技术社区  ›  Albert Ruelan

K-均值聚类分割

  •  0
  • Albert Ruelan  · 技术社区  · 9 年前

    [idx, ctr] = kmeans(MeansOfK , k, 'Distance', 'sqEuclidean');
    

    我的选择是

    1.我使用分而治之的技术,其中我将汽车和非汽车划分为更小的分区,并将其放入k-means。

    2.我将汽车类和非汽车类分开,并尝试对这两个类使用k-means。

    最终输出将是汽车或非汽车的组合类别。从k-means过程。

    我将要做的事情可行吗? 如果我对文件进行分区而不是将其作为一个整体进行,会影响k-means的输出吗?

    感谢您的建议和回答:) 谢谢

    2 回复  |  直到 9 年前
        1
  •  1
  •   Artem Barger    9 年前

    你可以做什么,你可以利用 Johnson-Lindenstrauss lemma

    % N is the number of data points and s is the reduced dimension
    S  =  randn (N, s)/s q r t (s) ;
    C  =  A ∗ S ;
    
    % now you can do you kmeans computation on C
    [idx, ctr] = kmeans(MeansOfK , k, 'Distance', 'sqEuclidean');
    

    idx ctr 原始数据集的结果将为您提供(1+ε)近似值。此外,您还可以通过以下方式在工作的基础上取得更好的结果: Dan Feldman 这基本上是说,你可以在数据上计算奇异值分解和奇异值分解,并在k/epsilon引擎值上投影,以计算kmeans值并得到(1+epsilon)近似值。


    Turning Big Data Into Tiny Data . 该技术提供了将大量数据缩减为较小数据的能力,并可证明保证提供最优kmeans解的(1+ε)近似。此外,您可以继续进行流核心集构造,这将允许您维护 O(logn * epsilon) 数据流时的近似值(第10节,图3),例如,在您的情况下,将数据划分为较小的块。最终,您可以在生成的核心集上运行kmeans计算。

    publication 了解更多有关如何处理您的案件的详细信息。在这里,你也可以在我的 github account 如果你想用的话。

        2
  •  0
  •   Ryan Gadsdon    9 年前