R语言主成分分析实战:波士顿房价案例

本教程使用R语言进行主成分分析,以波士顿房价数据集为例,展示如何进行数据降维、特征提取、模型构建和评估等操作。

1. 导入数据

library(MASS)
data(Boston)

2. 主成分分析

pcr <- prcomp(Boston[,1:13], scale = TRUE)
# 结果输出
summary(pcr)

# 碎石图
plot(pcr)

# 选择前2个主成分
pcr2 <- pcr$x[,1:2]
# 载荷图
loadings <- pcr$rotation[,1:2]
biplot(pcr, scale = 0)

# 主成分命名
names(pcr$rotation)[1] <- 'COMMUNITY'
names(pcr$rotation)[2] <- 'LOCATION'
names(pcr$rotation)[3] <- 'LAND_USE'
names(pcr$rotation)[4] <- 'PROPERTY_TAX'
names(pcr$rotation)[5] <- 'RIVER'
names(pcr$rotation)[6] <- 'SCHOOL_RATIO'
names(pcr$rotation)[7] <- 'AIR_POLLUTION'
names(pcr$rotation)[8] <- 'MINORITY_STATUS'
names(pcr$rotation)[9] <- 'CRIME_RATE'
names(pcr$rotation)[10] <- 'MEDIAN_VALUE'
names(pcr$rotation)[11] <- 'NO_OF_ROOMS'
names(pcr$rotation)[12] <- 'DISTANCE_TO_CENTRE'
names(pcr$rotation)[13] <- 'HIGHWAY_ACCESS'

3. 观测值的主成分得分图

plot(pcr2, col = Boston$medv)

4. 综合评估和排序

pcr_score <- predict(pcr, newdata = Boston[,1:13])
Boston_score <- data.frame(medv = Boston$medv, PC1 = pcr_score[,1])
rank <- Boston_score[order(-Boston_score$PC1),]
rank

5. 主成分回归模型

pcr_lm <- lm(medv ~ ., data = as.data.frame(pcr$x))
# 回归方程输出
summary(pcr_lm)

注意: 在综合评估和排序代码中,需要将pcr_score的第一列命名为PC1,即:

Boston_score <- data.frame(medv = Boston$medv, PC1 = pcr_score[,1])

这样才能正确进行排序。

R语言主成分分析实战:波士顿房价案例

原文地址: https://www.cveoy.top/t/topic/oq31 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录