我正在阅读k-means聚类和k-medoid聚类之间的区别.
据推测,在k-medoid算法中使用成对距离度量有一个优点,而不是更熟悉的欧几里德距离型度量平方和来评估我们用k均值找到的方差.显然,这种不同的距离度量会以某种方式降低噪音和异常值.
我已经看到了这个说法,但我还没有看到任何关于这一主张背后的数学的理由.
是什么使k-medoid中常用的成对距离测量更好?更准确地说,缺乏平方项如何使k-medoids具有与取中位数概念相关的理想属性?
我有100万个5维点,我需要将其分组为k群集,其中k << 100万.在每个星团中,没有两个点应该相距太远(例如,它们可以是具有指定半径的边界球).这意味着可能必须有许多大小为1的集群.
但!我需要运行时间远低于n ^ 2.n log n左右应该没问题.我正在进行这种聚类的原因是为了避免计算所有n个点的距离矩阵(这需要n ^ 2次或几个小时),而我只想计算簇之间的距离.
我尝试了pycluster k-means算法,但很快意识到它太慢了.我也试过以下贪婪的方法:
每个维度将空间切成20块.(所以总共有20 ^ 5件).我会根据它们的质心将簇存储在这些网格盒中.
对于每个点,检索r(最大边界球半径)内的网格框.如果有足够的群集,请将其添加到该群集,否则创建新群集.
但是,这似乎给了我比我想要的更多的集群.我也实现了两次类似的方法,它们给出了非常不同的答案.
是否有任何标准的聚类方法比n ^ 2时间快?概率算法没问题.
algorithm cluster-analysis machine-learning data-mining k-means
据我所知,SQL Server提供了4种技术以提高可用性.
我认为这些是主要的使用场景,总结如下: -
1)复制主要适用于在线 - 离线数据同步方案(笔记本电脑,移动设备,远程服务器).
2)日志传送可用于具有手动切换的故障转移服务器,而
3)数据库镜像是一种自动故障转移技术
4)故障转移群集是一种高级类型的数据库镜像.
我对吗 ?
谢谢.
我正在寻找一种基于2D数据集生成非线性(最好是二次)曲线的方法,用于预测目的.现在我正在使用我自己的普通最小二乘(OLS)实现来产生线性趋势,但我的趋势更适合曲线模型.我正在分析的数据是系统负载随着时间的推移.
这是我用来产生线性系数的等式:

我已经看过Math.NET Numerics和其他一些库,但它们要么提供插值而不是回归(这对我来说没用),或者代码不能以某种方式工作.
任何人都知道任何可以产生这种曲线系数的免费开源库或代码示例吗?
对Cassandra复制和一致性的介绍(幻灯片14-15)大胆地断言:
R+W>N保证读写仲裁的重叠.请想象一下,这种不平等有巨大的痛苦,滴着无辜的企业开发者的鲜血,所以你最能体会到它激发的恐怖.
我知道读取和写入一致性级别(R + W)的总和大于复制因子(N)是一个好主意......但有什么大不了的?
有什么影响,R + W> N与替代方案相比如何?
我有兴趣从不同的reddit subreddit获取数据.有没有人知道是否有类似twitter的reddit/other api会抓取所有页面?
是否有内置的方法通过IQR对列进行过滤(即Q1-1.5IQR和Q3 + 1.5IQR之间的值)?另外,建议大熊猫中任何其他可能的广义过滤都将受到重视.
我正在尝试按照Hilbert顺序对d维数据向量进行排序,以批量加载空间索引.
但是,我不想明确计算每个点的希尔伯特值,特别是需要设置特定的精度.在高维数据中,这涉及诸如32*d比特之类的精度,这使得有效地变得非常混乱.当数据分布不均匀时,这些计算中的一些是不必要的,并且对于部分数据集的额外精度是必要的.
相反,我正在尝试进行分区方法.当您查看2D一阶希尔伯特曲线时
1 4
| |
2---3
Run Code Online (Sandbox Code Playgroud)
我首先沿着x轴分割数据,这样第一部分(不一定包含一半的对象!)将由1和2组成(尚未排序),第二部分将包含3和4的对象只要.接下来,我将在Y轴上再次分割每一半,但在3-4中反转顺序.
基本上,我想执行一种分而治之的策略(与QuickSort密切相关 - 在均匀分布的数据上,这甚至应该是最优的!),并且只根据需要计算hilbert索引的必要"位".所以假设"1"中有一个对象,那么就不需要计算它的完整表示; 如果对象均匀分布,分区大小将快速下降.
我知道通常的教科书方法转换为长,灰色编码,维度交错.这不是我想要的(有很多这方面的例子).我明确地想要一个懒惰的分而治之的排序.另外,我需要的不仅仅是2D.
有没有人知道以这种方式工作的文章或希尔伯特排序算法?或者一个关键的想法如何让"旋转"正确,哪种表现形式可供选择呢?特别是在更高维度...在2D中它是微不足道的; 1旋转+ y,+ x,而4是-y,-x(旋转和翻转).但是在更高的维度上,我猜这会变得更加棘手.
(结果当然应该与通过他们的hilbert顺序以足够大的精度对对象进行排序时相同;我只是想在不需要时节省计算完整表示的时间,并且必须管理它.人们保留一个相当昂贵的散列图"对象为希尔伯特数".)
对于Peano曲线和Z曲线应该可以采用类似的方法,并且可能更容易实现......我应该首先尝试这些方法(Z曲线已经在运行 - 它确实归结为类似于QuickSort的东西,使用适当的平均值/网格值作为虚拟枢轴并循环通过每次迭代的维度).
编辑:请参阅下文,了解我如何为Z和peano曲线解决它.它也适用于2D希尔伯特曲线.但是对于希尔伯特曲线我还没有旋转和反转.
任何人都可以指向一个可以聚类约100万个对象的层次聚类工具(最好是在python中)吗?我试过hcluster,还有橘子.
hcluster18k物体有问题.Orange能够在几秒钟内聚集18k个对象,但失败了100k对象(饱和内存并最终崩溃).
我在Ubuntu 11.10上运行64位Xeon CPU(2.53GHz)和8GB RAM + 3GB交换.
python cluster-analysis machine-learning hierarchical-clustering data-mining
data-mining ×3
algorithm ×2
k-means ×2
python ×2
replication ×2
annotations ×1
bulkloader ×1
c# ×1
cassandra ×1
google-maps ×1
iphone ×1
iqr ×1
java ×1
mapkit ×1
math ×1
mirroring ×1
pandas ×1
reddit ×1
regression ×1
sorting ×1
sql-server ×1
statistics ×1
web-scraping ×1