# 사과품종을 예측하는 분류분석 모델 만들기
# 1.데이터 로드
apple <- read.csv("apple.csv")
# 2.데이터 확인
apple
# 3. 데이터 살펴보기
summary(apple)
str(apple)
# 4.품종별 무게 분포
boxplot(weight ~ model, data = apple)
# 5.품종별 당도 분포
boxplot(sugar ~ model, data = apple)
# 6.품종별 산도 분포
boxplot(acid ~ model, data = apple)
# 7.색상별 사과품종 개수
library(ggplot2)
ggplot(data = apple, aes(x= color, fill = model)) + geom_bar()
# Training data, Test Data 나누기
# 1.caret 패키지 설치
install.packages("caret")
# 2.라이브러리 로드
library(caret)
# 3. training data와 test data 나누기
apple_index <- createDataPartition(apple$model, p = 0.8, list= F)
apple_index
apple_train <- apple[apple_index,]
apple_test <- apple[-apple_index,]
nrow(apple_train)
nrow(apple_test)
# 2. 분류분석 실행하기
install.packages("rpart")
library(rpart)
apple_model <- rpart(model~., data = apple_train, control = rpart.control(minsplit = 2))
apple_model
# 3. 시각화
install.packages("rpart.plot")
library(rpart.plot)
rpart.plot(apple_model)
# 4. 예측하기
apple_predict <- predict(apple_model, apple_test, type="class")
# 5. 평가하기
predicted <- as.factor(apple_predict)
actual <- as.factor(apple_test$model)
confusionMatrix(predicted, actual, mode = "everything")