# Decision Tree(의사결정나무) : 분류분석 모델 중 하나(회귀분석도 가능)
# 종속(목표)변수와 가장 연관성이 높은 변수의 순서대로 지니계수 또는 엔트로피 등이 낮아지는 방향으로
# 트리형태로 분할하는 분류기법
install.packages("party")
library(party)
head(airquality, 3)
# 종속변수 : TEMP, 나머지는 독립변수
str(airquality)
air_model <- ctree(Temp ~ Solar.R + Wind + Ozone, data = airquality)
air_model
plot(air_model)
# iris dataset
dim(iris)
set.seed(123)
idx <- sample(1:nrow(iris), nrow(iris) * 0.7)
train <- iris[idx, ]
test <- iris[-idx, ]
dim(train) # 105 5
dim(test) # 45 5
formula = Species ~.
iris_model <- ctree(formula = formula, data = train)
iris_model
plot(iris_model, type = 'simple')
plot(iris_model)
pred <- predict(iris_model, test)
pred
t <- table(pred, test$Species)
t
sum(diag(t)) / nrow(test)
# 새값으로 분류
newdf <- iris[1, ]
newdf
newdf$Sepal.Length <- 7
newdf$Sepal.Width <- 8
newdf$Petal.Length <- 7
newdf$Petal.Width <- 8
newdf
predict(iris_model,newdf)