【Python环境】python的Orange包实现机器学习与数据挖掘的分类问题

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分类模型具有足够的精确度和稳健性。

原文发布于微信公众号 - 数据科学与人工智能(DS_AI_shujuren)

原文发表时间:2015-11-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯Bugly的专栏

基于 TensorFlow 在手机端实现文档检测

手机端运行卷积神经网络的一次实践 — 基于 TensorFlow 和 OpenCV 实现文档检测功能 1. 前言 本文不是神经网络或机器学习的入门教学,而是通过...

5624
来自专栏大数据文摘

深度 | 你的神经网络不work? 这37个原因总有一款适合你!

1393
来自专栏AI科技评论

ACL2016最佳论文:通过整合基于路径的方法和分布式的方法,改善词对检测

摘要 在自然语言处理(NLP)中,理清词对关系是一项的关键任务 ,在一份使用两种互补方法的文献中也强调这一点。分布式方法:其监督式的变体是目前最好的任务执行器...

3475
来自专栏人工智能

在Keras中如何对超参数进行调优?

由于没有一个成熟的理论来解释神经网络,所以配置神经网络通常是困难的,经常被同学们调侃为“炼丹”。

3.7K8
来自专栏机器之心

专栏 | 手机端运行卷积神经网络实践:基于TensorFlow和OpenCV实现文档检测功能

机器之心投稿 作者:腾讯 iOS 客户端高级工程师冯牮 本文作者通过一个真实的产品案例,展示了在手机客户端上运行一个神经网络的关键技术点。 前言 本文不是神经网...

4165
来自专栏机器之心

业界 | Poseidon:高效的分布式深度学习通信架构

选自arXiv 机器之心编译 参与:蒋思源、吴攀 近日,卡耐基梅隆大学(CMU)和 Petuum 推出了新一代高效的分布式深度学习通信架构 Poseidon。P...

4059
来自专栏AI科技大本营的专栏

AI 技术讲座精选:如何在时序预测问题中在训练期间更新LSTM网络

使用神经网络解决时间序列预测问题的好处是网络可以在获得新数据时对权重进行更新。 在本教程中,你将学习如何使用新数据更新长短期记忆(LTCM)递归神经网络。 在...

3446
来自专栏AI科技大本营的专栏

AI 技术讲座精选:「Python」LSTM时序预测状态种子初始化

长短期记忆网络(LSTM)是一种强大的递归神经网络,能够学习长观察值序列。 LSTM的一大优势是它们能有效地预测时间序列,但是作这种用途时配置和使用起来却较为...

3595
来自专栏大数据挖掘DT机器学习

R语言与机器学习(分类算法)K-近邻算法

最近在学习数据挖掘,对数据挖掘中的算法比较感兴趣,打算整理分享一下学习情况,顺便利用R来实现一下数据挖掘算法。 数据挖掘里我打算整理的内容有...

40711
来自专栏AI科技评论

开发 | 模型表现不好怎么办?37条妙计助你扭转局势

AI 科技评论按:读论文,看别人的模型的时候仿佛一切都顺利成章,可是等到自己训练模型的时候,麻烦一个接一个…… AI 科技评论找到了一篇国外大神 Slav Iv...

3466

扫码关注云+社区