머신러닝 13. 지도학습: 분류모델-의사결정나무
Written on October 22nd , 2019 by MJ 목차
1. 데이터셋 로딩
(1) 데이터셋 로딩
(2) 데이터셋 간단조회: head() / str() / summary()
2. 데이터탐색
(1) 사전분류규칙 존재가능성 탐색: boxplot() / plot() / legend() / pairs()
(2) 투입변수간 관련성 분석: caret::featurePlot() / car::scatterplotMatrix()
(3) 분류규칙에 가장 영향을 많이 미치는 변수는 무엇인지를 탐색: FSelector::chi.squared() / cutoff.k()
3. 데이터 전처리
(1) 범주형 변수의 팩터변수화: factor()
(2) 분류분석용 데이터 추출(train, test): sample() / addmargins()
4. 의사결정나무1: party::ctree()
(1) 훈련 데이터로 분류규칙 생성: ~ / paty::ctree()
(2) 분류규칙 그래프 확인: plot()
(3) 분류규칙 이용한 학습 데이터 분류분석: predict()
(4) 학습 데이터 분류결과 정확성(Accuracy) 평가: sum() / diag() / sum(sum/diag)
(5) 분류규칙 이용한 검증 데이터 분류분석: predict()
(6) 검증 데이터 분류결과 정확성(Accuracy) 평가: sum() / diag() / sum(sum/diag)
(7) 학습 데이터와 검증 데이터의 정확성 비교
(8) 예측모델 성능평가
5. 혼동표
(1) 혼동표: caret::confusionMatrix()
(2) 도출된 규칙을 활용한 고객 추출: subset()
(3) 결과 프로파일링: psych::describe()
6. 의사결정나무2: tree::tree()
(1) 훈련 데이터로 분류규칙 생성
(2) 의사결정나무의 프루닝 가능성 분석: cv.tree() / prune.misclass()
(3) 분류규칙 이용학 학습/검증 데이터 분류분석 및 혼동표
7. 의사결정나무3: rpart::rpart()
(1) 분류분석 모델 관계식 정의
(2) 의사결정나무의 가지치기(Prunning) 가능성 분석: printcp() / plotcp() / prune() / which.min()
(3) 가지치기 이후 정제된 의사결정나무: plot() / text()
(4) 분류규칙 이용한 학습 데이터 분류분석 및 정확성 평가
(5) 분류규칙 이용한 훈련 데이터 분류분석 및 정확성 평가
(6) 학습 데이터와 검증 데이터의 정확성 비교
(7) 혼동표
—————코딩——————————————————————————————————
6. 비즈니스 시나리오
-
카드사 이용고객 중 쿠폰이벤트를 진행했을 때 반응을 보이는 고객과 그렇지 않은 고객으로 나뉘고 있음
-
어떤 특성을 가진 고객이 쿠폰이벤트에 반응을 보이는지?
-
어떤 특성을 가진 고객이 쿠폰이벤트에 반응을 보이지 않는지?
-
반응 유무를 결정하는 조건/요인/속성/변수/기준/피처(feature)와 이들이 가지는 임계치와 상대적인 중요도는?
#####. 분석 모델링 및 조작적 정의
-
usage(월평균 카드사용횟수) –> 수치데이터(횟수)
-
amount(1회평균 카드사용금액) –> 수치데이터(만원)
-
period(1회평균 온라인쇼핑몰 접속시간) –> 수치데이터(분)
-
variety(상품구매다양성) –> 수치데이터(부문)
-
response(쿠폰반응유형) –> 0:nr(반응안함, no-response)
--> 1:low(단순/저가구매) --> 2:high(복합/고가구매)
1. 데이터셋 로딩
(1) 데이터셋 로딩
(2) 데이터셋 간단조회: head() / str() / summary()
2. 데이터탐색
(1) 사전분류규칙 존재가능성 탐색: boxplot() / plot() / legend() / pairs()
(2) 투입변수간 관련성 분석: caret::featurePlot() / car::scatterplotMatrix()
(3) 분류규칙에 가장 영향을 많이 미치는 변수는 무엇인지를 탐색: FSelector::chi.squared() / cutoff.k()
3. 데이터 전처리
(1) 범주형 변수의 팩터변수화: factor()
(2) 분류분석용 데이터 추출(train, test): sample() / addmargins()
4. 의사결정나무1: party::ctree()
(1) 훈련 데이터로 분류규칙 생성: ~ / paty::ctree()
(2) 분류규칙 그래프 확인: plot()
(3) 분류규칙 이용한 학습 데이터 분류분석: predict()
(4) 학습 데이터 분류결과 정확성(Accuracy) 평가: sum() / diag() / sum(sum/diag)
(5) 분류규칙 이용한 검증 데이터 분류분석: predict()
(6) 검증 데이터 분류결과 정확성(Accuracy) 평가: sum() / diag() / sum(sum/diag)
(7) 학습 데이터와 검증 데이터의 정확성 비교
(8) 예측모델 성능평가
5. 혼동표
(1) 혼동표: caret::confusionMatrix()
(2) 도출된 규칙을 활용한 고객 추출: subset()
(3) 결과 프로파일링: psych::describe()
6. 의사결정나무2: tree::tree()
(1) 훈련 데이터로 분류규칙 생성
(2) 의사결정나무의 프루닝 가능성 분석: cv.tree() / prune.misclass()
(3) 분류규칙 이용학 학습/검증 데이터 분류분석 및 혼동표
7. 의사결정나무3: rpart::rpart()
(1) 분류분석 모델 관계식 정의
(2) 의사결정나무의 가지치기(Prunning) 가능성 분석: printcp() / plotcp() / prune() / which.min()
(3) 가지치기 이후 정제된 의사결정나무: plot() / text()
(4) 분류규칙 이용한 학습 데이터 분류분석 및 정확성 평가
(5) 분류규칙 이용한 훈련 데이터 분류분석 및 정확성 평가
(6) 학습 데이터와 검증 데이터의 정확성 비교
(7) 혼동표
<참고 문헌="">참고>
- 최점기 박사님 강의