首页 > 其他分享 >R语言PCA主成分、lasso、岭回归降维分析全球气候变化对各国土地面积影响|附代码数据

R语言PCA主成分、lasso、岭回归降维分析全球气候变化对各国土地面积影响|附代码数据

时间:2023-08-21 22:12:17浏览次数:47  
标签:## 回归 降维 PCA data 模型 lasso

全文链接:http://tecdat.cn/?p=31445

最近我们被客户要求撰写关于各国土地面积的研究报告,包括一些图形和统计输出。 机器学习在环境监测领域的应用,着眼于探索全球范围内的环境演化规律,人类与自然生态之间的关系以及环境变化对人类生存的影响。

课题着眼于环境科学中的近年来土地面积变化影响的课题,应用机器学习的方法,进行数据处理与分析预测。数据的处理方法以及机器学习本身算法理论的学习和代码实现在各领域具有相同性,之后同学可以在其他感兴趣的领域结合数据进行分析,利用此课题所学知识举一反三。

本文获取了近年来全球各国土地面积变化数据:

image.png

区域或局地尺度的气候变化影响研究需要对气候模式输出或再分析资料进行降尺度以获得更细分辨率的气候资料。

本文通过PCA主成分、lasso、岭回归对数据进行降维分析,既能起到对相关的预报因子限制的作用保证了预测结果的稳定性,又不至于掩盖预报因子的贡献以至于丧失模型预测的准确性。

读取数据

   
data=read.csv("E:/climate_change_download_0 (1).csv")  
  
data=na.omit(data)  
# data[which(data=="..")]=0  
x=data[,c(7:ncol(data))]  
x[which(x=="..",arr.ind = T)]=0

数据清洗

   
x=data.frame(x)  
for(j in 1:ncol(x))x[,j]=as.numeric(x[,j])

主成分分析

   

