การวิเคราะห์องค์ประกอบหลัก (PCA)

Machine Learning ด้วย caret ใน R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

การวิเคราะห์องค์ประกอบหลัก

  • รวมตัวแปรที่มีความแปรปรวนต่ำและมีความสัมพันธ์กัน
  • สร้างชุดตัวพยากรณ์ที่ตั้งฉากกันและมีความแปรปรวนสูง
  • ป้องกันปัญหา collinearity (ความสัมพันธ์ระหว่างตัวพยากรณ์)
Machine Learning ด้วย caret ใน R

PCA: การแสดงภาพ

  • องค์ประกอบแรกมีความแปรปรวนสูงสุด
  • องค์ประกอบที่สองมีความแปรปรวนรองลงมา
  • และต่อไปเรื่อย ๆ ...

pasted-image-919.png

Machine Learning ด้วย caret ใน R

ตัวอย่าง: ข้อมูล blood-brain

  • มีตัวพยากรณ์จำนวนมาก
  • หลายตัวมีความแปรปรวนต่ำ
# Load the blood brain dataset
data(BloodBrain)
names(bbbDescr)[nearZeroVar(bbbDescr)]
[1] "negative"     "peoe_vsa.2.1" "peoe_vsa.3.1"
[4] "a_acid"       "vsa_acid"     "frac.anion7."
[7] "alert"  
Machine Learning ด้วย caret ใน R

ตัวอย่าง: ข้อมูล blood-brain

# Basic model
set.seed(42)
data(BloodBrain)
model <- train(
  bbbDescr, 
  logBBB, 
  method = "glm",
  trControl = trainControl(
    method = "cv", number = 10, verbose = TRUE
  ),
  preProcess = c("zv", "center", "scale")
)
min(model$results$RMSE)
1.107702     
Machine Learning ด้วย caret ใน R

ตัวอย่าง: ข้อมูล blood-brain

# Remove low-variance predictors
set.seed(42)
data(BloodBrain)
model <- train(
  bbbDescr, 
  logBBB, 
  method = "glm",
  trControl = trainControl(
    method = "cv", number = 10, verbose = TRUE
  ),
  preProcess = c("nzv", "center", "scale")
)
min(model$results$RMSE)
0.9796199
Machine Learning ด้วย caret ใน R

ตัวอย่าง: ข้อมูล blood-brain

# Add PCA
set.seed(42)
data(BloodBrain)
model <- train(
  bbbDescr, 
  logBBB, 
  method = "glm",
  trControl = trainControl(
    method = "cv", number = 10, verbose = TRUE
  ),
  preProcess = c("zv", "center", "scale", "pca")
)
min(model$results$RMSE)
0.9796199
Machine Learning ด้วย caret ใน R

มาฝึกกันเถอะ!

Machine Learning ด้วย caret ใน R

Preparing Video For Download...