我试图开发一个用于数据挖掘算法的java代码,即k-apriori算法,从而提高了apriori算法的性能。由于我已经开发了1) apriori & 2)基于布尔矩阵的apriori。我无法理解的是wiener函数如何帮助转换数据。为什么我们在这个算法中使用它。我试着搜索google,例如K-apriori算法,但是找不到任何例子。我知道K-均值算法的工作原理.如果有人有例子K-apriori作为特别是它的工作方式,它将是有益的。这里是我所指的algorithm算法的链接.
发布于 2015-01-30 19:32:50
我自己从来没有实现过k-apriori,但是如果我是对的,那就是Apriori在K-方法发现的K簇中工作。
如你所知,K-均值是基于团簇质心的概念。通常,二进制数据聚类是以0和1作为数值。但是,在从数据中计算质心时,这是非常有问题的。如果有二进制数据,两点之间的距离只是两个点之间不同的位数。您可以在此链接中阅读有关此问题的更多信息。
要得到任何有意义的聚类,K-均值应该对实际值进行操作。这就是为什么使用wiener函数将二进制值转换为实值的原因,这有助于K-表示获得令人满意的结果。
Wiener函数--它们对每个二进制向量执行如下操作:
假设你有二进制矩阵,大小X,pxq,向量V,它是矩阵的第n行。让我们选择邻域窗口3.关于V向量的第n个位置
= 1/3 *( Vn-1 + Vn + Vn+1 )
σ^2 = 1/3 *((VN-1- )^2 +(Vn- )^2 +(Vn+1- )^2 )
Vn =/σ^2* (σ^2 -λ^2)(Vn-)
其中λ^2是所有局部估计方差的平均值,所以f.e。假定矢量长度V= 5:
σ^2+σ^2^2=(1+σ^22+σ^23+σ^24)/5
https://stackoverflow.com/questions/28241711
复制相似问题