【问题标题】:Working of K-apriori AlgorithmK-apriori算法的工作
【发布时间】:2015-03-30 06:32:14
【问题描述】:

我正在尝试为数据挖掘算法开发 Java 代码,即 k-apriori 算法,它可以提高 apriori 算法的性能。正如我已经开发的 1) apriori & 2) apriori based on boolean matrix。我无法理解的是 wiener 函数 如何帮助转换数据。为什么我们在这个算法中使用它。我试图在谷歌上搜索 K-apriori 算法的例子,但找不到任何例子。我知道 K-means 算法的工作原理。如果有人有示例 K-apriori 特别说明它是如何工作的,那将会很有帮助。 Here 是我引用 K-apriori 算法的链接。

【问题讨论】:

    标签: java algorithm data-mining


    【解决方案1】:

    我自己从未实现过 k-apriori,但如果我是对的,那只是在 K-means 发现的 K 个集群中工作的 Apriori

    如您所知,K-means 是基于聚类质心的概念。通常二进制数据聚类是通过使用 0 和 1 作为数值来完成的。但在从数据计算质心时,这是非常有问题的。如果两点之间的二进制数据距离只是两点之间不同的位数。你可以在this link阅读更多关于这个问题的信息

    要获得任何有意义的集群,K-means 应该对真实值进行操作。这就是为什么您使用 wiener 函数将二进制值转换为实际值,这有助于 K-means 获得令人满意的结果

    维纳函数 - 他们对每个二进制向量执行如下:

    1. 计算每个元素周围输入向量 Xi 的均值 µ
    2. 计算每个元素的方差 σ^2
    3. 使用基于邻域的方程 Y 对向量中的每个元素执行维纳变换

    假设您有大小为 pxq 的二进制矩阵大小 X 和向量 V,它是该矩阵的第 n 行。让我们选择邻域窗口3。对于V向量的第n个位置

    µ = 1/3 * ( V[n-1] + V[n] + V[n+1] )

    σ^2 = 1/3 * ( ( V[n-1]-µ )^2 + ( V[n]-µ )^2 + ( V[n+1]-µ )^2 )

    Y[n] = µ + (σ^2 - λ^2)/σ^2 * ( V[n] - µ )

    其中 λ^2 是所有局部估计方差的平均值,所以 f.e.假设向量 V = 5 的长度:

    λ^2 = (σ^2[0]+σ^21+σ^2[2]+σ^2[3]+σ^2[4])/5

    【讨论】:

    • @ZpBany 是的!你是对的,但维纳函数是如何做到的。我试图实施该公式,但无法这样做。根据我的说法,仅提供公式而不举例说明它是如何工作的是不够的?你知道维纳函数的任何实现吗?据我所知,它是在 MATLAB 中实现的,用于恢复图像,但不幸的是它并没有帮助我获取真实数据。如果您有任何代码可以用来代替 wiener 或 wiener 的实现,这将对我有所帮助
    • @VighaneshGursale 我添加了一些关于如何计算维纳函数的信息。够清楚了吧?
    • 你的解释是正确的。非常感谢,这很容易理解,但我有疑问,你指定了邻居窗口 3 是什么意思?为什么你只生成 5 个方差的平均值?请清除我的疑问。
    • @VighaneshGursale 好的,抱歉,我忘了说这是假设 V 向量长度等于 5 的示例。当然,您只需将它们全部相加并除以 V 长度。邻域窗口仅指定在分析第 n 个元素时要考虑多少个元素。如果你选择它 f.e.等于 5 比 µ = 1/5 * ( V[n-2] + V[n-1] + V[n] + V[n+1] + V[n+2] ) 和 σ^2 也取总和更多的元素。只需查看本文中的图 4。1D 中大小为 5 的窗口或掩码
    • 感谢您的解释,我现在已经实现了代码。 :)
    猜你喜欢
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 2020-04-29
    相关资源
    最近更新 更多