R语言SOM神经网络聚类、多层感知机MLP、PCA主成分分析可视化银行客户信用数据实例1:https://developer.aliyun.com/article/1501159
从结果中我们可以看到将数据划分成不同类别后得到的组间距离。然后我们将数据划分成6个类别,然后查看数据的聚类情况。
最后,我们根据确定的聚类数量对数据进行了重新划分,并在二维网格上展示了聚类结果。通过为每个群集分配不同的颜色,我们得到了直观的聚类地图(image.png图片链接)。这些地图不仅展示了不同类别客户在信用人口属性上的分布情况,还为我们提供了深入理解客户群体的有力工具。
主成分分析 PCA算法
主成分分析是一种常用于数据降维和特征提取的统计方法。通过PCA,我们可以将原始的高维数据转换为一组低维的正交变量(即主成分),这些变量能够最大限度地保留原始数据中的变异信息。
ata , center = TRUE, scale. = TRUE) PLPW.pca$rotation[,1:4]
执行完上述代码后,您可以得到每个变量在前四个主成分上的载荷值,从而了解哪些变量对主成分的影响最大。
从结果中我们可以看到方差的变化情况。从图中我们可以看到,从第四个主成分开始方差解释率没有明显的变化,因此我们可以看前三个主成分的载核情况,从而发现有趣的变量
目前三个主成分的载荷情况中,我们可以看到下面这些变量在前三个主成分中均有较大的载荷,因此可以认为这些变量是比较重要的。
多层感知机(MLP)
为了部署一个用于预测尚未评估客户信用价值的预测模型,我们采用了一种基于循环迭代的策略来优化模型参数。该策略的核心思想是通过不断调整参数,建模数据,并记录每次参数变化对应的准确度,从而绘制出准确度曲线,以便筛选出最优的准确度所对应的参数。
首先,我们对训练集进行归一化处理,以确保不同特征之间的尺度一致,从而提高模型的训练效率。归一化后的训练集被用于构建多层感知机模型。
trainset <- normT
接下来,我们训练多层感知机模型。在这个例子中,我们设置了隐藏层大小为5,学习率为0.01,最大迭代次数为250。同时,为了监控模型的性能,我们还提供了测试集作为输入。
utsTrain, trainset$targetsTrain, size=5, learnFuncParams=c(0.01), maxit=250, inputsTest=trains
训练完成后,我们进行预测,并计算预测结果。
为了评估模型的性能,我们计算了训练集和测试集上的混淆矩阵。混淆矩阵提供了模型在各个类别上的预测准确率、召回率等关键指标。
混淆矩阵的可视化展示了模型在训练集和测试集上的预测性能。从图中可以直观地看出模型在各个类别上的预测准确性。
confusionMatrix(tra.6))
我们采用迭代方法寻找最优参数,通过对不同参数组合进行建模,得到了以下的准确度曲线图:
从准确度曲线图中可以清晰地观察到,当参数设置为5时,模型的准确度达到了最高值75%。这表明在该参数设置下,模型能够更好地学习和预测数据中的模式。
基于这一发现,我们设定了最优参数,并重新构建了模型。通过对比备用参数的结果,我们发现模型的准确度有了显著的提升。在训练集上,准确度从26%提高到了71.66%,而在测试集上,准确度也从27%提升到了54.74%。这一显著的改进证明了使用最优参数对于提高模型性能的重要性。
我们还通过计算混淆矩阵的对角线元素之和与矩阵所有元素之和的比值来进一步验证模型的准确度。在训练集上,该比值为0.7166157,而在测试集上为0.5474006,这进一步支持了我们的结论,即最优参数使得模型的准确度得到了大幅度的提高。
> sum(diag( tab1))/sum(tab1)
此外,我们还绘制了ROC曲线来评估模型的分类性能。ROC曲线上的每个点对应一个阈值,反映了在不同阈值下模型的真阳性率(TPR)和假阳性率(FPR)。
plotROC(predictTestSet[,2], trainset$targetsTest[,2])
从ROC曲线图中可以看出,模型的预测效果位于左上方,这意味着模型在保持较低的假阳性率的同时,能够捕获到大部分的真实阳性样本。这进一步证明了模型具有较好的分类性能。
综上所述,通过迭代寻找最优参数并重新构建模型,我们成功地提高了模型的准确度,并通过ROC曲线验证了模型的分类性能。这些结果为我们深入理解客户群体和优化信用评估流程提供了有力的支持。