📜  橙色数据挖掘

📅  最后修改于: 2020-12-21 10:00:49             🧑  作者: Mango

橙色数据挖掘

Orange是一个C++核心对象和例程库,其中包含大量的标准和非标准机器学习以及数据挖掘算法。它是一种开源数据可视化,数据挖掘和机器学习工具。 Orange是一个可编写脚本的环境,用于快速构建最新算法和测试模式的原型。它是核心库中存在的一组基于python的模块。它实现了一些功能,对于这些功能而言,执行时间不是必需的,而这是在Python完成的。

它包含了各种任务,例如决策树的漂亮打印,装袋和提升,属性子集等等。 Orange是一组图形控件,它们利用了核心库和orange模块的策略,并提供了不错的用户界面。该小部件支持基于数字的通信,可以通过称为橙色画布的可视编程工具将其收集到一个应用程序中。

所有这些共同使Orange成为用于数据挖掘和机器学习的基于组件的专有算法。 Orange是为有经验的用户和数据挖掘和机器学习的分析人员而提出的,他们既希望创建和测试自己的算法,同时又要重用尽可能多的代码,并且适合那些刚进入该领域并且可以为数据编写简短Python内容的用户分析。

Orange的目标是为基于实验的选择,预测建模和推荐系统提供一个平台。它主要用于生物信息学,基因组研究,生物医学和教学。在教育中,它用于为生物学,生物医学和信息学的学生提供更好的数据挖掘和机器学习教学方法。

橙色数据挖掘:

Orange支持面向开发人员,分析师和数据挖掘专家的灵活域。 Python,新一代的脚本语言和编程环境,我们的数据挖掘脚本可能很简单但功能强大。 Orange采用基于组件的方法进行快速原型制作。我们可以像放置乐高积木一样实施我们的分析技术,甚至可以利用现有的算法。什么是用于编写用于可视化编程的橙色小部件的脚本的Orange组件? 。小部件利用经过特殊设计的通信机制来传递诸如分类器,回归变量,属性列表和数据集之类的对象,从而允许使用现代方法和技术轻松构建相当复杂的数据挖掘方案。

Orange核心对象和Python模块合并了许多数据挖掘任务,这些任务远非用于评估和建模的数据预处理。 Orange的工作原理是数据挖掘和机器学习中的涵盖技术和视角。例如,Orange自上而下的决策树归纳法是一种技术组件,其中包含许多组件,任何人都可以使用Python进行原型制作,并代替原始组件使用。 Orange小部件不是简单的图形对象,它为Orange中的特定策略提供了图形界面,它还包括一种可适应的信号机制,用于通信和交换对象,例如数据集,分类模型,学习者,存储结果的对象。评定。所有这些想法都是有意义的,并且可以从其他数据挖掘结构中共同认识到Orange。

橙色小部件:

Orange小部件为我们提供了图形用户界面,以了解Orange的数据挖掘和机器学习技术。它们包含用于数据输入和预处理,分类,回归,关联规则的小部件,以及用于模型评估和评估结果可视化的一组小部件以及用于将模型导出到PMML的小部件。

小部件通过从发送方传递到接收方小部件的令牌来传递数据。例如,文件窗口小部件输出数据对象,这些数据对象可以由窗口小部件分类树学习器窗口小部件接收。分类树构建分类模型,该分类模型将数据发送到以图形方式显示该树的小部件。评估窗口小部件可以从文件窗口小部件和对象获取数据集。

橙色脚本:

如果要访问Orange对象,则需要编写脚本并通过脚本设计测试方案和机器学习应用程序。 Orange与Python交互,该模型易于使用具有清晰强大的语法和大量附加库的脚本语言。与任何脚本语言一样, Python可用于相互测试一些想法或开发更详细的脚本和程序。

我们将通过一个示例来了解它是如何使用Python和Orange的,并考虑一个简单的脚本来读取数据集并打印使用的属性数量。我们将利用UCI机器学习存储库中称为“投票”的分类数据集,该分类数据集记录印度国会议员中的每位议员(国会议员)的十六张主要选票,并为每个国会议员标记党籍:

进口橙

data1 = orange.ExampleTable('voting.tab')

print('Instance:',len(data1))

print(属性:',1len(data.domain.attributes))

在这里,我们可以看到脚本首先加载到橙色库中,读取数据文件,然后打印出我们关注的内容。如果我们将此脚本存储在script.py中,并通过外壳命令“ Python script.py ”运行它,请确保数据文件位于同一目录中,那么我们得到

实例:543

属性:16

让我们继续执行脚本,该脚本使用朴素的贝叶斯分类器创建的相同数据,并print前五个实例的分类:

模型=橙色BayesLearner(data1)

对于我在范围(5)中:

print(模型(data1 [i]))

容易产生分类模型;我们已经调用了Orange的对象(贝叶斯学习者),并为其提供了数据集。当给定实例返回可能类的标签时,它返回另一个对象(朴素贝叶斯分类器)。在这里,我们可以看到脚本的这一部分的输出:

公司

公司

公司

bjp

bjp

在这里,我们需要发现什么是正确的分类。我们可以print五个实例的原始标签:

对于我在范围(5)中:

print(model(data1 [i])),“最初”,data [i] .getclass()

我们涵盖的是朴素的贝叶斯分类器对第三个实例进行了错误分类:

公司最初公司

公司最初公司

公司最初bjp

bjp本来bjp

bjp本来bjp

用Orange实现的所有分类器都是概率性的。例如,他们假设类别概率。因此,在朴素的贝叶斯分类器中,我们可能会担心在第三种情况下我们错过了多少:

n =模型(data1 [2],橙色。GetProbabilities)

print数据,domain.classVar.values [0],':',n [0]

在这里,我们认识到Python的索引以0开头,并且当分类器使用参数orange.-Getprobabilities调用分类器时,分类模型返回概率向量。我们的模型估算出成立公司的可能性很高:

公司:0.878529638542