预测海藻数量

2023-10-22 05:10
文章标签 数量 预测 海藻

本文主要是介绍预测海藻数量,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于R语言 DMwR包的训练数据集。本案例涉内容:数据可视化,描述性统计分析,处理缺失值,回归分析,多元线性回归,回归树,K折交互验证选择和比较模型,模型组合和随机森林。

                                   预测海藻数量


一、问题描述与目标

      河流中某些高浓度有害藻类对河流生态环境有极大破坏力,严重影响河流生物及水质。本案例的目的是利用模型了解影响海藻的频率和水样的化学性质及其他特效(如季节、河流类型等)的相关性。

二、数据说明

     

      有两个数据集,第一个数据集有200个水样。该数据集的每一条记录是同一条河流在该年的同一个季节的三个月内收集的水样的平均值。 每条记录由11个变量构成。其中3个变量是名义变量,它们分别描述水样收集的季节、收集河流的大小和河水速度。余下的8个变量是所观察水样的不同化学参数,即最大pH值、最小含氧量(O2)、平均氯化物含量(cl)、平均硝酸盐含量(NO3)、平均氨含量(NH4)、平均正磷酸含量(PO4)、平均磷酸盐含量(PO4)、平均叶绿素含量。与这些参数相关的是7种不同有害藻类在相应水样中的频率数目。并未提供所观察藻类的名称的有关信息。

      第二个数据集由140个额外观察值构成。它们的基本结构和第一个数据集一样,但是它不包含7种藻类的频率数目。本案例的主要目的是预测140个水样中7种藻类的频率。

在这种问题中,任务是建立预测模型,并预测在给定预测变量的取值时相应的目标变量的值。预测模型也可能会说明哪一个预测变量对目标变量有较大的影响,即模型可能提供影响目标变量因素的一个综合描述。

 三、探索性变量分析(多种可视化)

 1、观察数据

> head(algae)

2、描述性统计

> summary(algae)

 

3、单变量分析(mxPH)

> library("car", lib.loc="~/R/win-library/3.3")
> par(mfrow=c(1,2))
> hist(algae$mxPH,prob=T,xlab = " ",main="MXPh",ylim = 0:1)
> lines(density(algae$mxPH,na.rm = T))
> rug(jitter(algae$mxPH))
> qq.plot(algae$mxPH,main="QQ~MXPH")


 从左图可以看出变量mxPH基本呈正态分布,符合统计分析的需要。右图为mxPH变量值和正态分布的理论分位数(红色实线)的点散图。同时给出了正态分布95%置信区间的带状图(虚线),可以看出左下有几个小点明显在95%置信区间之外,不服从正态分布。

4、变量分析(oPO4)

> boxplot(algae$oPO4,ylab="oPO4")
> rug(jitter(algae$oPO4),side = 2)
> abline(h= mean(algae$oPO4,na.rm = T),lty =2)

变量oPO4的分布集中在较小的观察值范围,因此分布为正偏,大部分水样的oPO4值比较低,但也有几个水样的观测值较高,甚至特别高。

5、变量分析(NH4)

> plot(algae$NH4,xlab = " ")
> abline(h=mean(algae$NH4,na.rm = T),lty=1)
> abline(h=mean(algae$NH4,na.rm = T)+sd(algae$NH4,na.rm = T),lty=2)
> abline(h=median(algae$NH4,na.rm = T),lty=3)
> identify(algae$NH4)
警告: 已经找到了最近的点
[1]  20  35 153

调用identify()函数,使图形可交互,点击图中的点可以查看点在数据中的行号,以便于查找离群数据的详细信息和位置。

6、名义变量size(河流大小)对变量A1的影响分析。

bwplot(size~a1,data=algae,ylab = "Size",xlab = "A1")



通过lattice版本的箱图可知,在规模较小的河流中。海藻a1 的频率较高。

下面通过分位箱图获得变量的更多信息。

bwplot(size~a1,data = algae,panel = panel.bpplot,probs=seq(.01,.49,by=.01),datadensity=TRUE,ylab = "Size",xlab = "A1"
+ )

小型河流有更高的海藻频率。但小型河流海藻频率的分布比其他类型河流的海藻频率分布更分散。

7、连续变量mn02处理和分析

> min02 <- equal.count(na.omit(algae$mnO2),number=4,overlap=1/5)
> stripplot(season~a3 | min02,data=algae[!is.na(algae$mnO2),])

调用equal.count( )函数对连续变量mno2离散化,把该变量转换为因子类型。参数number设置需要的区间个数,参数overlap设置俩个区间之间的靠近边界的重合,这意味这某些观测值将被分配到相邻的区间中,每个区间的观测值的个数相等。注意到,变量algae$mno2中含有NA值,为避免图形出错利用na.omit()函数将其中的NA值剔除。

四、数据缺失值的处理

