데이터 분석 보고시, 데이터에 대한 설명이 필요합니다.
Tool에 대한 설명, 해석에 대한 설명도 필요합니다.
- 문제설정 <- 우선순위 2
- 데이터
- 분석 Tool
- 결과
- 활용 <- 우선순위 1
------------------------------
setwd("c:/bigdataApp/Rtest") # 데이터소스 path
install.packages("party") #의사결정나무를 작동시키는 pakage => party
library(party)
result <- read.csv("mydata_classification.csv", header=FALSE)
View(result)
# 만약에 csv header에 이름을 미리 지정했으면 필요없는 루틴
install.packages("reshape")
library(reshape)
result <- rename(result, c(V1="total", V2="price", V3="period", V4="variety", V5="response"))
View(result)
###############################################################
set.seed(1234) #랜덤으로 데이터 나눌때. 랜덤
resultsplit <- sample(2, nrow(result), replace=TRUE, prob=c(0.7, 0.3))
#prob=c(0.7, 0.3) -> 데이터를 random으로 2조각을 내라는 뜻
#전체 데이터 중 70%는 모델만드는데 쓰고, 30%는 테스트하는데 씀.
trainD <- result[resultsplit==1,] # 70% 모델만들기
testD <- result[resultsplit==2,] # 30% 테스트
rawD <- response ~ total + price + period+ variety
# response -> Y값, 나머지(total...)에 대한 관계를 만들어라
trainModel <- ctree(rawD, data=trainD)
table(predict(trainModel), trainD$response)
#R 스퀘어 값과 연관, 모델이 얼마나 트레이닝 데이터를 잘 설명하는 가에 대해..보여줌...
#overspecialization => 너무 상세한 spec, 예측을 조금만 넘어가도 해석 불가
#overgeneralization => 너무 모호한 spec
#high low nr
#high 29 2 0
#low 1 36 0
#nr 0 0 35,
# 100/103 => R ratio 97% 정도로... 정확하다고 볼 수 있음.
print(trainModel)
plot(trainModel)
plot(trainModel, type="simple")
testModel <- predict(trainModel, newdata=testD)
table(testModel, testD$response)