Orange——The Data

The Data

这个部分描述的是怎样在Orange上加载数据。我们也将展示如何探索数据,发现一些基本统计特性,怎么数据取样。

Data Input

Orange可以读取本机以制表符分隔的格式的文件,也可以从任何主要的标准电子表格文件类型加载数据,像CSV,Excel。本机以制表符分割的格式的文件有通常第一行是特征名称(或者是列名);第二行是属性类型,可以使连续,离散,时间,或者字符串;第三行包含一些元信息,用于标识依赖特性(类)、无关特性(忽略)或元特性(元)。看下面的数据:

这个数据集有四个属性(患者年龄,眼镜处方,散光概念,泪液生成率信息)和关于病人的三个值的处方信息编码(硬隐形眼镜,软隐形眼镜,无镜片)

import Orangedata = Orange.data.Table('lenses')print(data.domain.attributes)
print(data.domain.class_var)for d in data[:3]:print(d)

高级输出展示:

import Orange
data = Orange.data.Table("lenses")
print("Attributes:", ", ".join(x.name for x in data.domain.attributes))
print("Class:", data.domain.class_var.name)
print("Data instances", len(data))target = "soft"
print("Data instances with %s prescriptions:" % target)
atts = data.domain.attributes
for d in data:if d.get_class() == target:print(" ".join(["%14s" % str(d[a]) for a in atts]))

Saving the Data

import Orange
data = Orange.data.Table("lenses")
myope_subset = [d for d in data if d["prescription"] == "myope"]
new_data = Orange.data.Table(data.domain, myope_subset)
new_data.save("lenses-subset.tab")

Exploration of the Data Domain

探索数据,统计离散特征和连续特征的数量。

import Orangedata = Orange.data.Table("imports-85.tab")
n = len(data.domain.attributes)
n_cont = sum(1 for a in data.domain.attributes if a.is_continuous)
n_disc = sum(1 for a in data.domain.attributes if a.is_discrete)
print("%d attributes: %d continuous, %d discrete" % (n, n_cont, n_disc))print("First three attributes:",", ".join(data.domain.attributes[i].name for i in range(3)))print("Class:", data.domain.class_var.name)

Orange的对象可以像Python的列和字典一样,可以通过特征名进行检索和访问。

print("First attribute:", data.domain[0].name)
name = "fuel-type"
print("Values of attribute '%s': %s" %(name, ", ".join(data.domain[name].values)))

Data Instances

数据Table存储了数据实例。可以像Python列表一样进行索引和遍历,可以将数据实例视为向量,通过元素索引或特性名称进行访问。针对于鸢尾花数据

import Orangedata = Orange.data.Table("iris")
print("First three data instances:")
for d in data[:3]:print(d)print("25-th data instance:")
print(data[24])name = "sepal width"
print("Value of '%s' for the first instance:" % name, data[0][name])
print("The 3rd value of the 25th data instance:", data[24][2])average = lambda x: sum(x)/len(x)print("%-15s %s" % ("Feature", "Mean"))
for x in data.domain.attributes:print("%-15s %.2f" % (x.name, average([d[x] for d in data])))average1 = lambda xs: sum(xs)/float(len(xs))targets = data.domain.class_var.values
print("%-15s %s" % ("Feature", " ".join("%15s" % c for c in targets)))
for a in data.domain.attributes:dist = ["%15.2f" % average1([d[a] for d in data if d.get_class() == c])for c in targets]print("%-15s" % a.name, " ".join(dist))

快速计算类分布的代码:

import Orange
from collections import Counterdata = Orange.data.Table("lenses")
print(Counter(str(d.get_class()) for d in data))

Orange Datasets and NumPy

import orange
import numpy as npdata = Orange.data.Table("iris")print(data.X[:3])
print(data.Y[:3])mean = np.mean(data.X,axis=0)
print(mean)#numpy数组转成dataset
X = np.array([[1,2],[4,5]])
data = Orange.data.Table(X)
print(data.domain)#设置有意义的名字
domain = Orange.data.Domain([Orange.data.ContinuousVariable("lenght"),Orange.data.ContinuousVariable("width")])
data = Orange.data.Table(domain, X)
print(data.domain)

