使用R中的model.matrix函数拟合PCA



所以我正在处理一个数据集,该数据集涉及泰坦尼克号上乘客的数据,您可以在这里找到。

所以这里我使用的是提供的列车数据。我想通过使用model.matrix函数。

之后,从此数据集中删除Survived变量。

根据这个矩阵,我想将PCA拟合到上一步的矩阵中,并绘制观察结果的分数(仅使用前两个维度),并根据Survived变量对其进行着色。

我试过几种方法来做这件事,但它看起来不准确,也没有颜色。

library(readr)
library(dplyr)
titanic_train <- read_csv("C:/Users/johnt/Desktop/Statistical Data Mining/HW 1/train.csv")
titanic_train <- titanic_train %>% 
select(Survived, Pclass, Sex, Age, SibSp, Parch, Fare, Embarked) %>% 
mutate(Fare = log(Fare))

###### Model Matrix
mm <- titanic_train %>% 
select(Pclass, Age, SibSp, Parch, Fare, Survived) 
titan <- model.matrix(-Survived ~., mm)
#Clean it up
titan <- titan[,-1] #remove intercept column
titan <- scale(titan)
titan[is.na(titan)] <- 0
#PCA
titan2 <-prcomp(titan[,-5], center = TRUE, scale. = TRUE)
titan2

plot(titan2$x[,1:2],col=mm$Survived)

您尝试过ggbiplot(titan2)吗?

当然,如果你这样做了,在prcomp上运行它之前,你必须只过滤前两列

你能举一个你希望PCA看起来怎么样的例子吗?

最新更新