Подгонка PCA с использованием функции model.matrix в R - PullRequest
0 голосов
/ 06 февраля 2019

Итак, я работаю с набором данных, включающим данные о пассажирах Титаника, которые вы можете найти здесь .

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

1 Ответ

0 голосов
/ 07 февраля 2019

Вы пробовали ggbiplot(titan2)?

Конечно, если вы это сделаете, вам придется отфильтровать использование только первых двух столбцов, прежде чем запускать его на prcomp

И не могли бы выприведите пример того, как бы вы хотели, чтобы PCA выглядела?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...