R语言用主成分分析(PCA)PCR回归进行预测汽车购买信息可视化

本文主要是介绍R语言用主成分分析(PCA)PCR回归进行预测汽车购买信息可视化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近我们被客户要求撰写关于主成分分析的研究报告,包括一些图形和统计输出。

在这个项目中,我讨论了如何使用主成分分析 (PCA) 进行简单的预测。

出于说明目的,我们将对一个数据集进行分析,该数据集包含有关在 3 个不同价格组内进行的汽车购买信息以及影响其购买决定的一组特征。

 主成分分析PCA降维方法和R语言分析葡萄酒可视化实例

主成分分析PCA降维方法和R语言分析葡萄酒可视化实例

,时长04:30

首先,我们将导入数据集并探索其结构。

head(caref)


众所周知,PCA 使用欧几里得距离来推导分量,因此输入变量需要是数字的。正如我们所看到的,除了“组”变量之外,所有数据都是数字格式,因此我们不必执行任何转换。

为了查看数字变量在 3 个价格组中的表现,我分别为每个数字变量生成箱线图。

 ggplot(cr_e.m, aes(x = varle, y = vle, fill = Gup)) +geom_boxplot()

通过观察上图,我们可以了解到每个价格组的消费者对所考虑的特征有不同的看法(即,给出不同的评分)。(“安全”特征的变化较小,在所有 3 个价格组中具有更高的排名/重要性)

现在为了更好地可视化这 3 个价格组集群如何在 3D 空间中出现,我使用 3 个特征变量构建了一个 3D 图,显示给定评级之间的显着差异。


same3dpot <- with(carpef, scttro3d(Enirnmnt,Innoaon,Prtge

在上图中,我们可以看到来自每个价格组的数据点(集群)之间的明显差异。

在继续应用 PCA 之前,现在我将检查输入变量之间是否存在任何相关性。


corrplot(oras)

可以看出,“创新”、“安全”和“声望”特征之间似乎有明显的相关性。

通常在构建模型时,我们会删除一些(不必要的)相关预测变量而不包括模型,但鉴于我们正在执行 PCA,我们不会这样做,因为应用 PCA 的想法是生成新的主成分(它们不会相互关联)并用降低的维度替换当前的预测变量集。


pcmol <- prcomp(ca_eeued, scale. = TRUE, center = TRUE)

通过观察 PCA 的输出,我们可以看到前两个 PC 解释了数据中 89% 的可变性。

通过包括 3 个 PC,该模型将解释 97% 的可变性,但由于 2 个 PC 可以解释大约 90% 的数据,因此我将只使用 2 个 PC。

此外,通过观察下面的碎石图和每个PC的重要性,我们也可以理解,只用两个PC是可以的。

sumacamel = summary(adel)plot(pc_el,type = "l")

由于我们只坚持前两个主成分,现在我检查每个预测变量对每个主成分的影响量。

下面我根据它们对每个PC 的影响按降序排列了这些特性。

#对于PC 1
longScrsPC_1 <- pcael$roto[,1]
faccore_PC_1 <- abs(odingcre_PC_1)
fa_scre_PC_1raked <- nmes(rt(fac_cos1,decreasing = T))

pamod$roatn[fa_coC__and,1]

现在我们最终在这两个 PC 上绘制原始数据,并检查我们是否可以分别识别每个价格组的数据点。


#PC_n2 <- qplot(x=PC1, y=PC2

我们可以看到数据点是根据它们所在的每个价格进行聚类的!

使用上述特征,现在我们将尝试根据他/她对所考虑的特征给出的评级来预测一个人会购买哪种类型的汽车!

让我们假设一个客户对每个特征给出了以下评级:

安全:9 环境:8 创新:5 声望:4

现在让我们尝试预测该客户将属于哪个价格组:

new_ser <- c(9,8,5,4)new_cus_group <- predict(pcmdl, newdata = car_pef_ecew_c[nrow(),]lt_3 <- pot_2 + ge_point(aes(x=newcus_

通过观察这个新观察值在 PC1 和 PC2 上的位置,我们可以得出结论,新客户更有可能购买价格组 B 的汽车!如果我需要做出一些不同的预测,我个人会使用这种方法,因为它非常快速且易于理解和解释。这种方法可以扩大规模以构建 PC 回归模型,尤其是当预测变量相关且需要正则化时。


这篇关于R语言用主成分分析(PCA)PCR回归进行预测汽车购买信息可视化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb