利用UDx,找到K均值聚类中的K

2021-01-04



你可以应用K均值聚类把数据点分成K组。在这个过程中,类数“K”是这个算法的输入值。通常的例子中都会提前告诉你需要多少组。如果你事先不知道数据中K是多少呢?
 
现有几种办法来估算K。Cebeci和Cebeci混R库中的几个方法,可以为我们预测K。
 
UDx是基于R库的,所以首先需要安装Vertica R安装包。
 
然后,安装jsonlite和kpeaks安装包到Vertica R,如下
https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/ExtendingVertica/R/RPackages.htm
 
或者



你可能会需要选择一个CRAN镜像。
 
下载附属的R文件“kpeaks.R”和SQL文件“kpeaks_test.sql”,把他们的扩展名修改成正确格式,拷贝到一个集群节点。用vsql运行kpeaks_test.sql:
 

  • 加载R库
  • 定义kpeaks函数
  • 加载Iris类数据组
  • 对Iris运行kpeaks函数
 
你应该得到如下的输出:



我们可以看到,建议K值为1-3。这可以大大帮助人们去确定一个合理的K值。查看下满这些参考资料,更好地理解kpeaks输出所表达的意义。
 
• kpeaks documentation – https://cran.r-project.org/web/packages/kpeaks/kpeaks.pdf
• kpeaks publication – Cebeci, Z., & Cebeci, C. “kpeaks: An R Package for Quick Selection of K for Cluster Analysis”, 
https://www.researchgate.net/publication/331258718_kpeaks_An_R_Package_for_Quick_Selection_of_K_for_Cluster_Analysis
 
附件
kpeaks_test_sql
kpeaks_R.txt