gpt4 book ai didi

Python KMeans Orange 框架

转载 作者:行者123 更新时间:2023-12-01 06:17:55 25 4
gpt4 key购买 nike

我打算使用orange用于 kmeans 聚类。我已经完成了教程,但我仍然有几个问题想问:

我正在处理高维向量的聚类。1)是否实现了余弦距离?2)我不想给空值加零。我尝试在空字段中不包含任何零,但收到错误:

SystemError: 'orange.TabDelimExampleGenerator': the number of attribute types does not match the number of attributes

如何指示空值?3)有没有办法将“ID”合并到示例表中?我想通过 ID(而不是分类)来标记我的数据,以便于引用。我不将 ID 列作为我的数据的正式部分。

4) 有没有办法为 kmeans 聚类提供不同的输出?我更喜欢这种格式的东西:

cluster1: [ <id1>, <id2>, ...]
cluster2: [ <id3>, ... ]
rather than just [1, 2, 3,1 , 2, ... ]

谢谢!

最佳答案

一题四题极其尴尬——为什么不把一题变成一题呢?这并不是说它会让你付出代价;-)。无论如何,关于“如何指示空值?”,请参阅 the docs关于 Orange.Value 实例的属性 value:

If value is continuous or unknown, no descriptor is needed. For the latter, the result is a string '?', '~' or '.' for don't know, don't care and other, respectively.

我不确定空是否意味着“不知道”或“不在乎”,但无论如何你都可以指出。不过,请注意距离——来自 the docs 中的另一页:

Unknown values are treated correctly only by Euclidean and Relief distance. For other measure of distance, a distance between unknown and known or between two unknown values is always 0.5.

后一页中列出的距离是汉明距离、最大距离、曼哈顿距离、欧几里德距离和浮雕距离(后者类似于曼哈顿距离,但对未知值进行了正确处理)——没有提供余弦距离:您必须自己编码。

对于 (4),只需一点 Python 代码,您显然可以按照您想要的任何方式格式化结果。 KMeans 对象的 .clusters 属性是一个列表,与数据实例的数量一样长:如果您想要的是数据实例列表的列表,例如:

def loldikm(data, **k):
km = orange.KMeans(data, **k)
results = [[] for _ in km.centroids]
for i, d in zip(km.clusters, data):
results[i].append(d)

关于Python KMeans Orange 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2216707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com