一些变量中含有缺失值,缺失值会严重影响数据分析的结果。所以必须对缺失值进行处理,可以运用以下几种常见的策略进行处理。

(1)将含有缺失值的数据删除。

(2)根据变量之间的相关关系填补缺失值。

(3)根据案例之间的相似性填补缺失值。


1、将缺失部分剔除

查看有缺失值的数据。

> algae[!complete.cases(algae),]season   size  speed mxPH mnO2    Cl   NO3 NH4    oPO4     PO4  Chla
28  autumn  small   high 6.80 11.1 9.000 0.630  20   4.000      NA  2.70
38  spring  small   high 8.00   NA 1.450 0.810  10   2.500   3.000  0.30
48  winter  small    low   NA 12.6 9.000 0.230  10   5.000   6.000  1.10
55  winter  small   high 6.60 10.8    NA 3.245  10   1.000   6.500    NA
56  spring  small medium 5.60 11.8    NA 2.220   5   1.000   1.000    NA
57  autumn  small medium 5.70 10.8    NA 2.550  10   1.000   4.000    NA
58  spring  small   high 6.60  9.5    NA 1.320  20   1.000   6.000    NA
59  summer  small   high 6.60 10.8    NA 2.

这篇关于预测海藻数量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/259214

相关文章

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

一个统计文件中关键词数量的小程序-优化版本

public class computeWxxFileNum{public static void main(String[] args) throws IOException {//读文件File sourceFile = new File("e:\\55-tmp\\xxx.log");FileReader in = new FileReader(sourceFile); LineNumber

一个统计文件中关键词数量的小程序

public class computeFileNum{public static void main(String[] args) throws IOException {File sourceFile = new File("e:\\55-tmp\\xxx.log"); FileReader in = new FileReader(sourceFile); LineNumberReader

pytorch计算网络参数量和Flops

from torchsummary import summarysummary(net, input_size=(3, 256, 256), batch_size=-1) 输出的参数是除以一百万(/1000000)M, from fvcore.nn import FlopCountAnalysisinputs = torch.randn(1, 3, 256, 256).cuda()fl

Tensorflow lstm实现的小说撰写预测

最近,在研究深度学习方面的知识,结合Tensorflow,完成了基于lstm的小说预测程序demo。 lstm是改进的RNN,具有长期记忆功能,相对于RNN,增加了多个门来控制输入与输出。原理方面的知识网上很多,在此,我只是将我短暂学习的tensorflow写一个预测小说的demo,如果有错误,还望大家指出。 1、将小说进行分词,去除空格,建立词汇表与id的字典,生成初始输入模型的x与y d

临床基础两手抓!这个12+神经网络模型太贪了,免疫治疗预测、通路重要性、基因重要性、通路交互作用性全部拿下!

生信碱移 IRnet介绍 用于预测病人免疫治疗反应类型的生物过程嵌入神经网络,提供通路、通路交互、基因重要性的多重可解释性评估。 临床实践中常常遇到许多复杂的问题,常见的两种是: 二分类或多分类:预测患者对治疗有无耐受(二分类)、判断患者的疾病分级(多分类); 连续数值的预测:预测癌症病人的风险、预测患者的白细胞数值水平; 尽管传统的机器学习提供了高效的建模预测与初步的特征重

结合Python与GUI实现比赛预测与游戏数据分析

在现代软件开发中,用户界面设计和数据处理紧密结合,以提升用户体验和功能性。本篇博客将基于Python代码和相关数据分析进行讨论,尤其是如何通过PyQt5等图形界面库实现交互式功能。同时,我们将探讨如何通过嵌入式预测模型为用户提供赛果预测服务。 本文的主要内容包括: 基于PyQt5的图形用户界面设计。结合数据进行比赛预测。文件处理和数据分析流程。 1. PyQt5 图形用户界面设计

CNN-LSTM模型中应用贝叶斯推断进行时间序列预测

这篇论文的标题是《在混合CNN-LSTM模型中应用贝叶斯推断进行时间序列预测》,作者是Thi-Lich Nghiem, Viet-Duc Le, Thi-Lan Le, Pierre Maréchal, Daniel Delahaye, Andrija Vidosavljevic。论文发表在2022年10月于越南富国岛举行的国际多媒体分析与模式识别会议(MAPR)上。 摘要部分提到,卷积

多维时序 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多变量时间序列预测

多维时序 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多变量时间序列预测 目录 多维时序 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多变量时间序列预测(完整源码和数据) 2.SS

力扣 | 递归 | 区间上的动态规划 | 486. 预测赢家

文章目录 一、递归二、区间动态规划 LeetCode:486. 预测赢家 一、递归 注意到本题数据范围为 1 < = n < = 20 1<=n<=20 1<=n<=20,因此可以使用递归枚举选择方式,时间复杂度为 2 20 = 1024 ∗ 1024 = 1048576 = 1.05 × 1 0 6 2^{20} = 1024*1024=1048576=1.05 × 10^