R을 활용한 분류분석

# 사과품종을 예측하는 분류분석 모델 만들기
# 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")

apple.csv
0.00MB