6. Materials
● 교재 한권 (340 page)
● 다이어리
● 볼펜
● 본 문서는 교재내용과
수업내용을 토대로 google
slides에서 작성
7. 1 day
1. 빅데이터 개요
2. 데이터 관리와 이해
2 day
3. 데이터 전처리
10. Text Mining
3 day
11. Social Network
Analysis
4. 분류
4 day
6. 결정 트리
5. 확률에 의한 분류
7. 회귀 분석
5 day
8. Clustering
9. Association
Analysis
20. Data Mining Algorithms
Model Algorithms Task
지도 학습 알고리즘 최근접 이웃 분류
나이브 베이즈 분류
결정 트리 분류
선형 회귀 수치 예측
회귀 트리 수치 예측
모델 트리 수치 예측
신경망 다중 용도
서포트 벡터 머신 다중 용도
자율 학습 알고리즘 연관 규칙 패턴 감지
k평균 군집화 군집화
25. 분석툴
Figure 6a. Analytics tools used by respondents to the 2015 Rexer Analytics Survey. In
this view, each respondent was free to check multiple tools.
26.
27. R System Requirements
데이터의 규모
전처리 작업량
R 32bit / 64bit
x86_64 CPU 에서는 최대 128 TB
Windows x64 경우 8 TB
OS 에서 허용하는 1개 프로세스 가용 메모리량 확인
결론은 Linux 64 bit 가 바람직
29. R Data Object & Data Type
Data Object
Vector, Scalar
Matrix
Array
Factor
List
Data Frame
Data Type
Numeric
Integer, Double
Logical
TRUE(T), FALSE(F)
Character
‘a’, ‘abc’
Basic
Collection
31. R Special Values & Operators
Special Values
NULL - empty value
NA - not available
NaN - not a number
Inf(-Inf) - infinite number
Operators
mathematical
+ - * ^
%*% (matrix multiplication)
%/% (remainder)
relational
> >= < <= == !=
logical ! & |
assignment <- =
list indexing $
sequencing :
33. 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)]
34. R Factor
수준(level)으로 이루어진 Vector
범주 라벨(Label)을 한 번 저장
내부적으로 값이 아닌 숫자 형태로 변환해서 저장
(예) MALE, FEMALE, MALE → 1, 2, 1
Factor 생성
gender <- factor(c(‘MALE’, ‘FEMALE’, ‘MALE’))
결과
[1] MALE FEMALE MALE
Levels: FEMALE MALE
생성 시 레벨을 지정
blood <- factor(c(‘O’, ‘AB’, ‘A’),
levels = c(‘A’, ‘B’, ‘AB’, ‘O’))
결과
[1] O AB A
Levels: A B AB O
35. 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$temperature
subject1[c(‘temperature’, ‘flu_status’)]
subject1[3:5]
36. R Data Frame
RDB의 Table과 같은 2차원 형태
Data Frame 생성
pt_data <- data.frame( … )
데이터 접근
pt_data$subject_name
pt_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)]
37. 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]
38. R Data File
R 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’)
39. 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))
40. 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.)’)
41. 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.)’)
균등분포, 정규분포
42. R 분산과 표준편차
분산 (Variance)
var(usedcars$price)
var(usedcars$mileage)
표준편차 (Standard Deviation)
sd(usedcars$price)
sd(usedcars$mileage)
43. R 범주형 변수
일원 배치표
table(usedcars$year)
table(usedcars$model)
table(usedcars$color)
prop.table()
model_table <- table(usedcars$model)
prop.table(model_table)
44. R 변수 사이 관계
산포도 : 관계 시각화
plot(x = usedcars$mileage,
y = usedcars$price,
main = ‘Scatterplot of Price vs. Mileage’,
xlab = ‘Used Car Odometer (mi.)’,
ylab = ‘Used Car Price ($)’)
46. R 독립성 검증
카이스퀘어 검정 순서
1) 각 범주에 대한 기대값을 구함
2) 범주별 카이스퀘어 계산
- 관측값과 기대값의 차이를 계산
- (관측값 - 기대값)을 제곱하여
기대값으로 나누면 각 범주의 카이스퀘어 값이 됨
3) 이 값을 합하여 전체의 카이스퀘어 값을 계산
4) 카이스퀘어의 자유도를 계산
(row수 - 1) * (col수 - 1)
5) 이를 유의수준에 해당하는 카이스퀘어 값과 비교하여 결론
귀무가설 / 대립가설
귀무가설 : 변수 사이에 연관성이 없다. (독립적이다)
대립가설 : 변수 사이에 연관성이 있다. (독립적이 아니다)
47.
48. R 독립성 검증
chisq.test()
xtabs( ~ usedcars$conservative + usedcars$model)
chisq.test(xtabs( ~ usedcars$conservative + usedcars$model))
유의수준 5% 관리인 경우,
p-value 값이 0.05 보다 작아야 대립가설을 지지 함 (연관성이 있음, 독립적이 아님)
50. R apply 함수
apply 함수란 ?
Vector 또는 행렬 Data에 임의의 함수를 적용한 결과를 반환
apply(행렬, 방향, 함수)
방향 : 1(행) / 2(열)
d <- matrix(1:9, ncol = 3)
apply(d, 1, sum)
51. R apply 함수
lapply(X, 함수)
X는 Vector 또는 List
처리한 결과는 List로 반환 됨
X가 Data Frame일 때도 처리 가능한데,
List 결과를 Data Frame으로 만드는 방법
- unlist() 활용하는 방법
주의 : 문자열과 숫자가 혼합된 경우
unlist()가 문자열을 엉뚱한 값으로 반환
- do.call() 활용하는 방법
52. R apply 함수
sapply(X, 함수)
X는 Vector, List, Data Frame
처리한 결과는 Matrix, Vector 등으로 반환 됨
tapply(X, 색인, 함수)
그룹별 처리를 위한 함수
색인은 Data가 어느 그룹에 속하는지 표현하기 위한 Factor형
Data
mapply(X, 색인, 함수)
sapply()와 유사하지만 다수의 인자를 함수에 전달
53. R Data 전처리 함수
with() : Data Frame 또는 List 내 필드를 쉽게 접근하기 위한 함수
within() : Data를 수정할 때 사용
which() : Vector 또는 Array에서 주어진 조건에 만족하는 값의 색인을 검색
which.min() : 주어진 Vector에서 최소값의 색인
which.max() : 주어진 Vector에서 최대값의 색인
54. R sqldf package
SQL 구문으로 Data를 다룰 수 있게 지원
sqldf(‘select avg(“Sepal.Length”) from iris where Species = “setosa” limit 20’)
MySQL 구문에 가까움
SQL구문은 작은 따옴표(‘’)를 사용
Data이름에 마침표(.) 같은 특수문자가 사용 된 경우 큰 따옴표(“”)로 묶어서 사용
중첩된 쿼리 등 다냔한 내용 처리 가능
SQL 구문 내에서는 대소문자 구별 없음
55. R plyr package
필수적인 데이터 처리기능 지원
??ply(data, variables, function,,,)
apply function에 기반하여 입력 및 출력변수 처리를 동일한 형식으로 모든 데이터형식을 지원
SQL구문은 작은 따옴표(‘’)를 사용
Data이름에 마침표(.) 같은 특수문자가 사용 된 경우 큰 따옴표(“”)로 묶어서 사용
중첩된 쿼리 등 다냔한 내용 처리 가능
SQL 구문 내에서는 대소문자 구별 없음
apply()
열에 서로 다른 데이터의 경우, 타입 변환이 발생
apply()와 plyr 제공함수와 혼동하지 않도록 주의
중요 옵션
summarize
transform
56. R 필수 package
원시 Data Data 변환 가설 검증
시각화
모델링
reshape2
plyr
gplot2
lm, glm
57. R 변수 생성
reshape package
기존 테이블 구조의 데이터를 column-wise 하게 전환
기본 함수
data(), head(), tail(), names(), tolower(), inspect()
melt()
58. R 변수 생성
formula
‘행변수 ~ 열변수' 형태로 표현
아무 변수도 지정하지 않으려면 . 을 사용
formula 에 나열되지 않은 모든 변수를 표현하려면 … 을 사용
cast()
dcast(), acast()
61. Text Mining
다양한 문서형태로 부터 Data를 획득, 분석하는 기법을 이용하여
통찰(insight)을 얻거나 의사결정을 지원
모든 형태의 Text (web, pdf, office, xml, text ,,,)로 부터
‘문자'를 추출하여 이들간의 관계를 이용하거나
clustering, classification, social network analysis에 활용
해당 언어 및 문화, 습관에 대한 깊이 있는 이해가 필요
62. R 파일 읽기
tm package
Text Mining 기능을 지원하는 package
Corpus
Text 문서를 관리하는 기본 구조
VCorpus, PCorpus
DirSource, VectorSource, DataframeSource
63. R 문서 조작
Meta data 제거 (xml 경우 각종 Tag)
공백 제거
소문자로 변환
구두점 제거
특수문자 제거
시제 변환
87. Data Mining Algorithms
Model Algorithms Task
지도 학습 알고리즘 최근접 이웃 분류
나이브 베이즈 분류
결정 트리 분류
선형 회귀 수치 예측
회귀 트리 수치 예측
모델 트리 수치 예측
신경망 다중 용도
서포트 벡터 머신 다중 용도
자율 학습 알고리즘 연관 규칙 패턴 감지
k평균 군집화 군집화
88. 최근접 이웃을 사용한 분류
거리를 사용해 두 예제의 유사도를 측정하는 방법
범주를 알지 못하는 예제에 대해
범주가 분류돼 있는 가장 유사한 예제의 범주로 지정
장점 단점
단순, 효율적
Data분산에 대한 추정 필요없음
빠른 훈련 단계
모델을 생성하지 않음
느린 분류 단계
많은 메모리 필요
명목형 속성, 결측 데이터 추가 처리
필요
89. 최근접 이웃을 사용한 분류
재료 단맛 아삭거림 음식 종류
apple 10 9 fruit
bacon 1 4 protein
banana 10 1 fruit
carrot 7 10 vegetable
celery 3 10 vegetable
cheese 1 1 protein
99. 2. 카파 통계
우연으로 예측된 값과 실제 값이 일치할 확률인 Pr(e)로 정확도를 판정
두 사건이 독립적이라고 가정할 때,
두 사건이 동시에 일어날 확률은 각 발생 확률을 곱함
항목 a의 동시에 일어날 확률 = Pr(실제 a) * Pr(예측된 a)
Pr(e) = 각 항목의 동시에 일어날 확률의 총합
k = (Pr(a) - Pr(e)) / (1 - Pr(e))
성능 평가
105. Data Mining Algorithms
Model Algorithms Task
지도 학습 알고리즘 최근접 이웃 분류
나이브 베이즈 분류
결정 트리 분류
선형 회귀 수치 예측
회귀 트리 수치 예측
모델 트리 수치 예측
신경망 다중 용도
서포트 벡터 머신 다중 용도
자율 학습 알고리즘 연관 규칙 패턴 감지
k평균 군집화 군집화
106. 결정 트리
Classification : 데이터를 분류하는데 목적
0과 1로 구분하거나 0, 1, 2, 3 등의 구분으로 분류
고객의 속성을 파악하고 고객의 행동을 예측하는데 활용
rpart, rpartOrdinal, randomForest,
party, tree, marginTree, maptree 등
108. 결정 트리
세분화 : 관심 있는 어떤 성질을 기준으로 전체 데이터를 그룹으로 나누는 방법
속성 : 데이터로 표현되는 객체의 정보를 전달하는 중요한 변수
정보 : 무언가에 대한 불확실성을 감소시키는 성질
Target 변수가 있으면, 이 변수에 대한 단서를 제공하는 다른 변수가 존재
모델 : 어떤 목적을 달성하기 위해 실세계를 단순하게 표현한 것
109. 결정 트리
정보를 전달하는 속성의 선택
데이터를 분류할 때 순수하게 세분화하는 변수
No NoNoNoNoYes Yes Yes Yes Yes Yes Yes
132. Data Mining Algorithms
Model Algorithms Task
지도 학습 알고리즘 최근접 이웃 분류
나이브 베이즈 분류
결정 트리 분류
선형 회귀 수치 예측
회귀 트리 수치 예측
모델 트리 수치 예측
신경망 다중 용도
서포트 벡터 머신 다중 용도
자율 학습 알고리즘 연관 규칙 패턴 감지
k평균 군집화 군집화
133. 확률을 이용한 분류
확률 원리를 활용하는 나이브 베이즈 (naive bayes) 알고리즘
유사한 증거를 기반으로 한 사건의 유사성을 추정
134.
135. 확률론적 분류
사건의 확률은 사건이 일어난 시도의 수를 총 사건의 수로 관찰된 데이터
50개 메일 중 10개 메일이 스팸이었다면 스팸의 확률은 20%
P(spam) = 0.20
P(normal) = 1 - 0.20 = 0.80
조건부 확률
일반 메일 (80%)
스팸 메일
(20%)
모든 이메일
만남
(5%)
137. 확률론적 분류
베이즈 이론과 조건 확률
P(A|B)는 사건B가 일어날 때 사건A의 확률
“만남"이라는 단어가 이전 스팸 이메일에서 사용됐을 확률을 우도(likelihood)라고 하고,
모든 이메일에 “만남"이 나타날 확률을 주변 우도(marginal likelihood)라고 함
139. 나이브 베이즈 알고리즘
분류를 위해 베이즈 이론을 사용
장점 단점
단순하고 빠르며 효과적
노이즈와 결측제이터가 있어도 잘 수행
훈련에 대해 상대적으로 적은예제로 수행
예측에 대한 추정된 확률을 얻을 수 있음
모든 속성은 독립적이라는 가정에 의존
수치 속성에 대해서만 적용 가능
수치 속성으로 구성된 많은 데이터셋에
부적합
추정된 확률은 예측된 범주보다 덜 신뢰적