【问题标题】:python kmeans on string字符串上的python kmeans
【发布时间】:2016-12-15 13:45:01
【问题描述】:

我是 kmeans 聚类方法的新手。我尝试在 python 中对一维字符串数组数据进行聚类。

以下是我的数据:

expertise=['
Bioactive Surfaces and Scaffolds for Regenerative Medicine', 
'Drug/gene delivery science',
'RNA nanomedicine', 'Immuno/bio/nano-engineering', 'Biomaterials', 'Nanomedicine',
'Biobased Chemicals and Polymers',
'Membranes Science & Technology', 
'Modeling of Infectious and Lifestyle-related Diseases']

km = KMeans(n_clusters=2)
km.fit(expertise)

我得到 ValueError: could not convert string to float:

所以我想知道如何在字符串数据上应用 kmeans,或者有什么方法可以将数据更改为二维?

【问题讨论】:

  • 一串字符串应该是什么意思?
  • 我已经在 kmeans 上尝试过坐标数据,并且效果很好。所以我想知道字符串数据是否有效
  • 准确地说,这不是“字符串数据”,而只是字符串。如果您找到一种从它们获取数据的方法(例如使用汉明距离或类似的东西),当然可以制作“字符串簇”,但 sklearn 无法为您做到这一点,NLTK 可能有那种东西。

标签: python scikit-learn k-means


【解决方案1】:

您首先必须定义您希望如何对数据进行聚类。 scikit-learn 的简单 KMeans 聚类旨在处理数字。然而,scikit-learn 也可用于使用词袋方法按主题对文档进行聚类。这是通过使用 scipy.sparse 矩阵而不是标准 numpy 数组来提取特征来完成的

这里给出了一个演示示例: http://scikit-learn.org/stable/auto_examples/text/document_clustering.html

【讨论】:

    【解决方案2】:

    您尝试做的事情几乎没有意义。您认为两个集群应该是什么样子?

    如果您无法绘制数据,您将无法对其进行聚类。找到一种以某种数字方式呈现字符串的方法(例如长度、字母的出现取决于您想要获得的内容),然后对这些数字数据进行聚类。

    【讨论】:

      猜你喜欢
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 2021-06-28
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 2011-08-07
      相关资源
      最近更新 更多