如何使用tf.contrib.learn.KMeansClustering
float
值,但我需要text
hw_frame = pd.read_csv('./hw-data.txt', delim_whitespace=True,header=None,
names=['Index', 'Height'])
hw_frame.drop('Index', 1, inplace=True)
print (hw_frame.head(5))
def input_fn():
return tf.constant(hw_frame.as_matrix(), tf.float32, hw_frame.shape), None
tf.logging.set_verbosity(tf.logging.ERROR)
kmeans = tf.contrib.learn.KMeansClustering(num_clusters=2,
relative_tolerance=0.0001)
_ = kmeans.fit(input_fn=input_fn)
clusters = kmeans.clusters()
print(clusters)
assignments = list(kmeans.predict_cluster_idx(input_fn=input_fn))
答案 0 :(得分:1)
这个问题的含义非常模糊,没有附加输入的实际例子,但我会采取刺痛措施。
K-means是一种对象的聚类方法,这意味着为了形成聚类,需要在不同的对象之间建立一些有意义的“距离”度量。浮动“物体”可以通过减法建立距离:取差值的绝对值,即距离。不幸的是,字符串无法有意义地减去。
但是一切都没有丢失,唉。输入单词嵌入到救援中,这可以有意义地将单词(字符串)嵌入到数字向量中,这样相似的单词将具有相似的向量。此外,可以有意义地比较相同维度(长度)的向量以提取距离度量。
所以我想你需要做的是从网上获得一个预训练的word2vec模型并将你的文字放在中,然后将它们插入到csv中。或者你可以自己训练一个,但除非你有一个非常大的数据(干净的数据提醒你),我不会打扰那个替代
祝你好运