pca <- x %*% v[,1:2]
scores <- X %*% loadings  
biplot(scores[,1:2], loadings[,1:2], xlab=rownames(scores),

image.png

发现最优主成分数

image.png

image.png

lasso 模型

对数据进行lasso模型筛选变量

转换数据类型

   
for(i in 1:ncol(X))X[,i]=as.numeric(X[,i])

找出有强影响的变量

   
summary(laa)

## LARS/LAR  
## Call: lars(x = X, y = Y, type = "lar")  
##    Df    Rss       Cp  
## 0   1 6505.0 2041.608  
## 1   2 6472.4 2000.730  
## 2   3 6411.9 1923.292  
## 3   4 6056.4 1458.310  
## 4   5 6044.3 1444.434  
## 5   6 6010.9 1402.454  
## 6   7 5660.6  944.328  
## 7   8 5594.1  858.944  
## 8   9 5334.2  519.497

image.png

image.png

使用岭回归方法排除回归模型中的多重共线性是有必要的。在对岭回归模型参数α的确定过程中,经过对多站点多个月份的试验,本文认为在使用岭回归模型进行统计降尺度时将df设置为17时,cp值最小,因此我们选择1999-2006年的数据较为合理,既能起到对相关的预报因子限制的作用保证了预测结果的稳定性,又不至于掩盖预报因子的贡献以至于丧失模型预测的准确性。

使用ridge regression回归模型

image.png

   
plot(lm.rid

image.png

image.png

选择GCV为100,带入岭回归模型的lambda中

image.png

使用岭回归方法排除回归模型中的多重共线性是有必要的。在对岭回归模型参数α的确定过程中,经过对多站点多个月份的试验,本文认为在使用岭回归模型对地区土地面积进行统计尺度时将GCV设置为100较为合理,当α过小时,正则项起不到作用,回归模型各项系数分散,此时模型如普通最小二乘多元回归模型,出现过拟合现象,预测结果不稳定;当α过大时,模型各项系数收敛到一处,出现欠拟合现象,预测结果不准确;而当α合理确定时,平衡了模型的稳定性和准确性。


QQ截图20230122145443.png

最受欢迎的见解

1.matlab偏最小二乘回归(PLSR)和主成分回归(PCR)

2.R语言高维数据的主成分pca、 t-SNE算法降维与可视化分析

3.主成分分析(PCA)基本原理及分析实例

4.R语言实现贝叶斯分位数回归、lasso和自适应lasso贝叶斯分位数回归

5.使用LASSO回归预测股票收益数据分析

6.r语言中对lasso回归,ridge岭回归和elastic-net模型

7.r语言中的偏最小二乘回归pls-da数据分析

8.R语言用主成分PCA、 逻辑回归、决策树、随机森林分析心脏病数据并高维可视化

9.R语言主成分分析(PCA)葡萄酒可视化:主成分得分散点图和载荷图

标签:##,回归,降维,PCA,data,模型,lasso
From: https://www.cnblogs.com/tecdat/p/17647225.html

相关文章

  • libpcap数据包格式
    pcap文件格式如下:24字节文件头+(16字节pcap数据包信息+数据包)*n。Libpcap的官方网站是http://www.tcpdump.org/,该项目和Tcpdump项目是同一个团队维护。Libpcap是一个平台独立的数据包捕获开发包,制定了数据包离线存储的事实标准。接下来我们就介绍一下该标准。文件头说明:1、标......
  • 主成分分析(PCA)模型学习笔记(一)
    目录为什么使用PCA从过拟合说起维度灾难模型定义PCA的两种推导数据准备最大投影方差最小重构距离小结为什么使用PCA从过拟合说起在数据量小、数据维度高,模型较为复杂时,很容易产生过拟合。训练误差小而泛化误差较大被称为过拟合,而我们所追求的是泛化误差较小,为了解决过拟合问题,......
  • 主成分分析PCA
    主成分分析PCA目录主成分分析PCA简介PCA的具体实施的过程Python代码实现sklearn中PCA实现数据降维并可视化PCA进行图像压缩参考资料简介降维就是一种对高维度特征数据预处理方法。降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的......
  • tlflearn 编码解码器 ——数据降维用
     #-*-coding:utf-8-*-"""AutoEncoderExample.UsinganautoencoderonMNISThandwrittendigits.References:Y.LeCun,L.Bottou,Y.Bengio,andP.Haffner."Gradient-basedlearningappliedtodocumentrecognition."......
  • 采用PCA算法&KMeans算法来实现用户对物品类别的喜好细分(菜篮子分析)(附带数据集下载)
    实现该项目的流程如下"""项目:用户对物品类别的喜好细分(菜篮子分析)主算法:PCA降维算法KMeans算法总思路1、导包2、获取数据3、数据处理5、特征工程(使用PCA降维)6、使用KMeans算法进行模型训练7、模型评估""" Firstofall!!导包......
  • mule9.0 springappcation.xml
    <?xmlversion="1.0"encoding="UTF-8"?><mulexmlns:scripting="http://www.mulesoft.org/schema/mule/scripting"xmlns:vm="http://www.mulesoft.org/schema/mule/vm"xmlns:db="http://www.mulesoft......
  • 论文解读(APCA)《Adaptive prototype and consistency alignment for semi-supervised d
    [Wechat:Y466551|付费咨询,非诚勿扰]论文信息论文标题:Adaptiveprototypeandconsistencyalignmentforsemi-superviseddomainadaptation论文作者:JihongOuyang、ZhengjieZhang、QingyiMeng论文来源:2023aRxiv论文地址:download 论文代码:download视屏讲解:click1介绍......
  • xhttpcache
    xhttpcache/common/xevHtpdBase.cppatf1dc8df482aac98f0c3edf9e7fbad478f40f8af2·0xsky/xhttpcache(github.com) xhttpcache使用详细说明_阔野嘹歌的博客-CSDN博客......
  • 数组降维-去重-排序
    letarr=[1,23,[121,1,53,[234,342,324,[234,432],234]]]快速实现letarr1=arr.flat(Infinity)//降维letarr2=Array.from(newSet(arr1))//去重,转为数组letarr3=arr2.sort((a,b)=>(a-b))//排序console.log(arr3)数组降维方法1:递归vararr1=[[0,1],[2,......
  • pnpm 是凭什么对 npm 和 yarn 降维打击的
    大家最近是不是经常听到pnpm,我也一样。今天研究了一下它的机制,确实厉害,对yarn和npm可以说是降维打击。那具体好在哪里呢?我们一起来看一下。那具体好在哪里呢?我们一起来看一下。我们按照包管理工具的发展历史,从npm2开始讲起:npm2用node版本管理工具把node版本降......