如何在Orange中创建新数据表?

6 投票
2 回答
7406 浏览
提问于 2025-04-17 10:58

我正在使用Orange(一个Python库)来做一些数据挖掘的工作,具体来说是进行聚类分析。虽然我已经看过教程,也读了大部分文档,但我还是遇到了一些问题。

文档和教程中的所有例子都假设我已经有一个用制表符分隔的数据表。但没有任何说明如何从头开始创建一个新的表格。例如,我想创建一个表格,用来记录不同文档中单词的出现频率。

也许我漏掉了什么,如果有人能提供一些帮助,我会非常感激。

谢谢,

乔治

编辑:

这是我创建表格的方式:

#First construct the domain object (top row)
vars = []
for var in variables:
    vars.append(Orange.data.variable.Continuous(str(var)))
domain = Orange.data.Domain(vars, classed) #The second argument indicated that the last attr must not be a class    
#Add data rows assuming we have a matrix 
t = Orange.data.Table(domain, matrix)        

2 个回答

2

如果你问我,这份文档确实不够详细。这可能不是问题的答案,但对其他人可能会有帮助。我花了好几个小时试图用构造函数和域来创建一个表格,只是为了做一个关联规则挖掘的任务,最后发现创建表格最简单的方法就是把你的数据写到一个扩展名为 .tab 或 .basket 的文件里,然后从这个文件中创建表格。

Orange.data.Table("yourFile.basket")

当然,文件的结构需要正确。可以查看在 Orange 包目录下的 datasets/ 中提供的示例文件。

5

这让我花了好几个小时才搞明白。在Python中,可以这样做:

Import Orange
List, Of, Column, Variables = [Orange.feature.Discrete(x) for x in ['What','Theyre','Called','AsStrings']]
Domain = Orange.data.Domain([List, Of, Column, Variables])
Table = Orange.data.Table(Domain)
Table.save('NewTable.tab')

我本来想告诉你每一段代码的作用,但现在我也不是很确定。真有趣,这么强大的工具居然有这么难懂的说明文档,我猜可能是因为使用它的人大多数都有博士学位。

撰写回答