数据探索

一、查看数据

首先,我们查看iris数据集的大小和结构,其维度和名称分别使用函数dim()和names()获取。

函数str()和attributes()返回数据的结构和属性

二、单变量分析

> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> attach(iris)
The following objects are masked from iris (pos = 3):

Petal.Length, Petal.Width, Sepal.Length, Sepal.Width, Species

The following objects are masked from iris (pos = 4):

Petal.Length, Petal.Width, Sepal.Length, Sepal.Width, Species

The following objects are masked from iris (pos = 5):

Petal.Length, Petal.Width, Sepal.Length, Sepal.Width, Species

> dim(iris)
[1] 150 5
> names(iris)
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
[5] "Species"
> str(iris)
‘data.frame‘: 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
> attributes(iris)
$names
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
[5] "Species"

$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
[19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
[37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
[55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
[73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
[91] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
[109] 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
[127] 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
[145] 145 146 147 148 149 150

$class
[1] "data.frame"

> summary(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
Median :5.800 Median :3.000 Median :4.350 Median :1.300
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Species
setosa :50
versicolor:50
virginica :50

> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> quantile(Sepal.Length)###求取各段百分点
0% 25% 50% 75% 100%
4.3 5.1 5.8 6.4 7.9
> library(scatterplot3d)
> scatterplot3d(iris$Sepal.Length, Petal.Width, Petal.Length)
> var(Sepal.Length)###方差
[1] 0.6856935
>
> ris#####iris数据集
错误: 找不到对象‘ris‘
> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> attach(iris)
The following objects are masked from iris (pos = 3):

Petal.Length, Petal.Width, Sepal.Length, Sepal.Width, Species

The following objects are masked from iris (pos = 4):

Petal.Length, Petal.Width, Sepal.Length, Sepal.Width, Species

The following objects are masked from iris (pos = 5):

Petal.Length, Petal.Width, Sepal.Length, Sepal.Width, Species

The following objects are masked from iris (pos = 6):

Petal.Length, Petal.Width, Sepal.Length, Sepal.Width, Species

> dim(iris)
[1] 150 5
> names(iris)
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
[5] "Species"
> str(iris)
‘data.frame‘: 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
> attributes(iris)
$names
[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
[5] "Species"

$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
[19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
[37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
[55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
[73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
[91] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
[109] 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
[127] 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
[145] 145 146 147 148 149 150

$class
[1] "data.frame"

> summary(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width
Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
Median :5.800 Median :3.000 Median :4.350 Median :1.300
Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
Species
setosa :50
versicolor:50
virginica :50

> head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> quantile(Sepal.Length)###求取各段百分点
0% 25% 50% 75% 100%
4.3 5.1 5.8 6.4 7.9

> var(Sepal.Length)###方差
[1] 0.6856935

hist(Sepal.Length,col=3,main="图一",sub="Sepal.Length",ylab="频数")###主标题,副标题,纵轴名称

plot(density(Sepal.Length),col=3)###密度估计值

> table(Sepal.Length)###table(iris)
Sepal.Length
4.3 4.4 4.5 4.6 4.7 4.8 4.9 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6 6.1
1 3 1 4 2 5 6 10 9 4 1 6 7 6 8 7 3 6 6
6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 7 7.1 7.2 7.3 7.4 7.6 7.7 7.9
4 9 7 5 2 8 3 4 1 1 3 1 1 1 4 1

> pie(table(Sepal.Length))

> boxplot(iris,col=c(1,2,3,4,5,6))

+

三、多变量探索分析

> cov(Sepal.Length, Sepal.Width)
[1] -0.042434
> cor(Sepal.Length,Sepal.Width)
[1] -0.1175698

> plot(Sepal.Length,Sepal.Width,col=Species,pch=as.numeric(Species))###添加不同颜色和标志

当数据量很大时,途中数据可能会出现重叠,可以添加jitter()函数添加少量白噪声

>plot(jitter(Sepal.Length),jitter(Sepal.Width),col=Species,pch=as.numeric(Species))

> pairs(iris)#####散布图矩阵

时间: 2024-07-30 03:11:42

数据探索的相关文章

智慧中国杯算法赛解读 | 精准资助数据探索(一)

智慧中国杯是由DataCastle(数据城堡)主办的全国大数据创新应用大赛,提供了百万的竞赛奖金,数据城堡的创始人周涛是<大数据时代>的中文翻译者,在业内享有很高的名气. OpenFEA将对此次大赛进行持续关注和报道,以推进大数据在国内的发展,让更多的人参与到大数据的应用创新当中来,为社会培养大数据人才出一份自己的力量. 此次大赛分为三个环节,第一是算法赛,任何个人和组织团体都可以参加,无资格限制,提交比赛结果即可.算法赛最后截止时间为2017年2月20日,在此之前提交结果都有效,现在报名还来

利用python进行泰坦尼克生存预测——数据探索分析

最近一直断断续续的做这个泰坦尼克生存预测模型的练习,这个kaggle的竞赛题,网上有很多人都分享过,而且都很成熟,也有些写的非常详细,我主要是在牛人们的基础上,按照数据挖掘流程梳理思路,然后通过练习每一步来熟悉应用python进行数据挖掘的方式. 数据挖掘的一般过程是:数据预览-->数据预处理(缺失值.离散值等)-->变量转换(构造新的衍生变量)-->数据探索(提取特征)-->训练-->调优-->验证 1 数据预览 1.1 head() 预览数据集的前面几条数据可以大致

数据挖掘方法系列(一)数据探索

为什么要做数据探索?了解数据的类型和人与人沟通过程中了解对方的性别一样重要,人与人沟通知道对方的性别才能用不同的方式与其沟通,不同的数据类型能做的操作也不一样.探索数据探索哪些?数据的类型和数据的质量.数据类型分为定性和定量的.定性也可以说是分类的,包括标称和序数.标称很好理解,用户ID.用户的名称也属于标称,虽然也可以重复,但大致还是能代表一个个体:序数有类型{好,非常好,超级好},可以比较大小的,比如"超级好好"比"好"在好的程度要高,{高,较高,非常高}也属于

.Net Core/Framework之Nginx反向代理后获取客户端IP等数据探索

原文:.Net Core/Framework之Nginx反向代理后获取客户端IP等数据探索 公司项目最近出现获取访问域名.端口.IP错误现象,通过排查发现, 之前项目一直通过Nginx自定义Headers信息来获取,但最近运维人员失误操作造成自定义Header信息丢失,造成项目拿不到对应的数据.思前想后,想找找官方有没有关于此类问题通用标准化的解决方案. 一.Nginx配置如下: proxy_redirect off; proxy_set_header Host $host; proxy_set

Python机器学习之数据探索可视化库yellowbrick

背景介绍 从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维.陆续使用过plotly.seaborn,最终定格在了Bokeh,因为它可以与Flask完美的结合,数据看板的开发难度降低了很多. 前阵子看到这个库可以较为便捷的实现数据探索,今天得空打算学习一下.原本访问的是英文文档,结果发现已经有人在做汉化,虽然看起来也像是谷歌翻译的,本着拿来主义,少费点精力的精神,就半抄半学,还是发

Python机器学习之数据探索可视化库yellowbrick-tutorial

背景介绍 从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维.陆续使用过plotly.seaborn,最终定格在了Bokeh,因为它可以与Flask完美的结合,数据看板的开发难度降低了很多. 前阵子看到这个库可以较为便捷的实现数据探索,今天得空打算学习一下.原本访问的是英文文档,结果发现已经有人在做汉化,虽然看起来也像是谷歌翻译的,本着拿来主义,少费点精力的精神,就半抄半学,还是发

二 数据探索

1 数据质量分析 数据质量分析是数据预处理的前提,也是数据挖掘分析结论有效性和准确性的基础.其主要任务是检查原始数据中是否存在脏数据: (1)缺失值 (2)异常值(outliers) (3)不一致的值 (4)重复数据及含有特殊符号的数据 1.1 缺失值分析 1.2 异常值分析 异常值是指样本中数值明显偏离其余观测值的个别值,也称为离群点. (1)简单统计量分析 先对变量做描述性统计,检查数据是否合理.常用的统计量是最大.最小值. (2)3σ 原则 (3)箱型图分析 1.3 一致性分析 数据不一致

机器学习之数据探索——数据质量分析

数据探索是对样本数据进行解释性的分析工作,它是数据挖掘和机器学习较为前期的部分,更偏重于研究数据的本质.描述数据的形态特征并解释数据的相关性. 换句话说,透过数据探索,我们应该可以回答如下问题: 样本数据的分布怎样?有什么特点?数据之间有何种关系?数据是否满足建模要求? 问题驱动发展,对以上问题进行解答,涉及到数据探索的两个方面工作: 数据质量分析 数据特征分析 需要提及的是,数据探索与数据预处理紧密相连的,二者在数据挖掘的中没有绝对的先后次序.比如,在数据质量分析中,就牵涉到数据预处理中的数据

机器学习之数据探索——数据特征分析(分布分析)

数据特征分析与数据质量分析一道构成数据探索的两方面工作,在前文中介绍过关于数据质量分析的概况,本文将对数据特征分析作简介,并着重于分布分析的角度,相比于数据质量分析,数据特征分析更注重于找寻数据间的关系. 数据特征分析包括以下几个分析角度: 1.分布分析 2.对比分析 3.统计量分析 4.帕累托分析 5.正态性检验 6.相关性分析 其上每一个分析角度都有丰富的内容. 分布分析 顾名思义,分布分析研究数据的分布特征和分布类型.对于定量数据,需要了解分布形式,发现某些特大特小的异常值,通常用到散点图

数据探索综合指南EDA 转发

数据探索综合指南 苏尼尔·雷(SUNIL RAY) 2016年1月10日 总览 有关数据探索(EDA)的完整教程 我们涵盖了数据探索的几个方面,包括缺失值估算,异常值去除和特征工程的技巧 介绍 没有数据浏览的捷径.如果您处于一种状态,那么机器学习可以使您摆脱每次数据风暴,相信我,事实并非如此.经过一段时间后,您将意识到自己正在努力提高模型的准确性.在这种情况下,数据探索技术将助您一臂之力. 我可以自信地说,因为我经历过很多这样的情况. 我从事业务分析专业近三年了.在我最初的日子里,我的一位导师建