Итак, я работаю с набором данных, включающим данные о пассажирах Титаника, которые вы можете найти здесь .
Так что здесь я использую предоставленные данные поезда.Я хотел бы создать матрицу модели набора данных, который содержит только числа (без факторов!), Используя функцию model.matrix.
После этого удалите переменную Survived из этого набора данных.
Из этой матрицы я хотел бы подогнать PCA к матрице из предыдущего шага и построить результаты наблюдений (используятолько первые 2 измерения) и раскрасьте их в соответствии с переменной 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)