143
R이용한 데이터 분석 November 16, 2015 simon

R을 이용한 데이터 분석

Embed Size (px)

Citation preview

Page 1: R을 이용한 데이터 분석

R을 이용한 데이터 분석

November 16, 2015simon

Page 2: R을 이용한 데이터 분석

Audience● 16 개 회사

● 23 명

Page 3: R을 이용한 데이터 분석

강사● 김문주

[email protected]

Page 5: R을 이용한 데이터 분석

목적

R BigDataData Mining

Page 6: R을 이용한 데이터 분석

Materials

● 교재 한권 (340 page)

● 다이어리

● 볼펜

● 본 문서는 교재내용과 수업내용을 토대로 google slides에서 작성

Page 7: R을 이용한 데이터 분석

1 day

1. 빅데이터 개요2. 데이터 관리와 이해

2 day

3. 데이터 전처리10. Text Mining

3 day

11. Social NetworkAnalysis

4. 분류

4 day

6. 결정 트리5. 확률에 의한 분류7. 회귀 분석

5 day

8. Clustering9. Association

Analysis

Page 8: R을 이용한 데이터 분석

1. 빅데이터 개요

Page 9: R을 이용한 데이터 분석

BigData

조직에서 주어진 비용, 시간 내에 처리 가능한 범위를 넘어서는 데이터

Page 10: R을 이용한 데이터 분석
Page 11: R을 이용한 데이터 분석

Volume / Velocity

Page 12: R을 이용한 데이터 분석

Variety

Page 13: R을 이용한 데이터 분석

Variety

Page 14: R을 이용한 데이터 분석
Page 15: R을 이용한 데이터 분석

BigData Technology (Hadoop Ecosystem)

Hadoop

Page 16: R을 이용한 데이터 분석

BigData Analysis

Page 17: R을 이용한 데이터 분석

BigData Analysis

Page 18: R을 이용한 데이터 분석

Data Mining

데이터 속에 있는

의미 있는 데이터 패턴을 파악하거나

데이터 자동분석한 예측결과로

의사결정에 활용

Page 19: R을 이용한 데이터 분석

Machine Learning

Data Abstraction Generalization

EquationsDiagrams such as trees and graphsLogical if/else rulesGroupings of data known as clusters

Page 20: R을 이용한 데이터 분석

Data Mining AlgorithmsModel Algorithms Task

지도 학습 알고리즘 최근접 이웃 분류

나이브 베이즈 분류

결정 트리 분류

선형 회귀 수치 예측

회귀 트리 수치 예측

모델 트리 수치 예측

신경망 다중 용도

서포트 벡터 머신 다중 용도

자율 학습 알고리즘 연관 규칙 패턴 감지

k평균 군집화 군집화

Page 21: R을 이용한 데이터 분석

Data Mining Process

MachineLearning

ManLearning

Page 22: R을 이용한 데이터 분석

Data Mart 및 비정형 데이터 관리정형 Data : Appliance DB 활용비정형 Data : Appliance DB 에서 Hadoop 활용

Page 23: R을 이용한 데이터 분석

Data Mining 사례

Page 24: R을 이용한 데이터 분석

2. 데이터 관리와 이해

Page 25: R을 이용한 데이터 분석

분석툴

Figure 6a. Analytics tools used by respondents to the 2015 Rexer Analytics Survey. In this view, each respondent was free to check multiple tools.

Page 26: R을 이용한 데이터 분석
Page 27: R을 이용한 데이터 분석

R System Requirements

데이터의 규모전처리 작업량R 32bit / 64bitx86_64 CPU 에서는 최대 128 TBWindows x64 경우 8 TBOS 에서 허용하는 1개 프로세스 가용 메모리량 확인

결론은 Linux 64 bit 가 바람직

Page 29: R을 이용한 데이터 분석

R Data Object & Data TypeData Object

Vector, ScalarMatrixArrayFactor

ListData Frame

Data Type

NumericInteger, Double

LogicalTRUE(T), FALSE(F)

Character‘a’, ‘abc’

Basic

Collection

Page 30: R을 이용한 데이터 분석

R packagepackage install

install.packages(‘package명’)

package load

library(package명)

Page 31: R을 이용한 데이터 분석

R Special Values & OperatorsSpecial Values

