library(palmerpenguins) library(randomForest) library(caret) # 2. 데이터셋 로드 및 탐색 data("penguins") # Palmer Penguins 데이터셋 로드 head(penguins) # 데이터셋의 앞부분 보기 summary(penguins) # 데이터 요약 정보 # 3. 데이터 전처리 # NA 값 제거 penguins <- na.omit(penguins) # 필요한 변수 선택 (종(species)과 설명 변수들) # species: 분류 대상, 설명 변수: bill_length_mm, bill_depth_mm, flipper_length_mm, body_mass_g penguins <- penguins[, c("species", "bill_length_mm", "bill_depth_mm", "flipper_length_mm", "body_mass_g")] # 데이터셋을 훈련용과 테스트용으로 나누기 (7:3 비율) set.seed(123) # 결과 재현성을 위해 시드 설정 trainIndex <- createDataPartition(penguins$species, p = 0.7, list = FALSE) trainData <- penguins[trainIndex, ] testData <- penguins[-trainIndex, ] # 4. 모델 훈련 # Random Forest 모델 훈련 rfModel <- randomForest(species ~ ., data = trainData, importance = TRUE) print(rfModel) # 5. 모델 평가 # 테스트 데이터로 예측 predictions <- predict(rfModel, newdata = testData) # 혼동 행렬 (Confusion Matrix) 생성 confusionMatrix(predictions, testData$species) # 모델의 중요 변수 보기 importance(rfModel) varImpPlot(rfModel)