83-预测分析-R语言实现-神经网络
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了83-预测分析-R语言实现-神经网络相关的知识,希望对你有一定的参考价值。
参考技术A 预测任务:利用建筑物的各种特性,例如表面积和屋顶面积,预测建筑物的能源效率,其中效率以供暖负荷和制冷负荷来表示。数据集不存在缺失值。
orientation和glazareadist分别表示建筑朝向和玻璃面积分布情况,应该为因子型变量。
为了让神经网络能够处理这些因子变量,需要先将它们转换为虚拟变量。
在训练神经网络时,为防止饱和现象(因为当优化过程的误差函数的梯度绝对值变得非常小时,非线性神经元激活函数有非常大或非常小的输入,会导致优化过程认为已经达到收敛而终止),需要先对数据进行比例缩放,这样做同时有助于收敛。
将数据维度比例缩放到单位区间[-1, 1]。
输出变量只选一个,heatload。(暂不清楚caret包能否同时训练两个因变量的模型,以及如何设置参数)
输出变量有两个,heatload 和 coolload。10个隐藏层,激活函数选择logistic,误差函数选择sse,它对应的是误差平方和。linear.output = TRUE表示输出层的神经元不应用logistic激活函数,因为这是一个回归任务,需要得到线性的输出,否则输出就会被约束到[0, 1]之间。
预测值与实际值之间的相关性相当高。
预测值与实际值之间的相关性非常高,说明模型的性能接近完美。
R语言混合图形模型MGM的网络可预测性分析
原文链接:http://tecdat.cn/?p=18279
网络模型已经成为抽象复杂系统,是深入了解许多科学领域中观测变量之间的关系模式的流行方法。这些应用程序大多数集中于分析网络的结构。但是,如果不是直接观察网络,而是根据数据进行估算(如:吸烟与癌症之间存在关联),则除了网络结构外,我们还可以分析网络中节点的可预测性。也就是说:网络中的所有其余节点如何预测网络中的给定节点?
可预测性有趣,有几个原因:
它给我们提供了一个关于边的实用性的想法:如果节点A连接到许多其他节点,但是这些仅说明(假设)其方差的1%,那么边的连接会是怎样的?
它告诉我们网络的不同部分在多大程度上是由网络中的其他因素决定的
在此博文中,我们使用R-估计网络模型并计算地震灾民数据集上的创伤后应激障碍(PTSD)症状。我们对网络模型和可预测性进行可视化,并讨论如何将网络模型和节点的可预测性相结合来设计症状网络的有效干预措施。
载入资料
我们加载提供的数据:
data <- as.matrix(data)
p <- ncol(data)
dim(data)## [1] 312 17
数据集包含对344人的17种PTSD症状的完整反应。症状强度的答案类别范围从1“没有”到5“非常强”。
估计网络模型
我们估计了混合图形模型,其中我们将所有变量都视为连续高斯变量。因此,我们将所有变量的类型设置为,type = 'g'
并将每个变量的类别数设置为1:
fit_obj <- (data = data,
type = rep('g', p),
level = rep(1, p),
lambdaSel = 'CV',
ruleReg = 'OR',
pbar = FALSE)
计算节点的可预测性
估计网络模型后,我们准备计算每个节点的可预测性。由于可以通过依次获取每个节点并对其上的所有其他节点进行回归来估计该图,因此可以轻松地计算节点的可预测性)。作为可预测性的度量,我们选择解释的方差的比例:0表示当前节点根本没有被节点中的其他节点解释,1表示完美的预测。我们在估算之前将所有变量中心化,以消除截距的影响。
有关如何计算预测和选择可预测性度量的详细说明,请查看本文。如果网络中还有其他变量类型(例如分类),我们可以为这些变量选择适当的度量。
pred_obj <- predict(object = fit_obj,
data = data
pred_obj$error
# Variable R2
# 1 intrusion 0.639
# 2 dreams 0.661
# 3 flash 0.601
# 4 upset 0.636
# 5 physior 0.627
# 6 avoidth 0.686
# 7 avoidact 0.681
# 8 amnesia 0.410
# 9 lossint 0.520
# 10 distant 0.498
# 11 numb 0.451
# 12 future 0.540
# 13 sleep 0.565
# 14 anger 0.562
# 15 concen 0.638
# 16 hyper 0.676
# 17 startle 0.626
我们计算了网络中每个节点的解释方差(R2)的百分比。接下来,我们将估计的网络可视化,并讨论与解释方差有关的结构。
可视化网络和可预测性
我们根据估计的加权邻接矩阵和节点的可预测性度量作为参数,进行网络可视化:
graph(fit_obj$pairwise$wadj, # 加权邻接矩阵作为输入
layout = 'spring',
pie = pred_obj$error[,2], # 误差作为饼图的输入
点击标题查阅往期内容
更多内容,请点击左下角“阅读原文”查看报告全文
案例精选、技术干货 第一时间与您分享
长按二维码加关注
更多内容,请点击左下角“阅读原文”查看报告全文
以上是关于83-预测分析-R语言实现-神经网络的主要内容,如果未能解决你的问题,请参考以下文章
拓端tecdat|R语言高维数据惩罚回归方法:主成分回归PCR岭回归lasso弹性网络elastic net分析基因数据