NULL - empty valueNA - not availableNaN - not a numberInf(-Inf) - infinite number

Operators

mathematical+ - * ^%*% (matrix multiplication)%/% (remainder)

relational> >= < <= == !=

logical ! & |assignment <- =list indexing $sequencing :

Page 32: R을 이용한 데이터 분석

R Functions

Page 33: R을 이용한 데이터 분석

R Vector원소라고 불리는 값의 순서 있는 집합

동일 Data Type으로 구성

subject_name <- c(‘John Doe’, ‘Jane Doe’)temperature <- c(98.1, 98.6, 93.2)flu_status <- c(FALSE, TRUE)

원소 접근

temperature[2]temperature[2:3]temperature[-2]temperature[c(TRUE, TRUE, FALSE)]

Page 34: R을 이용한 데이터 분석

R Factor수준(level)으로 이루어진 Vector

범주 라벨(Label)을 한 번 저장

내부적으로 값이 아닌 숫자 형태로 변환해서 저장(예) MALE, FEMALE, MALE → 1, 2, 1

Factor 생성

gender <- factor(c(‘MALE’, ‘FEMALE’, ‘MALE’))결과

[1] MALE FEMALE MALELevels: FEMALE MALE

생성 시 레벨을 지정

blood <- factor(c(‘O’, ‘AB’, ‘A’), levels = c(‘A’, ‘B’, ‘AB’, ‘O’))

결과

[1] O AB ALevels: A B AB O

Page 35: R을 이용한 데이터 분석

R List서로 다른 Data Type을 지원하는 Vector

List 생성

subject1 <- list(fullname = subject_name[1], temperature = temperature[1], flu_status = flu_status[1], gender = gender[1], blood = blood[1]) 속성 접근

subject1[2]subject1$temperaturesubject1[c(‘temperature’, ‘flu_status’)]subject1[3:5]

Page 36: R을 이용한 데이터 분석

R Data FrameRDB의 Table과 같은 2차원 형태

Data Frame 생성

pt_data <- data.frame( … )

데이터 접근

pt_data$subject_namept_data[c(‘temperature’, ‘flu_status’)]pt_data[2:3]pt_data[1, 2]pt_data[c(1, 3), c(2, 4)]pt_data[, 1]pt_data[1, ]pt_data[ , ]pt_data[c(1, 3), c(‘temperature’, ‘gender’)]pt_data[-2, c(-1, -3, -5)]

Page 37: R을 이용한 데이터 분석

R Matrix행과 열로 2차원 테이블을 표시

동일 Data Type으로 구성

전형적인 수치 데이터만을 저장하며 수학적 연산에 주로 사용

Matrix 생성

m <- matrix(c(‘a’, ‘b’, ‘c’, ‘d’), nrow = 2)m <- matrix(c(‘a’, ‘b’, ‘c’, ‘d’), ncol = 2)

데이터 접근

m[1, 1]m[3, 2]m[1, ]m[, 2]

Page 38: R을 이용한 데이터 분석

R Data FileR Data

save(m, file = ‘c:/data/mydata.RData’)save(m, subject1, pt_data, file = ‘c:/data/mydata2.RData’)

CSV

write.csv(pt_data, file = ‘c:/data/pt_data.csv’)pt_data2 <- read.csv(‘c:/data/pt_data.csv’)

Page 39: R을 이용한 데이터 분석

R Data 이해Data 구조 확인

str(usedcars)

Data 통계정보 확인

summary(usedcars$year)summary(usedcars[c(‘price’, ‘mileage’)])

퍼짐 측정

diff(range(usedcars$price))IQR(usedcars$price)quantile(usedcars$price)

절단점 사용

quantile(usedcars$price, probs = c(0.01, 0.99))quantile(usedcars$price, seq(from = 0, to = 1, by = 0.20))

Page 40: R을 이용한 데이터 분석

R 수치 변수 시각화boxplot

변수의 범위와 쏠림을 다른 변수와 비교해 표현boxplot(usedcars$price, main = ‘Boxplot of Used Car Prices’, ylab = ‘Price($)’)boxplot(usedcars$mileage, main = ‘Boxplot of Used Car Mileage’, ylab = ‘Odometer(mi.)’)

Page 41: R을 이용한 데이터 분석

