当前位置:   article > 正文

R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例...

R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例...


全文链接:https://tecdat.cn/?p=35320

自组织地图(SOM)是一种强大的无监督数据可视化工具,它通过降维技术,在较低(通常二维)的空间中有效地展示高维数据集的内在结构和特征。在本文中,我们将详细探讨如何帮助客户利用R语言实现SOM,以可视化银行客户的信用人口属性数据点击文末“阅读原文”获取完整代码数据)。

相关视频

首先,我们对数据集进行了初步的探索,通过summary(data)命令获取了数据的统计概览,有助于我们理解数据的分布和特性。然而,由于直接展示原始数据表格较为冗长,此处省略具体统计信息,并通过图片代替,以直观地展示数据的分布情况。

summary(data)

1e58701c6a86c97542dbae38292003b4.png

训练SOM

接下来,我们利用SOM算法对数据进行训练。通过设置im = 10, ydim=10, topo="hexagonal"等参数,我们构建了一个具有10x10网格的六边形拓扑结构的SOM模型。训练过程中,SOM算法通过迭代优化,逐渐将数据点映射到二维网格上的不同位置,形成聚类结构。

im = 10, ydim=10, topo="hexagonal")

查看训练过程的聚类距离

为了评估训练效果,我们查看了聚类过程中的距离变化。通过计算不同迭代次数下聚类中心的距离,我们可以观察到随着训练的进行,聚类中心逐渐趋于稳定,表明SOM模型已经成功捕捉到了数据的内在结构。

03e8b3558f2c22f614bdba9f9b68741e.png

对聚类结果进行可视化

随后,我们对聚类结果进行了可视化。通过绘制不同聚类在二维网格上的分布图,我们可以清晰地看到不同类别的客户在信用人口属性上的差异和相似性。

5b47e673e53d21a30b910a80796aa5fe.png

7dce6512a37a32657095572d45249e29.png

77e3c4e6009428858e128f79080abb4a.png

ae638a20a29a7a55bbd3421ae239ec4e.png

6882e55fa7ab89435f636e8038eec27e.png

8e71b0f1073bb2d1a1b0907b5e81c6be.png


点击标题查阅往期内容

98f6c4eea8cd19eab6a94533993c4be2.jpeg

R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化

outside_default.png

左右滑动查看更多

outside_default.png

01

362305ca9bb0f7c589b536a17c3a6be8.png

02

01858c54a2ebed091574697a25a15d3f.png

03

cf9e7f6a6b668ea9824ffb8ef291c257.png

04

0d788db626355c2df447f980dc03aed0.png

此外,我们还计算了针对不同聚类大小的k均值WCSS(Within-Cluster Sum of Squares)度量。WCSS度量用于评估聚类效果的好坏,通过比较不同聚类数量下的WCSS值,我们可以确定一个理想的聚类数量。我们通过绘制WCSS与聚类数量的关系图,发现当聚类数量为6时,WCSS值达到一个相对较小的稳定点,因此我们将数据划分为6个类别进行后续分析。

plot(1:15, wss, type="b", xlab="N

8fa51995e9b2e667d01438efaef76377.png

从结果中我们可以看到将数据划分成不同类别后得到的组间距离。然后我们将数据划分成6个类别,然后查看数据的聚类情况。

最后,我们根据确定的聚类数量对数据进行了重新划分,并在二维网格上展示了聚类结果。通过为每个群集分配不同的颜色,我们得到了直观的聚类地图(image.png图片链接)。这些地图不仅展示了不同类别客户在信用人口属性上的分布情况,还为我们提供了深入理解客户群体的有力工具。

1f5b7c056f55582ea332a96cd614924c.png

a0b2fc40e9d9eecd35669536dacea307.png

主成分分析 PCA算法

主成分分析是一种常用于数据降维和特征提取的统计方法。通过PCA,我们可以将原始的高维数据转换为一组低维的正交变量(即主成分),这些变量能够最大限度地保留原始数据中的变异信息。

  1. ata , center = TRUE, scale. = TRUE)
  2. PLPW.pca$rotation[,1:4]

bd5805ec6de98e652459846327a28554.png

执行完上述代码后,您可以得到每个变量在前四个主成分上的载荷值,从而了解哪些变量对主成分的影响最大。

fa12ab7bdf15b3e697e519da292372ea.png

从结果中我们可以看到方差的变化情况。从图中我们可以看到,从第四个主成分开始方差解释率没有明显的变化,因此我们可以看前三个主成分的载核情况,从而发现有趣的变量

目前三个主成分的载荷情况中,我们可以看到下面这些变量在前三个主成分中均有较大的载荷,因此可以认为这些变量是比较重要的。

ce1e406fba32e968c50985ce3ef653c7.png

多层感知机(MLP)

