Temel Bileşen Analizi (PCA)

R'de Boyutsal Azaltma

Matt Pickard

Owner, Pickard Predictives, LLC

PCA uygulama

pca_res <- prcomp(attrition_df %>% select(-Attrition), scale. = TRUE)

summary(pca_res)
Bileşenlerin önemi:
                          PC1    PC2    PC3     PC4     PC5
Standart sapma         1.4259 1.3295 0.8618 0.48401 0.47138
Varyans Oranı          0.4067 0.3535 0.1485 0.04685 0.04444
Kümülatif Oran         0.4067 0.7602 0.9087 0.95556 1.00000
R'de Boyutsal Azaltma

PB yükleri

pca_res
Standart sapmalar (1, .., p=5):
[1] 1.43 1.33 0.86 0.48 0.47

Döndürme (n x k) = (5 x 5):
                            PC1    PC2     PC3    PC4    PC5
MonthlyIncome            0.6244 -0.024  0.3665 -0.280 -0.630
TotalWorkingYears        0.6390 -0.011  0.2674  0.293  0.659
YearsSinceLastPromotion  0.4488  0.018 -0.8902 -0.061 -0.047
PercentSalaryHike       -0.0018  0.707  0.0426 -0.647  0.284
PerformanceRating        0.0210  0.707 -0.0033  0.643 -0.294
R'de Boyutsal Azaltma

PB yükleri

ilk iki temel bileşenin yüklerine yakın plan

R'de Boyutsal Azaltma

PB yükleri

PB1’in özellik yükleri

R'de Boyutsal Azaltma

PB yükleri

PB2’nin özellik yükleri

R'de Boyutsal Azaltma

tidymodels ile PCA

pca_recipe <- recipe(Attrition ~ . , data = train) %>% 
  step_normalize(all_numeric_predictors()) %>% 
  step_pca(all_numeric_predictors(), num_comp = 2)

attrition_fit <- workflow(preprocessor = pca_recipe, spec = logistic_reg()) %>% fit(train)
attrition_pred_df <- predict(attrition_fit, test) %>% bind_cols(test %>% select(Attrition))
f_meas(attrition_pred_df, Attrition, .pred_class)
R'de Boyutsal Azaltma

Model ayrıntılarında PB’leri görün

attrition_fit
Çağrı:  stats::glm(formula = ..y ~ ., family = stats::binomial, data = data)

Katsayılar:
(Intercept)          PC1          PC2  
   -2.42067      0.80493     -0.03429  

Serbestlik Derecesi: 1339 Toplam (yani Null);  1337 Artık
Null Sapması:        951.8 
Artık Sapma: 870.6     AIC: 876.6
R'de Boyutsal Azaltma

Hadi pratik yapalım!

R'de Boyutsal Azaltma

Preparing Video For Download...