另一个例子:

size = Orange.data.DiscreteVariable("size", ["small", "big"])
height = Orange.data.ContinuousVariable("height")
shape = Orange.data.DiscreteVariable("shape", ["circle", "square", "oval"])
speed = Orange.data.ContinuousVariable("speed")domain = Orange.data.Domain([size, height, shape], speed)X = np.array([[1, 3.4, 0], [0, 2.7, 2], [1, 1.4, 1]])
Y = np.array([42.0, 52.2, 13.4])data = Orange.data.Table(domain, X, Y)
print(data)

Missing Values

import numpy as npdata = Orange.data.Table('voting.tab')print(data[2])#查看是否缺失
print(np.isnan(data[2][0]))
print(np.isnan(data[2][1]))#统计缺失率
for x in data.domain.attributes:n_miss = sum(1 for d in data if np.isnan(d[x]))print("%4.1f%% %s" % (100.*n_miss/len(data), x.name))#至少缺失一个值统计
print(sum(any(np.isnan(d[x]) for x in data.domain.attributes) for d in data))

Data Selection and Sampling

data = Orange.data.Table("iris.tab")
print("Dataset instances:", len(data))
subset = Orange.data.Table(data.domain,[d for d in data if d["petal length"] > 3.0])
print("Subset size:", len(subset))#特征选择
new_domain = Orange.data.Domain(list(data.domain.attributes[:2]),data.domain.class_var)
new_data = Orange.data.Table(new_domain, data)print(data[0])
print(new_data[0])#特征采样
sample = Orange.data.Table(data.domain, random.sample(data, 3))#或者随机采样属性
atts = random.sample(data.domain.attributes, 2)
domain = Orange.data.Domain(atts, data.domain.class_var)
new_data = Orange.data.Table(domain, data)
print(new_data[0])

本文参考:http://docs.orange.biolab.si/3/data-mining-library/tutorial/data.html#orange-datasets-and-numpy

在做关联分析的时候发现了Orange这个库,还有Orange可视化的工具,就大致进行学习一下,数据集获取的话,在安装Orange.exe(缩写)之后有自带的数据集。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转载]VirtualBox网络配置详解

标题: [原创]VirtualBox网络配置详解来自 http://www.linuxsir.org/bbs/showthread.php?p1800679#post1800679 欢迎转载, 转载请注明作者, 谢谢下面简单介绍一下Test-bed Environment:Host : 偶的本本OS : Arch Linux (Kernel Version 2.6.20) 已安装uml_utilities(包含tunctl…

工作4年工资8K,还有什么理由不努力?

—— 提问发哥,我现在还是从事裸机开发,51单片机,会点arm,但没有用arm真正做完整开发的经验,细想感觉自己会的不是很多,薪资提不上去,想做更高级点的工作,虽然自学点,到没…

内存管理函数

内存管理函数 宗旨:技术的学习是有限的,分享的精神是无限的。 一、 动态申请内存 1、 malloc/free ——动态分配内存和释放内存 (1)函数原型 void *malloc(size_tsize); void free(void *str); (2)函数参…

嵌入式的坑在哪方面?

在知乎看到的,觉得见解不错,看完我觉得会对嵌入式有些见解,分享给大家。今年毕业刚工作半年,稍微写一下自己的见解。嵌入式就个万金油!干得活可以涉及硬件和软件!永远学不完的知识。嵌入式工程师简直就是硬…

Orange-Classification,Regression

1.Classification Orange和sklearn一样,提供了Classification和Regression等机器学习的算法,具体使用如下: import Orangedata Orange.data.Table("voting") lr Orange.classification.LogisticRegressionLearner() rf Orange…

CentOS、Ubuntu、Debian三个linux比较异同

Linux有非常多的发行版本,从性质上划分,大体分为由商业公司维护的商业版本与由开源社区维护的免费发行版本。 商业版本以Redhat为代表,开源社区版本则以debian为代表。这些版本各有不同的特点,在不同的应用领域发挥着不同的作用&a…

再见,杀毒软件之父,王江民!

王江民,中国最早的反病毒专家,被业界尊称“中国杀毒软件之父”、“中国反病毒第一人。以38岁为分界,王江民的前半生,是中国青年身残志坚的楷模,他的后半生是中国安全软件的奠基人,带领中国商用软件第一个走…

