
데이터 : iris
- 의사결정나무, SVM 을 사용하여 Species 를 예측하는 분류모델 만들기
- 높은 Accuracy 값을 가지는 모형의 예측값을 CSV 파일로 저장
data(iris)
df <- iris
summary(iris)
str(iris)

# 데이터 전처리
## Factor 변환
data(iris)
df <- iris
## Min-Max 정규화
normal <- function(x){
return((x-min(x))/(max(x)-min(x)))
}
df[1:4] <- as.data.frame(lapply(df[1:4],normal)) # ★ as.data.frame ()
# train, test 분리 (8:2)
set.seed(123)
idx <- sample(1:nrow(df), 0.8*nrow(df))
train <- df[idx,]
test <- df[-idx,]
# df_train, df_val 분리 (8:2)
set.seed(123)
idx <- sample(1:nrow(train),0.8*nrow(train))
df_train <- train[idx,]
df_val <- train[-idx,]
# 모델 적합 및 예측
library(caret)
library(rpart)
library(e1071)
library(ModelMetrics)
set.seed(123)
m1 <- rpart(Species~.,method="class",data=df_train) # 의사결정나무
pred1 <- predict(m1, df_val,type="class")
caret::confusionMatrix(df_val$Species,pred1)$overall[1] # Accuracy =
m2 <- svm(Species~.,data=df_train,probability=T) # SVM
pred2 <- predict(m2,df_val,probability=T)
caret::confusionMatrix(df_val$Species,pred2)$overall[1] # Accuracy = 1
# 최종모델
model <- svm(Species~.,df_train, probability=T)
pred <- predict(model,test,probability=T)
# 예측결과 저장 # ★ pred 값을 csv 로 저장한다.
write.csv(pred, "file.csv", row.names=F)
read.csv("file.csv")

'자격증 > 빅데이터 분석기사' 카테고리의 다른 글
| 변수 스케일링 함수 preProcess : Min-Max 정규화 in R (0) | 2022.12.02 |
|---|---|
| [회귀] 1. 회귀모델 구현하기 - mtcars 데이터셋 (0) | 2022.12.02 |
| [분류] 2. 분류 모델 구현해보기 in R (랜덤포레스트,SVM) (0) | 2022.12.02 |
| [분류] 1. 분류 모델 구현해보기 in R (랜덤포레스트,SVM) (1) | 2022.12.02 |
| 연관분석 in R (0) | 2022.11.26 |