Orange是Python语言中一个强大的机器学习包,主要用于实现数据挖掘和有监督的机器学习,包括分类,回归等等。在Orange的使用过程中并不需要用户像使用Sklearn那样记性复杂的参数设置,甚至进行必要的参数优化(尽管我们必须承认这些功能有时候是很有用,而且在Sklearn中是相当强大的),但是对于一些初学者尤其是没有编程基础的生物学专业的用户来说,一种简单有效,且适用性强的数据挖掘方法才是真正被需要的。因此今天我们就以Orange为例,为大家介绍一下如何通过Orange来解决数据分类预测的问题。
第一步需要配置Python环境,并按照Orange包
Python下载地址https://www.python.org/
Orange下载地址http://docs.orange.biolab.si/tutorial/rst/classification.html
下载后首先配置环境变量,然后在命令提示符中找到Orange所在目录并输入
Python setup.py install
在IDLE中输入import orange,如果没有报错,则说明已经成功安装好Orange,接下来我们就可以开始我们的Orange机器学习之旅了!
第二步学习过程并建立模型
我们从Orange库中获取了一个测试数据,并传递给变量data。数据类型如图所示,红框圈出的为类别标签label,可见有两类分别为republican和democrat。同时特征值里包含三类字符,n,y,?。 “?”代表的是缺失值,这是Orange不得不提的一个强大之处,就是可以默认或忽略文本中的缺失值,而我们知道在高通量数据比如测序数据中,缺失值是大量存在的,尽管有很多方法可以补全和估计缺失值,例如根据行和列的均值,中值,标准差等,但是补全的缺失值并不能代表真实情况,只是近似估计而已,因此在某些情况下,与其近似估计,不如默认忽视这样的缺失值,保证文本最真实的情况。
接下来就是构建模型,learner是通过Orange包中的贝叶斯模型构建的学习机,并通过data进行训练,获得分类模型classifer。
第三步预测过程,通过classifer模型对测试数据进行判别
我们取前十个数据点进行判别预测,输出结果如蓝字表示,左侧一列代表预测结果,右侧为原始分类,可见有两个democrat类别的数据点进行了错误分类,精度可达到80%,说明模型对于republican类别的数据预测效果较好,对democrat的分类效果稍差。总体精度还可以。
第四步,验证模型分类效能
对于分类器,我们通常需要借助交叉验证或ROC进行评价,那么这里我们同样结合交叉验证计算ROC曲线下面积 即AUC值,来评价我们构建的模型的分类效能。
Bayes为学习机,res为结合5倍交叉验证进行重复预测,最后我们输出平均精度和AUC值。
可见平均精度为90%,AUC值为0.97,说明我们这个贝叶斯分类模型还是具有相当的稳健性的。
以上就是通过Orange实现的数据分类预测过程,从获取数据到建立模型,预测,效能验证全过程都不需要传递任何参数,不像其他分类方法必须由用户传递核函数,惩罚项等等,但是通过交叉验证和ROC,我们证明了Orange分类模型具有足够的精确度和稳健性。