微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Spark 中创建距离矩阵来实现 Kmeans 算法

如何解决如何在 Spark 中创建距离矩阵来实现 Kmeans 算法

我对 Spark 很陌生,我正在尝试实现 Kmeans 算法,根据名称间的相似性对一组名称进行聚类,但是为了理解模型的预测,我需要一个数据框/我无法单独使用 Spark 重现的矩阵,到目前为止我必须创建一个 Pandas DF 并将其转换为 Spark DF。有人告诉我,对于未来数据集的规模,这不是正确的方法

所以这或多或少是我所拥有的:

我有以下一组名称,这是一个小样本,但我将其用作练习,以了解在使用更大的真实数据集后它的行为

df = spark.createDataFrame(["GERMAN","GERMANY","GERMANIA","LENOVO"],"string").toDF("Name")
df.show()

+--------+
|    Name|
+--------+
|  GERMAN|
| GERMANY|
|GERMANIA|
|  LENOVO|
+--------+

我定义的用于计算每个词之间相似度的UDF是:

lcs_udf = udf(lambda w,v :  1 - metric_lcs.distance(w,v),FloatType())

我正在尝试使用此函数生成一个数据框,该数据框将为我提供每个可能的单词对之间的相似性,它本质上是一个对角矩阵,理想情况下看起来像这样:

+--------+--------+---------+----------+--------+
|    Name| GERMAN | GERMANY | GERMANIA | LENOVO |
+--------+--------+---------+----------+--------+
|  GERMAN|    1   |   ..... |   .....  |  ...   |
| GERMANY|   .... |    1    |    ....  |  ....  | 
|GERMANIA|   .... |   ....  |     1    |  ....  |
|  LENOVO|   .... |    .... |    ....  |    1   |
+--------+--------+---------+----------+--------+

有了这个 DF,我可以在有任何问题的情况下实现模型。所以任何帮助将不胜感激 谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。