R 수치 변수 시각화histogram

수치 변수의 퍼짐을 시각적으로 표현hist(usedcars$price, main = ‘Histogram of Used Car Prices”, xlab = ‘Price($)’)hist(usedcars$mileage, main = ‘Histogram of Used Car Mileage”, xlab = ‘Odometer(mi.)’)

균등분포, 정규분포

Page 42: R을 이용한 데이터 분석

R 분산과 표준편차분산 (Variance)

var(usedcars$price)var(usedcars$mileage)

표준편차 (Standard Deviation)

sd(usedcars$price)sd(usedcars$mileage)

Page 43: R을 이용한 데이터 분석

R 범주형 변수일원 배치표

table(usedcars$year)table(usedcars$model)table(usedcars$color)

prop.table()

model_table <- table(usedcars$model)prop.table(model_table)

Page 44: R을 이용한 데이터 분석

R 변수 사이 관계산포도 : 관계 시각화

plot(x = usedcars$mileage, y = usedcars$price, main = ‘Scatterplot of Price vs. Mileage’, xlab = ‘Used Car Odometer (mi.)’, ylab = ‘Used Car Price ($)’)

Page 45: R을 이용한 데이터 분석

R 독립성 검증이원 교차표

usedcars$conservative <- usedcars$color %in% c(‘Black’, ‘Gray’, ‘Silver’, ‘White’)table(usedcars$conservative)CrossTable(x = usedcars$model, y = usedcars$conservative)

Page 46: R을 이용한 데이터 분석

R 독립성 검증카이스퀘어 검정 순서

1) 각 범주에 대한 기대값을 구함2) 범주별 카이스퀘어 계산

- 관측값과 기대값의 차이를 계산- (관측값 - 기대값)을 제곱하여 기대값으로 나누면 각 범주의 카이스퀘어 값이 됨

3) 이 값을 합하여 전체의 카이스퀘어 값을 계산4) 카이스퀘어의 자유도를 계산

(row수 - 1) * (col수 - 1)5) 이를 유의수준에 해당하는 카이스퀘어 값과 비교하여 결론

귀무가설 / 대립가설

귀무가설 : 변수 사이에 연관성이 없다. (독립적이다)대립가설 : 변수 사이에 연관성이 있다. (독립적이 아니다)

Page 47: R을 이용한 데이터 분석
Page 48: R을 이용한 데이터 분석

R 독립성 검증chisq.test()

xtabs( ~ usedcars$conservative + usedcars$model)chisq.test(xtabs( ~ usedcars$conservative + usedcars$model))유의수준 5% 관리인 경우,p-value 값이 0.05 보다 작아야 대립가설을 지지 함 (연관성이 있음, 독립적이 아님)

Page 49: R을 이용한 데이터 분석

3. 데이터 전처리

Page 50: R을 이용한 데이터 분석

R apply 함수apply 함수란 ?

Vector 또는 행렬 Data에 임의의 함수를 적용한 결과를 반환

apply(행렬, 방향, 함수)

방향 : 1(행) / 2(열)d <- matrix(1:9, ncol = 3)apply(d, 1, sum)

Page 51: R을 이용한 데이터 분석

R apply 함수lapply(X, 함수)

X는 Vector 또는 List처리한 결과는 List로 반환 됨X가 Data Frame일 때도 처리 가능한데,List 결과를 Data Frame으로 만드는 방법- unlist() 활용하는 방법

주의 : 문자열과 숫자가 혼합된 경우 unlist()가 문자열을 엉뚱한 값으로 반환- do.call() 활용하는 방법

Page 52: R을 이용한 데이터 분석

R apply 함수sapply(X, 함수)

X는 Vector, List, Data Frame처리한 결과는 Matrix, Vector 등으로 반환 됨

tapply(X, 색인, 함수)

그룹별 처리를 위한 함수색인은 Data가 어느 그룹에 속하는지 표현하기 위한 Factor형 Data

mapply(X, 색인, 함수)

sapply()와 유사하지만 다수의 인자를 함수에 전달

Page 53: R을 이용한 데이터 분석

R Data 전처리 함수with() : Data Frame 또는 List 내 필드를 쉽게 접근하기 위한 함수

within() : Data를 수정할 때 사용

which() : Vector 또는 Array에서 주어진 조건에 만족하는 값의 색인을 검색