为了部署一个用于预测尚未评估客户信用价值的预测模型,我们采用了一种基于循环迭代的策略来优化模型参数。该策略的核心思想是通过不断调整参数,建模数据,并记录每次参数变化对应的准确度,从而绘制出准确度曲线,以便筛选出最优的准确度所对应的参数。

首先,我们对训练集进行归一化处理,以确保不同特征之间的尺度一致,从而提高模型的训练效率。归一化后的训练集被用于构建多层感知机模型。

trainset <- normT

接下来,我们训练多层感知机模型。在这个例子中,我们设置了隐藏层大小为5,学习率为0.01,最大迭代次数为250。同时,为了监控模型的性能,我们还提供了测试集作为输入。

utsTrain, trainset$targetsTrain, size=5, learnFuncParams=c(0.01), maxit=250, inputsTest=trains

0a0dd9f133b24ed6b8eec3470ae741e3.png

训练完成后,我们进行预测,并计算预测结果。

为了评估模型的性能,我们计算了训练集和测试集上的混淆矩阵。混淆矩阵提供了模型在各个类别上的预测准确率、召回率等关键指标。

混淆矩阵的可视化展示了模型在训练集和测试集上的预测性能。从图中可以直观地看出模型在各个类别上的预测准确性。

confusionMatrix(tra.6))

f36801699102a873d7bf379ff49aac99.png

我们采用迭代方法寻找最优参数,通过对不同参数组合进行建模,得到了以下的准确度曲线图:

589577fee96150756774603a17ffa6d3.png

从准确度曲线图中可以清晰地观察到,当参数设置为5时,模型的准确度达到了最高值75%。这表明在该参数设置下,模型能够更好地学习和预测数据中的模式。

基于这一发现,我们设定了最优参数,并重新构建了模型。通过对比备用参数的结果,我们发现模型的准确度有了显著的提升。在训练集上,准确度从26%提高到了71.66%,而在测试集上,准确度也从27%提升到了54.74%。这一显著的改进证明了使用最优参数对于提高模型性能的重要性。

我们还通过计算混淆矩阵的对角线元素之和与矩阵所有元素之和的比值来进一步验证模型的准确度。在训练集上,该比值为0.7166157,而在测试集上为0.5474006,这进一步支持了我们的结论,即最优参数使得模型的准确度得到了大幅度的提高。

> sum(diag( tab1))/sum(tab1)

8279d793237846e8cb1e2c87b1ceb8cc.png

2940efd0610acb86a4ecee189d597234.png

此外,我们还绘制了ROC曲线来评估模型的分类性能。ROC曲线上的每个点对应一个阈值,反映了在不同阈值下模型的真阳性率(TPR)和假阳性率(FPR)。

plotROC(predictTestSet[,2], trainset$targetsTest[,2])

f31a9ec95711636816d77a3d5e72e9f0.png

从ROC曲线图中可以看出,模型的预测效果位于左上方,这意味着模型在保持较低的假阳性率的同时,能够捕获到大部分的真实阳性样本。这进一步证明了模型具有较好的分类性能。

综上所述,通过迭代寻找最优参数并重新构建模型,我们成功地提高了模型的准确度,并通过ROC曲线验证了模型的分类性能。这些结果为我们深入理解客户群体和优化信用评估流程提供了有力的支持。


fdb7c158e452adaac892002cc2e42ec5.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例》。

c6a5b0bd9f853bba9dedb16d318e8391.jpeg

676eaddc3188db652c97f4b26a117336.png

点击标题查阅往期内容

数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC

MATLAB随机森林优化贝叶斯预测分析汽车燃油经济性

R语言用Rcpp加速Metropolis-Hastings抽样估计贝叶斯逻辑回归模型的参数

R语言逻辑回归、Naive Bayes贝叶斯、决策树、随机森林算法预测心脏病

R语言中贝叶斯网络(BN)、动态贝叶斯网络、线性模型分析错颌畸形数据

R语言中的block Gibbs吉布斯采样贝叶斯多元线性回归

Python贝叶斯回归分析住房负担能力数据集

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

Python用PyMC3实现贝叶斯线性回归模型

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言Gibbs抽样的贝叶斯简单线性回归仿真分析

R语言和STAN,JAGS:用RSTAN,RJAG建立贝叶斯多元线性回归预测选举数据

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言贝叶斯线性回归和多元线性回归构建工资预测模型

R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例

R语言stan进行基于贝叶斯推断的回归模型

R语言中RStan贝叶斯层次模型分析示例

R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化

R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

WinBUGS对多元随机波动率模型:贝叶斯估计与模型比较

R语言实现MCMC中的Metropolis–Hastings算法与吉布斯采样

R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例

R语言使用Metropolis-Hastings采样算法自适应贝叶斯估计与可视化

视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型

R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析

R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林分析心脏病患者

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

d8f68f4331ce2932e40002472270e08e.png

864c99fc5815ddf3c2a35e34b38a4c8e.jpeg

02149d12540fc38718245ee13220700c.png

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号