作者:扫地僧 从数据中学习,对于数据集,如何学习?
现在决定未来,已有预测未知。 对数据集做探索性分析,认识数据现在和已有的信息和知识,为揭露未知,预测未来打基础。
采用《公开数据集》中的UCI机器学习库数据集下载最多的iris数据集。
R语言代码如下:
loc <- "http://archive.ics.uci.edu/ml/machine-learning-databases/" ds <- "iris/iris.data" url <- paste(loc, ds, sep="") iris.data <- read.table(url, sep=",", header=FALSE, na.strings="?") names(iris.data) <- c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species")
dim(iris.data) [1] 150 5
str(iris.data) '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 "Iris-setosa",..: 1 1 1 1 1 1 1 1 1 1 ...
iris.data数据结构是R语言的数据框对象,150个观测对象(样本数),5个变量数(特征数),前4个变量都是数值类型,第5个变量是因子类型,是类别变量。
head(iris.data, 10)
summary(iris.data)
前面4个变量是数值型,摘要分析的内容分别包括每个变量的最小值、一分位数、中位数、均值、三分位数和最大值,第5个变量是因子型,摘要分析的内容提供每个因子的频数,类似R语言如下命令的作用。
table(iris.data$Species) Iris-setosa Iris-versicolor Iris-virginica 50 50 50
var(iris.data$Sepal.Length);sd(iris.data$Sepal.Length) [1] 0.6856935 [1] 0.8280661
直接使用R语言的方差函数var()和标准差函数sd()
cov(iris.data$Sepal.Length, iris.data$Petal.Length) [1] 1.273682 cor(iris.data$Sepal.Length, iris.data$Petal.Length) [1] 0.8717542
plot(iris.data$Sepal.Length, iris.data$Sepal.Width, col=iris.data$Species)
“所谓探索性数据分析(Exploratory Data Analysis,以下简称EDA),是指对已有的数据(特别是调查或观察得来的原始数据)在尽量少的先验假定下进行探索,通过作图、制表、方程拟合、计算特征量等手段探索数据的结构和规律的一种数据分析方法。特别是当我们对这些数据中的信息没有足够的经验,不知道该用何种传统统计方法进行分析时,探索性数据分析就会非常有效。探索性数据分析在上世纪六十年代被提出,其方法由美国著名统计学家约翰·图基(John Tukey)命名。
R语言有很多函数可以完成EDA的工作,比方说数据集的数字化描述和可视化描述,都是R语言擅长的。
大家有什么想法或者建议,请留言。
数据人网是数据人学习、交流和分享的平台http://shujuren.org 。专注于从数据中学习。 平台的理念:人人投稿,知识共享;人人分析,洞见驱动;智慧聚合,普惠人人。 您在数据人网平台,可以1)学习数据知识;2)创建数据博客;3)认识数据朋友;4)寻找数据工作;5)找到其它与数据相关的干货。 我们努力坚持做原创,分享和传播数据知识干货! 我们都是数据人,数据是有价值的,坚定不移地利用数据价值创造价值!