django - 在 Amazon RDS 上安装 Kmeans PostgreSQL 扩展

标签 django postgresql k-means amazon-rds hierarchical-clustering

我参与了一些 Django 项目,我们使用地理数据(通过 GeoDjango)。 我已经按照 AWS 文档中的描述安装了 PostGis。

我们在 map 上有很多点(标记)。我们需要将它们聚类。

我找到了一个图书馆 anycluster .这个库需要名为 kmeans-postgresql 的 PostgreSQL 扩展安装在 Postgre 数据库上。

但我的数据库位于 Amazon RDS 上。我无法通过 SSH 连接到它以安装扩展...

有人知道如何在我的 Amazon RDS 数据库上安装 kmeans-postgresql 扩展吗?

或者您可以建议我其他聚类方法吗?

最佳答案

K-Means 这是一个非常复杂的计算,对数据挖掘和聚类分析很有用(您可以在维基百科页面 https://en.wikipedia.org/wiki/K-means_clustering 中看到更多相关信息)。当必须处理很多点时,它具有很大的复杂性。 postgresql 的 K-means 扩展 http://pgxn.org/dist/kmeans/doc/kmeans.html它是用 C 编写的,并在数据库机器中编译。与 plpgsql 中的过程相比,这带来了更好的性能。不幸的是,@estevao_lucas 回答说,这个扩展没有在 Amazon RDS 中启用。

如果您真的需要 k-means 结果,我翻译了它的这个实现,由 Joni Salonen 在 http://jonisalonen.com/2012/k-means-clustering-in-mysql/ 中创建并更改为 plpgsql https://gist.github.com/thiagomata/a9737c3455d6248bef9f .该函数使用临时表。如果您愿意,可以将其更改为仅使用 Pin 数组。

但是,如果您只需要在 map 中显示一些图钉,您可能会对将结果分组到 [x,y] 矩阵中的真正更快、更简单的函数感到满意。我创建了这样的函数,因为 kmeans 函数花费了太多时间来处理我的数据库(有超过 400K 的元素)。所以这个实现确实更快,但不具备您期望从 K-means 模块获得的所有功能。除此之外,这个网格函数https://gist.github.com/thiagomata/18ea14853998468c1a1d返回非常好的结果,当目标是在 map 中显示大量图钉时。 Example of Grid Result

关于django - 在 Amazon RDS 上安装 Kmeans PostgreSQL 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30766068/

相关文章:

python - 在 Django 中,我可以排除 ModelForm 子类中的字段吗?

postgresql - 配置单元:主机没有 pg_hba.conf 条目

python - k 表示使用 numpy - 计算每次迭代的误差

matlab - K-Means 的内部运算

c# - 如何保存 Accord.Net K-Means 的聚类结果以供重复使用?

python - Django 使用模板变量的值作为另一个变量名的一部分

python - Django + Testypie 问题 : AppRegistryNotReadyException

python - 如何为 django 模型和 graphql 突变参数使用单个枚举?

python - GeoDjango--Python :Can't Display Map

sql - 带递归 Postgres 查询的约束