which.min() : 주어진 Vector에서 최소값의 색인

which.max() : 주어진 Vector에서 최대값의 색인

Page 54: R을 이용한 데이터 분석

R sqldf packageSQL 구문으로 Data를 다룰 수 있게 지원

sqldf(‘select avg(“Sepal.Length”) from iris where Species = “setosa” limit 20’)MySQL 구문에 가까움SQL구문은 작은 따옴표(‘’)를 사용Data이름에 마침표(.) 같은 특수문자가 사용 된 경우 큰 따옴표(“”)로 묶어서 사용중첩된 쿼리 등 다냔한 내용 처리 가능SQL 구문 내에서는 대소문자 구별 없음

Page 55: R을 이용한 데이터 분석

R plyr package필수적인 데이터 처리기능 지원

??ply(data, variables, function,,,)apply function에 기반하여 입력 및 출력변수 처리를 동일한 형식으로 모든 데이터형식을 지원SQL구문은 작은 따옴표(‘’)를 사용Data이름에 마침표(.) 같은 특수문자가 사용 된 경우 큰 따옴표(“”)로 묶어서 사용중첩된 쿼리 등 다냔한 내용 처리 가능SQL 구문 내에서는 대소문자 구별 없음

apply()

열에 서로 다른 데이터의 경우, 타입 변환이 발생apply()와 plyr 제공함수와 혼동하지 않도록 주의

중요 옵션

summarizetransform

Page 56: R을 이용한 데이터 분석

R 필수 package

원시 Data Data 변환 가설 검증

시각화

모델링

reshape2

plyr

gplot2

lm, glm

Page 57: R을 이용한 데이터 분석

R 변수 생성reshape package

기존 테이블 구조의 데이터를 column-wise 하게 전환

기본 함수

data(), head(), tail(), names(), tolower(), inspect()

melt()

Page 58: R을 이용한 데이터 분석

R 변수 생성formula

‘행변수 ~ 열변수' 형태로 표현아무 변수도 지정하지 않으려면 . 을 사용formula 에 나열되지 않은 모든 변수를 표현하려면 … 을 사용

cast()

dcast(), acast()

Page 59: R을 이용한 데이터 분석

R 변수 생성중요 옵션

marginssubsetrange

Page 60: R을 이용한 데이터 분석

10. Text Mining

Page 61: R을 이용한 데이터 분석

Text Mining다양한 문서형태로 부터 Data를 획득, 분석하는 기법을 이용하여

통찰(insight)을 얻거나 의사결정을 지원

모든 형태의 Text (web, pdf, office, xml, text ,,,)로 부터 ‘문자'를 추출하여 이들간의 관계를 이용하거나clustering, classification, social network analysis에 활용

해당 언어 및 문화, 습관에 대한 깊이 있는 이해가 필요

Page 62: R을 이용한 데이터 분석

R 파일 읽기tm package

Text Mining 기능을 지원하는 package

Corpus

Text 문서를 관리하는 기본 구조VCorpus, PCorpusDirSource, VectorSource, DataframeSource

Page 63: R을 이용한 데이터 분석

R 문서 조작Meta data 제거 (xml 경우 각종 Tag)공백 제거소문자로 변환구두점 제거특수문자 제거시제 변환

Page 64: R을 이용한 데이터 분석

R 문서 Matrix문서번호와 단어간의 사용여부 또는 빈도수를 이용하여 Matrix를 생성

Page 65: R을 이용한 데이터 분석

R 문서 Matrix자주 사용된 단어 검색

단어와 연관된 단어들 검색

비어있는 데이터 삭제

Page 66: R을 이용한 데이터 분석

