http://blog.csdn.net/yiweis/article/category/1315006
Orange数据格式
数据挖掘工具Orange除了支持C4.5等格式外,还有自己的数据格式。
原生数据格式
原生的数据格式不像C4.5由多个文件组成,而是由一个单独的文件组成。该文件以.tab结尾。
其中第一行给出了数据属性的名字,类的名字 由TAB分割。
第二行给出数据的类型。连续的数据用c表示,不连续的数据用d表示。
第三行给出数据的额外信息。例如表示某列是class,或者挖掘过程中忽略某列用i表示。
下面是大名鼎鼎的鸢尾花数据:
sepal length sepal width petal length petal width iris
c c c c d
class
5.1 3.5 1.4 0.2 Iris-setosa
4.9 3.0 1.4 0.2 Iris-setosa
4.7 3.2 1.3 0.2 Iris-setosa
4.6 3.1 1.5 0.2 Iris-setosa
5.0 3.6 1.4 0.2 Iris-setosa
5.4 3.9 1.7 0.4 Iris-setosa
4.6 3.4 1.4 0.3 Iris-setosa
5.0 3.4 1.5 0.2 Iris-setosa
4.4 2.9 1.4 0.2 Iris-setosa
4.9 3.1 1.5 0.1 Iris-setosa
5.4 3.7 1.5 0.2 Iris-setosa
4.8 3.4 1.6 0.2 Iris-setosa
4.8 3.0 1.4 0.1 Iris-setosa
4.3 3.0 1.1 0.1 Iris-setosa
5.8 4.0 1.2 0.2 Iris-setosa
5.7 4.4 1.5 0.4 Iris-setosa
5.4 3.9 1.3 0.4 Iris-setosa
5.1 3.5 1.4 0.3 Iris-setosa
5.7 3.8 1.7 0.3 Iris-setosa
......
关于C4.5数据格式参考这里
http://www.cs.washington.edu/dm/vfml/appendixes/c45.htm
二、聚类
import Orange #加载数据 data = Orange.data.Table("iris") #层次聚类,其中默认采用组平均计算簇之间的相似度 root = Orange.clustering.hierarchical.clustering(data) labels = [str(d.get_class()) for d in data] #生成图像hclust-dendrogram.png Orange.clustering.hierarchical.dendrogram_draw("hclust-dendrogram.png", root, labels=labels)
import Orange #加载数据 iris = Orange.data.Table('iris') knn = Orange.classification.knn.kNNLearner(iris, k=10) for i in iris: #将预测结果和实际结果不同的部分输出 if i.getclass()!=knn(i): print i.getclass(),knn(i)
三、C4.5决策树
Orange C4.5安装
- 下载:http://www.rulequest.com/Personal/c4.5r8.tar.gz,并解压缩
- 下载ensemble.c buildC45.py到上一步骤解压缩的文件夹的src子文件夹中。
- 运行buildC45.py文件
import Orange iris = Orange.data.Table("iris") tree = Orange.classification.tree.C45Learner(iris) print "\n\nC4.5 with default arguments" for i in iris[:5]: print tree(i), i.getclass()