R语言ablone数据集数据挖掘预测分析报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
R语言ablone数据集数据挖掘预测分析报告
●介绍
●数据集描述
●检测异常值并构建清洁数据集
●清洁数据分析
●结论
介绍
鲍鱼是铁和泛酸的极佳来源,是澳大利亚,美国和东亚地区的营养食品资源和农业。100克鲍鱼每日摄取这些营养素的量超过20%。鲍鱼的经济价值与年龄呈正相关。因此,准确检测鲍鱼的年龄对于农民和消费者确定其价格非常重要。然而,目前用来决定年龄的技术是相当昂贵和低效的。农民通常通过显微镜切割贝壳并计数环以估计鲍鱼的年龄。这种复杂的方法增加了成本并限制了它的普及。我们的目标是找出预测戒指的最佳指标,然后找出鲍鱼的年龄。
数据集描述
数据集描述在这个项目中,数据集Abalone是从UCI Machine Learning Repository(1995)获得的。该数据集包含1995年12月由澳大利亚塔斯马尼亚州主要工业和渔业部海洋研究实验室Taroona记录的4177只鲍鱼的物理测量结果。有9个变量,分别是性别,长度,直径和身高,体重,体重,内脏重量,外壳重量和戒指。随着年龄等于戒指数量,变量戒指与鲍鱼年龄呈线性相关加1.5。
检测异常值并构建清洁数据集
library(ggplot2)
library(plyr)
library(nnet)
library(MASS)
library(gridExtra)
## Loading required package: grid
library(lattice)
library(RColorBrewer)
library(xtable)
Data = read.csv("abalone.csv")# Import Data
print(str(Data))# Structure of the Data
## 'data.frame': 4177 obs. of 9 variables:
## $ Sex : Factor w/ 3 levels "F","I","M": 3 3 1 3 2 2 1 1 3 1 ...
## $ Length : num 0.455 0.35 0.53 0.44 0.33 0.425 0.53 0.545 0.475 0.55 ...
## $ Diameter : num 0.365 0.265 0.42 0.365 0.255 0.3 0.415 0.425 0.37 0.44 ...
## $ Height : num 0.095 0.09 0.135 0.125 0.08 0.095 0.15 0.125 0.125 0.15 ...
## $ Whole.weight : num 0.514 0.226 0.677 0.516 0.205 ...
## $ Shucked.weight: num 0.2245 0.0995 0.2565 0.2155 0.0895 ...
## $ Viscera.weight: num 0.101 0.0485 0.1415 0.114 0.0395 ...
## $ Shell.weight : num 0.15 0.07 0.21 0.155 0.055 0.12 0.33 0.26 0.165 0.32 ...
## $ Rings : int 15 7 9 10 7 8 20 16 9 19 ...
## NULL
有4种不同的体重衡量标准,即Whole.weight,Shucked.weight,Viscera.weight
和Shell.weight。Whole.weight应该是最容易测量的。所以我放弃了所有其他措施。Data = subset(Data, select =-c(Shucked.weight, Viscera.weight, Shell.weight))
绘制不同戒指的鲍鱼数量。
ggplot(Data, aes(x = Rings, fill = Sex))+ geom_bar(binwidth =1, color ="blue",
origin = min(Data$Rings), position ="identity")+ scale_x_continuous(name ="Rings", breaks = seq(0, 30, by =2))+ theme(axis.text.x = element_text(angle =90))+
scale_fill_brewer("Location", type ="qual", palette =3)+ ylab("Number of abalone")
+
ggtitle("Number of abalone with different Rings")+ facet_wrap(~Sex, ncol =3)
从上面的图表中,我们可以看到戒指的范围是从1到29,这可能太多以至于无法衡量。实际上,人们可能不需要这么详细的类别。因此,我们将小于6环(<7.5岁),6至
13环(7.5至14.5岁)和13环(> 14.5岁)的鲍鱼进行分组,相应地表明年轻,成
年和老年鲍鱼,将它们标记为1,2,3。
Age = c(rep(0, nrow(Data)))
for(i in1:nrow(Data)){
if(Data[i, ]$Rings <7)
Age[i]=1
if(Data[i, ]$Rings >=7& Data[i, ]$Rings <=13)
Age[i]=2
if(Data[i, ]$Rings >13)
Age[i]=3
}
gData = cbind(Data, Age)
粗略地绘制图表,并获得关于数据的小尝试
ggplot(gData, aes(x = Height, y = factor(Rings), colour = factor(Sex)))+
geom_jitter(position = position_jitter(width =0.3))+