环境
--------------------------------------------------------
Kubuntu 12.04/Python 2.7.3/Orange 2.0b
准备工作
--------------------------------------------------------
#1.下载Orange的源码和Numpy的源码
#2.编译Numpy
#3.安装Python开发包
sudo apt-get install python-dev
#4.安装Python networkx包
sudo apt-get install python-networkx
#5.编译Orange
python install.py build
测试
--------------------------------------------------------
import orange
#导入orange
orange.version
'2.0b (21:58:41, Nov 3 2012)'
Classification
--------------------------------------------------------
从UCI Machine Learning Repository]下载一个测试数据集;比如Voting.tab
Naive Bayes classifier
--------------------------------------------------------
import orange
data = orange.ExampleTable("voting")
classifier = orange.BayesLearner(data)
for i in range(5):
c = classifier(data[i])
print("original",data[i].getclass(),"classified as",c)
输出结果
original republican classified as republican
original republican classified as republican
original democrat classified as republican
original democrat classified as democrat
original democrat classified as democrat
可以看出,Naive Bayes在第三个实例处出现了错误,但是其他的都是正确的。
import orange
data = orange.ExampleTable("voting")
classifier = orange.BayesLearner(data)
corrcetNum = 0
#计数器
for i in data:
a = i.getclass()
b = classifier(i)
if a == b:
corrcetNum += 1
print "CA:%.3f" %(float(corrcetNum)/len(data))
#计算分类正确率
输出结果
Possible classes: <republican,democrat>
CA:0.9034
可见Naive Bayes在总数量比较大的情况下,Classification的正确率还是比较好的,但是也只能说是一般。
参考资料
* Orange reference : http://orange.biolab.si/doc/reference/
* Orange tutorial : http://orange.biolab.si/doc/tutorial/
本文介绍了如何在Kubuntu环境下使用Orange和Python进行数据分类。通过下载并编译Numpy、Orange,安装必要的Python包,实现了对UCI机器学习库中Voting数据集的Naive Bayes分类。实验结果显示,分类正确率为90.34%,验证了方法的有效性。

3377

被折叠的 条评论
为什么被折叠?