arm流水线相关

不管是arm几,只要是在执行指令时采用的是流水线机制,前3级的都是:取指->译码->执行.在"执行"阶段,pc总是指向该指令地址加8字节的地址.换句话说,pc总是指向正在执行的指令地址再加2条指令的地址.之所以是2条指令,是因为在"执行"阶段前还有"取指…

C语言——回调函数

C语言——回调函数 宗旨:技术的学习是有限的,分享的精神是无限的。 如果参数是一个函数指针,调用者可以传递一个函数的地址给实现者,让实现者去调用它,这就是回调函数。 void func(void (*f)(void*), void *p) 提供…

百面机器学习——第一章特征工程

特征工程:是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。从本质上来讲,特征工程是一个表示和展现数据的过程。在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高…

C语言不调用库函数画一个三角形

这个是知乎上面的一个题目,非常有意思,晚上打球回来就下决心要写代码实现下,再加上自己剖析,让大家明白一个三角形在坐标系中如何用C语言画出来的。https://www.zhihu.com/question/53832071/answer/1625616415第一步就是要先构建…

JS高级——变量提升

JS执行过程 1、首先是预解析&#xff1a;预解析过程最重要的是提升&#xff0c;在JavaScript代码在预解析阶段&#xff0c;会对以var声明的变量名&#xff0c;和function开头的语句块&#xff0c;进行提升操作 2、执行操作 全局中解析和执行过程 <script>console.log(a);…

ocs 2007技巧:查看存档服务记录的消息内容

要查看存档服务记录的消息内容&#xff0c;请进入SQL&#xff0c;运行下列命令&#xff1a;USE LcsLogGOSELECT * FROM Messages转载于:https://www.cnblogs.com/kksip/archive/2008/01/08/1030858.html

图像多分类——卷积神经网络

例子参考&#xff1a;https://www.jiqizhixin.com/articles/2019-05-15-2 数据集&#xff1a;https://www.cs.ccu.edu.tw/~wtchu/projects/MoviePoster/index.html 将获取到原始数据集&#xff0c;其中&#xff0c;有三个文件&#xff0c; Movie Poster Dataset是1980-2015年…

C语言——可变参数

C语言——可变参数 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 1、目前为止&#xff0c;见过比较熟悉的可变参数的函数就是printf()函数 int printf(const char *format, …);<span style"font-family: Arial, Helvetica, sans-serif; back…

学习C++,知识点太多记不住怎么办?

学习一门新的编程语言之前&#xff0c;你首先会做什么&#xff1f;先熟悉变量、运算符、函数、类和结构、测试等工具&#xff0c;随后按照指导按部就班进行操作&#xff1f;这样的流程对于学习其他语言如Python、Java来说或许行得通&#xff0c;但C的话&#xff0c;够呛。想要真…

【转】建立公用程序库,提升软件开发生产力

当我们谈及软件开发的生产力时&#xff0c;其实有相当多的因素在影响着。举凡程序人本身的素质、所使用的程序语言、应用程序框架&#xff08;Application Framework&#xff09;的选择、是否具备好的开发工具&#xff08;例如IDE、程序代码产生器&#xff09;、对开发环境的熟…

vim使用指南

1 删除 https://www.jianshu.com/p/ab7936af747c 转载于:https://www.cnblogs.com/zhaoyz/p/8341231.html

C语言编程规范 clean code

目的规则并不是完美的&#xff0c;通过禁止在特定情况下有用的特性&#xff0c;可能会对代码实现造成影响。但是我们制定规则的目的“为了大多数程序员可以得到更多的好处”&#xff0c; 如果在团队运作中认为某个规则无法遵循&#xff0c;希望可以共同改进该规则。参考该规范之…

DataWhale组队-Pandas(下)缺失数据(打卡)

1.缺失值概要 数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失&#xff0c;两者都会造成分析结果的不准确&#xff0c;以下从缺失值产生的原因及影响扥方面展开分析。 &#xff08;1&#xff09;缺失值产生的原因 1&#xff09;有些信息暂时无法获取&#xff0c;或…