R Twitter 연결Twitter 인증 획득 ( http://dev.twitter.com/ )

Twitter 메세지 조회(‘samsung’ 단어) 및 저장

Twitter 메세지에서 긍정단어, 부정단어로 빈도수 확인

Page 67: R을 이용한 데이터 분석

R Twitter 메세지 분석Word Cloud 출력

최소 3회 이상 언급된 단어의 빈도수 만큼 글자크기를 부여하고

가운데 부터 시작하게 Wordcloud를 그림

Page 68: R을 이용한 데이터 분석

R Twitter 메세지 분석거리계산법으로 clustering시켜 연관 단어를 분석

Page 69: R을 이용한 데이터 분석

11. Social Network Analysis

Page 70: R을 이용한 데이터 분석

Social Network

node(vertex)와 link(edge)로 구성된 Graph

Page 71: R을 이용한 데이터 분석

단어간 연관성 분석1. 단어와 단어간 연관성 Matrix를 생성

Page 72: R을 이용한 데이터 분석

단어간 연관성 분석2. Graph 생성

Page 73: R을 이용한 데이터 분석

3. Graph 조절

단어간 연관성 분석

Page 74: R을 이용한 데이터 분석

문서간 연관성 분석1. 문서와 문서간 연관성 Matrix를 생성

Page 75: R을 이용한 데이터 분석

2. Graph 생성

문서간 연관성 분석

Page 76: R을 이용한 데이터 분석

3. Graph 조절

문서간 연관성 분석

Page 77: R을 이용한 데이터 분석

4. Graph 조절

문서간 연관성 분석

Page 78: R을 이용한 데이터 분석

5. Graph 분석

문서간 연관성 분석

Page 79: R을 이용한 데이터 분석

Matrix 연관성 분석Matrix 의 행과 열의 교차값으로 관계 Graph 를 계산

Page 80: R을 이용한 데이터 분석

Matrix 연관성 분석1. 단어와 문서간의 연관성 Graph 생성

Page 81: R을 이용한 데이터 분석

Matrix 연관성 분석2. 단어와 문서간의 연관성 분석

Page 82: R을 이용한 데이터 분석

Graph 분석1. URL 정보로 Graph 생성

Page 83: R을 이용한 데이터 분석

Graph 분석2. Graph 조절

Page 84: R을 이용한 데이터 분석

Graph 분석3. closeness 분석

Page 85: R을 이용한 데이터 분석

Graph 분석4. betweenness 분석

Page 86: R을 이용한 데이터 분석

4. 분류

Page 87: R을 이용한 데이터 분석

Data Mining AlgorithmsModel Algorithms Task

지도 학습 알고리즘 최근접 이웃 분류

나이브 베이즈 분류

결정 트리 분류

선형 회귀 수치 예측

회귀 트리 수치 예측

모델 트리 수치 예측

신경망 다중 용도

서포트 벡터 머신 다중 용도

자율 학습 알고리즘 연관 규칙 패턴 감지

k평균 군집화 군집화

Page 88: R을 이용한 데이터 분석

최근접 이웃을 사용한 분류거리를 사용해 두 예제의 유사도를 측정하는 방법

범주를 알지 못하는 예제에 대해

범주가 분류돼 있는 가장 유사한 예제의 범주로 지정

장점 단점

단순, 효율적Data분산에 대한 추정 필요없음빠른 훈련 단계

모델을 생성하지 않음느린 분류 단계많은 메모리 필요명목형 속성, 결측 데이터 추가 처리 필요

Page 89: R을 이용한 데이터 분석

최근접 이웃을 사용한 분류

재료 단맛 아삭거림 음식 종류

apple 10 9 fruit

bacon 1 4 protein

banana 10 1 fruit

carrot 7 10 vegetable

celery 3 10 vegetable

cheese 1 1 protein

Page 90: R을 이용한 데이터 분석

최근접 이웃을 사용한 분류거리 계산법

Page 91: R을 이용한 데이터 분석

최근접 이웃을 사용한 분류적당한 k 선택

Page 92: R을 이용한 데이터 분석

최근접 이웃을 사용한 분류Data 표준화

Page 93: R을 이용한 데이터 분석

최근접 이웃을 사용한 분류

kNN 특징

추상화가 일어나지 않음

추상화와 일반화 과정을 생략

어떤 것도 학습하지 않고, 훈련 데이터를 그대로 저장

인스턴스 기반 학습/ 암기 학습

Page 94: R을 이용한 데이터 분석

kNN 분석1. Data 준비

Page 95: R을 이용한 데이터 분석

kNN 분석2. Data 정규화

Page 96: R을 이용한 데이터 분석

kNN 분석3. 훈련 Data와 테스트 Data 생성

Page 97: R을 이용한 데이터 분석

4. 성능 평가

kNN 분석

Page 98: R을 이용한 데이터 분석

1. Confusion Matrix

성능 평가

Page 99: R을 이용한 데이터 분석

2. 카파 통계

우연으로 예측된 값과 실제 값이 일치할 확률인 Pr(e)로 정확도를 판정

두 사건이 독립적이라고 가정할 때,두 사건이 동시에 일어날 확률은 각 발생 확률을 곱함

항목 a의 동시에 일어날 확률 = Pr(실제 a) * Pr(예측된 a)Pr(e) = 각 항목의 동시에 일어날 확률의 총합k = (Pr(a) - Pr(e)) / (1 - Pr(e))

성능 평가

Page 100: R을 이용한 데이터 분석

3. ROC (Receiver Operating Characteristics)

성능 평가

Page 101: R을 이용한 데이터 분석

4. 교차 검증

성능 평가

Page 102: R을 이용한 데이터 분석

1. z-score normalization

성능 향상

Page 103: R을 이용한 데이터 분석

2. k 값 변화

성능 향상

k value False Negative False Positive Percent classfied Incorrectly

1 1 3 4 %

5 2 0 2 %

11 3 0 3 %

15 3 0 3 %

21 2 0 2 %

27 4 0 4 %

Page 104: R을 이용한 데이터 분석

6. 결정 트리

Page 105: R을 이용한 데이터 분석

Data Mining AlgorithmsModel Algorithms Task

지도 학습 알고리즘 최근접 이웃 분류

나이브 베이즈 분류

결정 트리 분류

선형 회귀 수치 예측

회귀 트리 수치 예측

모델 트리 수치 예측

신경망 다중 용도

서포트 벡터 머신 다중 용도

자율 학습 알고리즘 연관 규칙 패턴 감지

k평균 군집화 군집화

Page 106: R을 이용한 데이터 분석

결정 트리Classification : 데이터를 분류하는데 목적

0과 1로 구분하거나 0, 1, 2, 3 등의 구분으로 분류

고객의 속성을 파악하고 고객의 행동을 예측하는데 활용

rpart, rpartOrdinal, randomForest,party, tree, marginTree, maptree 등

Page 107: R을 이용한 데이터 분석

결정 트리트리 생성 과정

Page 108: R을 이용한 데이터 분석

결정 트리세분화 : 관심 있는 어떤 성질을 기준으로 전체 데이터를 그룹으로 나누는 방법

속성 : 데이터로 표현되는 객체의 정보를 전달하는 중요한 변수

정보 : 무언가에 대한 불확실성을 감소시키는 성질

Target 변수가 있으면, 이 변수에 대한 단서를 제공하는 다른 변수가 존재

모델 : 어떤 목적을 달성하기 위해 실세계를 단순하게 표현한 것

Page 109: R을 이용한 데이터 분석

결정 트리정보를 전달하는 속성의 선택

데이터를 분류할 때 순수하게 세분화하는 변수

No NoNoNoNoYes Yes Yes Yes Yes Yes Yes

Page 110: R을 이용한 데이터 분석

결정 트리엔트로피 : 무질서도

Page 111: R을 이용한 데이터 분석

ctree 분석1. Data 준비

Page 112: R을 이용한 데이터 분석

ctree 분석2. Data 전처리 및 ctree 훈련

Page 113: R을 이용한 데이터 분석

ctree 분석3. ctree 모델 확인

Page 114: R을 이용한 데이터 분석

ctree 분석4. 테스트 Data 검증

Page 115: R을 이용한 데이터 분석

rpart 분석Recursive Partitioning and Regression TreesTree의 prediction error를 최소화

1. Data 준비

Page 116: R을 이용한 데이터 분석

rpart 분석2. rpart 생성

Page 117: R을 이용한 데이터 분석

ctree 분석3. rpart 모델 확인

Page 118: R을 이용한 데이터 분석

Random Forest 분석임의 입력값에 따른 forest에 있는 tree에 각각 값을 투입하여각각의 tree들이 voting 함으로써 분류

1. randomForest 생성

Page 119: R을 이용한 데이터 분석

Random Forest 분석2. 오차율 분석

Page 120: R을 이용한 데이터 분석

Random Forest 분석3. 영향도 분석

Page 121: R을 이용한 데이터 분석

Random Forest 분석3. ROC 분석 (AUC)

Page 122: R을 이용한 데이터 분석

ctree vs rpart 비교1. Data 준비

Page 123: R을 이용한 데이터 분석

ctree vs rpart 비교2. Data 전처리 및 분리

불필요 속성 제거속성의 Data Type 변경 (Factor, 문자로 변환 등)단순공백을 NA 로 변경훈련 / 테스트 Data 분리

Page 124: R을 이용한 데이터 분석

ctree vs rpart 비교3. 교차검증용 Data 생성

Page 125: R을 이용한 데이터 분석

ctree vs rpart 비교4. Feature Plot 분석

Page 126: R을 이용한 데이터 분석

ctree vs rpart 비교5. Mosaic Plot 분석

Page 127: R을 이용한 데이터 분석

ctree vs rpart 비교6. rpart 훈련 및 예측

Page 128: R을 이용한 데이터 분석

ctree vs rpart 비교7. ctree 훈련 및 예측

Page 129: R을 이용한 데이터 분석

ctree vs rpart 비교8. 정확도 평가

Page 130: R을 이용한 데이터 분석

ctree vs rpart 비교8. 비교 분석

Page 131: R을 이용한 데이터 분석

5. 확률에 의한 분류

Page 132: R을 이용한 데이터 분석

Data Mining AlgorithmsModel Algorithms Task

지도 학습 알고리즘 최근접 이웃 분류

나이브 베이즈 분류

결정 트리 분류

선형 회귀 수치 예측

회귀 트리 수치 예측

모델 트리 수치 예측

신경망 다중 용도

서포트 벡터 머신 다중 용도

자율 학습 알고리즘 연관 규칙 패턴 감지

k평균 군집화 군집화

Page 133: R을 이용한 데이터 분석

확률을 이용한 분류확률 원리를 활용하는 나이브 베이즈 (naive bayes) 알고리즘

유사한 증거를 기반으로 한 사건의 유사성을 추정

Page 134: R을 이용한 데이터 분석
Page 135: R을 이용한 데이터 분석

확률론적 분류사건의 확률은 사건이 일어난 시도의 수를 총 사건의 수로 관찰된 데이터

50개 메일 중 10개 메일이 스팸이었다면 스팸의 확률은 20%

P(spam) = 0.20

P(normal) = 1 - 0.20 = 0.80조건부 확률

일반 메일 (80%)스팸 메일(20%)

모든 이메일

만남(5%)

Page 136: R을 이용한 데이터 분석

확률론적 분류조건부 확률

만남이 없는이메일

만남이 있는스팸 이메일

스팸 안에만남

Page 137: R을 이용한 데이터 분석

확률론적 분류베이즈 이론과 조건 확률

P(A|B)는 사건B가 일어날 때 사건A의 확률

“만남"이라는 단어가 이전 스팸 이메일에서 사용됐을 확률을 우도(likelihood)라고 하고,

모든 이메일에 “만남"이 나타날 확률을 주변 우도(marginal likelihood)라고 함

Page 138: R을 이용한 데이터 분석

확률론적 분류우도표

P(스팸 | 만남) = P(만남 | 스팸) * P(스팸) / P(만남) = (4 / 20) * (20/100) / (5/100) = 0.8

만남

빈도 Yes No 총합

스팸 4 16 20

일반 1 79 80

총합 5 95 100

만남

빈도 Yes No 총합

스팸 4/20 16/20 20

일반 1/80 79/80 80

총합 5/100 95/100 100

Page 139: R을 이용한 데이터 분석

나이브 베이즈 알고리즘분류를 위해 베이즈 이론을 사용

장점 단점

단순하고 빠르며 효과적노이즈와 결측제이터가 있어도 잘 수행훈련에 대해 상대적으로 적은예제로 수행예측에 대한 추정된 확률을 얻을 수 있음

모든 속성은 독립적이라는 가정에 의존수치 속성에 대해서만 적용 가능수치 속성으로 구성된 많은 데이터셋에 부적합추정된 확률은 예측된 범주보다 덜 신뢰적

Page 140: R을 이용한 데이터 분석

7. 회귀 분석

Page 141: R을 이용한 데이터 분석

8. Clustering

Page 142: R을 이용한 데이터 분석

9. Association Analysis

Page 143: R을 이용한 데이터 분석

과정 정리